In Twilio Console under Voice > BYOC Trunking, create a new BYOC Trunk and give it a friendly name; the trunk will appear with a unique SID.
Configure a Connection Policy for outbound traffic: create a Connection Policy with one or more targets pointing to your carrier's SIP URI (FQDN or IP), set priority and weight for load balancing or failover.
Assign the Connection Policy to the BYOC Trunk under Origination settings; outbound calls from Twilio to the PSTN will be sent to your carrier's SIP endpoints.
For inbound calls from your carrier, configure the Termination SIP Domain on the trunk to receive calls at [your-subdomain].sip.us1.twilio.com; provide this address to your carrier as the SIP destination.
Attach a TwiML app or webhook URL to the BYOC Trunk so that inbound calls trigger your call-handling logic — the trunk receives the call and Twilio fetches TwiML from your URL.
Associate purchased Twilio numbers with the BYOC trunk, or use your own carrier numbers via the External Phone Number feature, pointing the number's Voice URL to a TwiML webhook.
Known gotchas
BYOC Origination sends calls over the public internet by default; for private connectivity you need Twilio Interconnect (direct peering), which requires a separate agreement.
The Twilio BYOC Termination domain format is region-specific (e.g., .sip.us1.twilio.com for US1); ensure your carrier sends traffic to the correct regional endpoint.
BYOC trunks do not include STIR/SHAKEN signing by default for traffic originating from your carrier; contact Twilio support for SHAKEN attestation options on BYOC-originated calls.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp