Skip to main content
if you already have numbers with a carrier, register them as SIP trunks: the platform gets a SIP address your carrier sends inbound calls to, an agent answers them, and the agent can dial out from the number through your carrier. no rent, no KYC — the number stays yours. Indian mobile numbers (+91) only for now; up to 10 per account.

1. get the origination uri

GET /v1/sip-trunks/origination-uri returns the SIP address to configure at your carrier for inbound calls. it is one address for the platform’s SIP host, the same for every number, so you can set the carrier up before registering.
curl
point the carrier’s trunk for the number at that address (host only — the platform routes by the dialed number).

2. register the number

POST /v1/sip-trunks.
string
required
your number, E.164 (+91…; spaces and dashes tolerated).
string
required
your carrier’s SIP endpoint for calls placed from the number: sip: or sips:, optional user@, port and ;transport= params.
string
required
the digest username your carrier authenticates with.
string
required
the digest password. never returned.
string
a label. defaults to the number.
curl
the number is provisioned on the SIP host inside the request; if the host refuses it (502 sip_trunk_provision_failed, the message says why) nothing is stored. a number already registered — on any account — is 409 sip_trunk_number_taken.
both credentials are required. the inbound trunk’s number list is routing, not authorisation — without digest credentials anyone reaching the SIP host could ring the number on your account.

3. assign an agent

POST /v1/sip-trunks/{id}/assign chooses which agent answers the number.
curl
only a deployed agent can take a number (409 agent_not_deployed). the number is detached from any previous agent; "agentId": null unassigns. inbound calls are billed to your account like any other call and show up in GET /v1/calls with channel: "phone".

dialing out from it

pass the trunk to POST /v1/calls as fromTrunkId, or its number as fromNumber. the call goes out through your carrier’s terminationUri with the number as caller id; no platform number and no carrier charge from us are involved.

list, get, remove

curl
DELETE removes the SIP objects first, then the assignment, then the number (204). a refusal from the SIP host keeps everything as it was (502). next: back to the agents api overview, or the api reference.