Bring your own carrier (BYOC) lets you keep a SIP trunk you already pay for, such as Twilio Elastic SIP, Telnyx, Vonage, Plivo or an office PBX, and use its numbers with Edesy call flows and AI voice agents. You register the carrier, its SIP gateway and your numbers with Edesy, then point the carrier at Edesy.
How it works#
INBOUND caller --> your carrier --SIP--> Edesy --> your app, agent or IVR
OUTBOUND POST /v1/calls (from = your carrier's number) --> Edesy --SIP--> your carrier --> callee
- Inbound: Edesy recognises your carrier by the source IP of its INVITE (the gateway you registered), finds the dialled number, and runs the application linked to it.
- Outbound: Edesy picks the carrier from the
fromnumber. A call from one of your BYOC numbers leaves through your carrier's gateway.
Set it up#
- Register the carrier, gateway and numbers with one request (below), or ask support to do it with you.
- Configure your carrier to send inbound calls to the Edesy SIP address given to you during onboarding (port
5070), and to accept calls from Edesy, by IP allowlist or registration. - Place a test call with POST
/v1/callsusing one of your BYOC numbers asfrom.
One-request provisioning#
curl -X POST https://voice-api.edesy.in/v1/trunk-portal/trunks \
-H "Authorization: Bearer sk_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My carrier",
"requires_register": false,
"gateways": [
{ "ipv4": "sip1.carrier.example.com", "port": 5060, "protocol": "udp" },
{ "ipv4": "sip2.carrier.example.com", "port": 5060, "protocol": "udp" }
],
"numbers": ["+1XXXXXXXXXX"]
}'
Edesy creates the carrier, every gateway, an optional application and the numbers in order. If any step fails, everything created by that request is rolled back, so you never get a half-built trunk.
| Field | Type | Description |
|---|---|---|
name |
string | Required. Display name. |
requires_register |
boolean | true if Edesy must register to your carrier |
register_username, register_password, register_sip_realm |
string | Registration details, when requires_register is true |
tech_prefix |
string | Digits added in front of outbound numbers |
e164_leading_plus |
boolean | Send numbers with a leading + |
dtmf_type |
string | rfc2833 (default), tones or info |
host, port, protocol |
string, integer, string | Shortcut for a single gateway |
gateways |
array | One or more gateways: ipv4 (IP or hostname, required), port, protocol, netmask, inbound, outbound. inbound and outbound default to true. |
application |
object | Optional application for the numbers: call_hook_url (required), call_status_url, record_all_calls, name |
numbers |
string[] | Your DIDs in E.164 |
For editing an existing BYOC setup (adding a gateway, one more number, or changing the application), see the granular endpoints in the BYOC API reference.
Provider recipes#
| Provider | Auth to the carrier | Gateway | Guide |
|---|---|---|---|
| Twilio Elastic SIP | IP allowlist | <your-trunk>.pstn.twilio.com:5060 |
Twilio |
| Telnyx | Registration | sip.telnyx.com:5060 |
Telnyx |
| Vonage | IP allowlist | sip.nexmo.com:5060 |
Vonage |
| Plivo | Registration | phone.plivo.com:5060 |
Plivo |
| Your PBX | IP allowlist | Your PBX's public IP, port 5060 | Generic PBX |
Gateway hostnames come from each provider's public docs and can change. Always confirm them in your provider's console.
FAQ#
When should I use BYOC instead of Edesy numbers?#
When you already have numbers or rates with another carrier, or need numbers outside India. For Indian numbers, buying them on Edesy is simpler: no carrier setup and self-serve KYC.
Can a carrier have more than one gateway?#
Yes. Add a primary and a failover gateway in the gateways array.
How does Edesy know a call came from my carrier?#
By the source IP of the INVITE, matched against the gateways you registered. Use netmask for a range.
Do I still need a termination trunk?#
No. A termination trunk is for your own PBX or agent platform to dial into Edesy. BYOC is for Edesy to use your carrier.
Is BYOC self-serve?#
The API is available with your API key. If you would rather not script it, contact us and we will set it up with you.
How is BYOC priced?#
It depends on the setup and volume. Contact us for a quote.