SIP Trunk for AI Voice Agents: Do You Need One? - Zian AI

SIP Trunk for AI Voice Agents: Do You Need One?

Probably not. Retell AI publishes bundled United States telephony at $0.015/minute and charges nothing for a trunk you bring yourself, so a BYO trunk saves at most $0.0139 a minute against Twilio Elastic SIP Trunking termination at $0.0011/min. At that margin you need about 7,200 minutes a month to repay $100 of monthly overhead.

A SIP trunk is a signalling and media path between your own carrier and something that answers calls. For an AI voice agent on Vapi, Retell AI or LiveKit Cloud, the platform will already sell or provision numbers for you, and the honest answer for most teams is that the bundled path is fine. The cases where it flips are specific, enumerable and mostly not about price. Every rate below was read from the vendor’s own public pricing page on 12 September 2026 and is attributed in the sources table.

What a SIP trunk is not

Four things get called a SIP trunk and none of them is one. Getting the boundary right removes most of the question.

  • A phone number is not a trunk. You can own numbers and have no trunk at all. Retell AI lists “No Charge for custom phone numbers” against a $2.00/month line for Retell-provided numbers, which means importing a number you own is a separate decision from terminating your own carrier.
  • A SIP URI the platform gave you is not your trunk. It is the platform’s origination address. Pointing at it is the last step of owning a trunk, not evidence that you have one.
  • A registered SIP endpoint is not a trunk. A softphone or a desk handset registers to a server and receives calls for one identity. A trunk carries many concurrent calls for a range of numbers and authenticates by IP or by digest credentials, not by registration.
  • WebRTC is not SIP trunking. Browser and app audio reaches the agent without touching the public telephone network. If none of your calls originate on the PSTN, the trunk question does not arise.

What bringing your own trunk will not fix

A trunk moves who bills you for the call. It moves nothing above or below that layer, and four problems commonly blamed on bundled numbers survive it intact.

Latency. The seconds a caller notices go to speech recognition, the language model and speech synthesis. Carrier transit is a small and roughly fixed part of that budget, and changing whose trunk carries the audio does not shorten it.

Caller-ID reputation. Numbers get labelled by analytics providers on the strength of calling patterns and complaints, not on the strength of who sells you the minutes. Porting the same number onto your own trunk carries the reputation with it, which we worked through in our note on what to do when your number shows as Scam Likely.

Concurrency fees. These are charged by the platform, not the carrier, and a BYO trunk does not avoid them. Vapi lists call concurrency as “10 included + $10 / line / mo”. Retell AI lists concurrency as “Free for first 20 concurrency (active calls)” then “$8.00/Concurrency/month”. Both apply whoever carries the call.

Registration and compliance obligations. Caller-ID attestation and messaging registration attach to the numbers and the sender, not the trunk, and stay your work either way.

What each platform charges for the trunk you brought

This is the table that decides the arithmetic, and it takes three pricing pages side by side to build. Most people assume that bringing your own trunk sets the platform’s telephony charge to zero. On one of these three platforms it does not.

Platform Bundled telephony, as published What the platform charges when you bring your own trunk
Retell AI (pay-as-you-go) United States (Twilio) $0.015/min; Australia (Twilio) $0.1/min “No Charge for Sip Trunking/Custom Telephony”
Vapi (Build) Transport listed as “Charged by provider, not Vapi”; hosting is “$0.05 / min” either way None of Vapi’s own: the pricing page states transport is “Charged by provider, not Vapi” (read 12 September 2026)
LiveKit Cloud (Ship) US local inbound “100 minutes included then $0.01 per min” Third-party SIP minutes: “5,000 minutes included then $0.004 per min”
LiveKit Cloud (Scale) US local inbound “1,000 minutes included then $0.01 per min” Third-party SIP minutes: “50,000 minutes included then $0.003 per min”

Read the LiveKit rows twice. On the Ship plan the platform bills $0.004 a minute for minutes carried on a trunk you pay a carrier for separately. Add Twilio Elastic SIP Trunking origination for a local US number at $0.0034/min and your BYO inbound minute costs $0.0074 against a bundled $0.01. The saving is $0.0026 a minute, which is the whole case, before anyone has opened a firewall ticket.

The crossover: how many minutes before a trunk pays

The per-minute saving is the bundled rate, minus what your carrier charges, minus anything the platform still charges for third-party SIP. The monthly overhead is yours to set: the carrier relationship, the failover you now own, the on-call burden and any per-channel fees. Be careful with per-channel fees, because they are usually optional. Telnyx sells its elastic trunk with “no channel fees” and bills inbound per minute, then offers channels as an alternative: “Alternatively, get unlimited concurrent inbound calls with channels”, at “$12 per month” for the first 10. Ten channels is $120 a month instead of per-minute inbound billing, not on top of it.

Breakeven minutes per month = monthly overhead divided by the per-minute saving. Worked for four real configurations:

Monthly overhead you assign US outbound, Retell bundled vs Twilio termination (saves $0.0139/min) US inbound, Retell bundled vs Twilio origination (saves $0.0116/min) Australia local outbound, Retell bundled vs Twilio AU local termination (saves $0.0788/min; mobile termination saves $0.029) US inbound on LiveKit Ship, bundled vs third-party SIP plus carrier (saves $0.0026/min)
$50 3,597 min 4,310 min 635 min 19,231 min
$100 7,194 min 8,621 min 1,269 min 38,462 min
$200 14,388 min 17,241 min 2,538 min 76,923 min
$500 35,971 min 43,103 min 6,345 min 192,308 min
$1,000 71,942 min 86,207 min 12,690 min 384,615 min

The overhead column is an axis, not our estimate of your costs. Put your own number in it and read across. One worked row in full: if you take Telnyx’s optional inbound channels at $12 per month for the first 10 and buy ten, your overhead is $120 a month; at the US outbound saving of $0.0139 a minute, $120 divided by $0.0139 is 8,633 minutes a month before the trunk has paid for those channels, with the engineering still unpaid. Take the per-minute trunk instead and that $120 goes to zero, which is why overhead is an axis: on a pay-as-you-go elastic trunk the floor is your own engineering and on-call time, not a published fee.

The geography is the part that surprises people. Retell AI publishes bundled telephony per country, and the spread is wide: United States (Twilio) at $0.015/min against Australia (Twilio) at $0.1/min, United Kingdom (Twilio) at $0.1/min, Japan (Twilio) at $0.28/min and Philippines (Twilio) at $0.8/min. Against Twilio Elastic SIP Trunking termination to an Australian local number at $0.0212/min, the Australian saving is $0.0788 a minute, about 5.7 times the United States saving. Check which Australian numbers you actually dial before you bank that. Twilio prices Australia – Mobile termination at $0.0710/min on the same page, while Retell AI publishes one flat $0.1/min for Australia (Twilio) with no local or mobile split, so on a mobile-heavy outbound list the saving is $0.029 a minute rather than $0.0788 and the $50 row moves from 635 minutes to 1,724. A trunk that is indefensible for a US inbound line can still be obvious for an Australian campaign, but your destination mix moves the answer nearly as much as the country does. If you are pricing an Australian deployment, our guide to how to read AI receptionist pricing in Australia covers the rest of the bill.

The Own-It-Anyway Rule

The Own-It-Anyway Rule: bring your own trunk only if you would still want it with the per-minute saving set to zero.

The rule works because of an asymmetry in the five reasons people give. Four of them survive at zero saving, and one does not.

Reason for a BYO trunk Still true if the saving were zero? What actually decides it
You own numbers you cannot or will not port Yes Whether porting is permitted and worse than trunking to them
A regulator, contract or data-residency rule names your carrier Yes The clause. Read it, then ask a lawyer, not a vendor
You need a carrier feature the bundled numbers do not expose Yes Name the feature and confirm the platform passes it through
You already run a PBX and the agent must sit behind it Yes Your existing dial plan, not the AI platform
Your per-minute rate beats the bundled rate No The crossover table above, at your real monthly volume

So the rule is a default with exactly one way past it. If you have any of the first four, the price question is irrelevant, because you were bringing a trunk regardless. If the fifth is your only reason, the rule says stop, and the only thing that should overrule it is the crossover table clearing your real monthly volume with room to spare, because a volume forecast is the one input on this page you cannot read off a vendor rate card. The common failure mode is a team with none of the first four that has not run the arithmetic and brings a trunk because it sounds like the grown-up choice.

The cost that is not on any pricing page

A trunk adds a second vendor to the voice path, and the seam between them becomes yours. Two documented examples show the shape of that work, both from LiveKit’s public issue tracker.

In livekit/sip issue 422, “SIP Trunk connection unclear”, opened 23 July 2025 and closed 20 July 2026, a self-hosting developer lists five blockers at once: where to configure trunk settings, whether the trunk must be pre-registered, how an inbound call reaches a Python agent, what log level exposes SIP failures, and whether any complete worked example exists. Their first question is the genre in one line: “Where exactly do I configure my SIP trunk settings (auth, port, host) in LiveKit SIP? Is this done via environment variables, config file, or something else?” Two other developers added themselves to the thread, in September 2025 and February 2026, before a maintainer closed it with a pointer to the CLI and the community forum, noting the questions were “solvable with guidance on community vs being a code issue” – just under twelve months open. That elapsed time is the cost item, and it appears on no rate card.

In livekit/sip issue 243, “auth failure on outbound trunk causes invite flood”, opened 10 December 2024 and closed 26 December 2024, a wrong outbound trunk password produced retries “at a rate of over 1000 cps” against the downstream server, which was answering 401 each time. The reporter states plainly that “The only way to stop it was to delete the room.” A single mistyped credential in a config you now own became a load event on someone else’s server. That is the class of failure a bundled number does not expose you to.

A third thread, livekit/livekit issue 3545, opened 21 March 2025 and closed 27 September 2025, shows the same seam from the other direction: an outbound call through a correctly created Telnyx trunk returning “not_found” with the message “object cannot be found”, with the reporter noting they could not find documentation explaining that particular error. None of these are arguments against trunking. They are the argument for counting the engineering before you commit to it.

Sources, and who owns each figure

Figure Owner credited Page read 12 September 2026
Bundled telephony per country, including United States (Twilio) $0.015/min, Australia (Twilio) $0.1/min, United Kingdom $0.1/min, Japan $0.28/min, Philippines $0.8/min; “No Charge for Sip Trunking/Custom Telephony”; “No Charge for custom phone numbers” against $2.00/month; concurrency free for first 20 then $8.00/Concurrency/month Retell AI retellai.com/pricing
Hosting “$0.05 / min”; call concurrency “10 included + $10 / line / mo”; transport “Charged by provider, not Vapi” Vapi vapi.ai/pricing
US local inbound minutes “100 minutes included then $0.01 per min” (Ship) and “1,000 minutes included then $0.01 per min” (Scale); third-party SIP minutes “5,000 minutes included then $0.004 per min” (Ship) and “50,000 minutes included then $0.003 per min” (Scale) LiveKit livekit.com/pricing
Elastic SIP Trunking US termination “starting at $0.0011 / min”, origination local “$0.0034 / min”, local number “$1.1500 / mo” Twilio twilio.com/en-us/sip-trunking/pricing/us
Elastic SIP Trunking Australia termination local “$0.0212 / min” and mobile “$0.0710 / min”, origination local “$0.0060 / min”, local number “$2.5000 / mo” Twilio twilio.com/en-us/sip-trunking/pricing/au
Elastic SIP outbound local “Starting at $0.005 per minute”, inbound local “Starting at $0.0032 per minute”, numbers “$1.00 / NUMBER/MO”, “no channel fees” on the trunk itself, and optional inbound channels at “$12 per month” for the first 10 Telnyx telnyx.com/pricing/elastic-sip
Five blockers listed verbatim, thread dates and closing comment Reporter and maintainer in livekit/sip issue 422 github.com/livekit/sip/issues/422
Retry rate “over 1000 cps” on a wrong outbound trunk password and the room-deletion workaround Reporter in livekit/sip issue 243 github.com/livekit/sip/issues/243
Outbound SIP “object cannot be found” on a Telnyx trunk Reporter in livekit/livekit issue 3545 github.com/livekit/livekit/issues/3545
The crossover table, the breakeven arithmetic and the Own-It-Anyway Rule Zian AI This page

If the answer is yes

Then the work is bounded and documented, and it is the next page rather than this one. Our walkthrough of how to connect an AI agent to your SIP trunk carries the platform-by-platform interop matrix, the IP ranges and transports each platform requires, and the preflight to run before the first live caller. Bring the crossover number from this page with you, because it is the thing a network team will ask for.

If the answer is no, take the bundled numbers, ship, and revisit the arithmetic when your monthly minutes cross the row that matches your overhead. The decision is not irreversible: a trunk added later is the same work as a trunk added now.

That calculation is also a reasonable way to decide whether to run the phone layer at all. Zian AI is an autonomous AI sales-agent platform where the telephony, the CRM and API integrations, and the carrier seam are part of the platform rather than your integration project, across live phone, SMS, email and WhatsApp outreach in 30+ languages. Zian is in partnership-application beta, so there is no self-serve signup and no published pricing; you talk to us first. Apply For Partnership and we will tell you plainly whether your numbers should move or stay where they are.

Frequently asked questions

Do I need a SIP trunk for my AI voice agent?

Usually no. Vapi, Retell AI and LiveKit Cloud all provision numbers for you, and that path is faster to launch and has fewer moving parts. Bring your own trunk when you already own numbers you will not port, when a regulator or contract names your carrier, when you need a carrier feature the bundled numbers do not expose, when the agent must sit behind an existing PBX, or when your monthly minutes clear the crossover in the table above.

How much does a SIP trunk actually save me?

Less than most people expect in the United States. Retell AI publishes bundled United States telephony at $0.015 per minute and charges nothing for custom telephony, while Twilio Elastic SIP Trunking publishes termination starting at $0.0011 per minute and origination for a local number at $0.0034 per minute, both read on 12 September 2026. The gap is roughly one to one and a half cents a minute, so the saving only matters at volume.

Does bringing my own trunk make platform telephony charges zero?

Not on every platform. Retell AI lists no charge for SIP trunking and custom telephony. LiveKit Cloud prices third-party SIP minutes separately, at 5,000 minutes included then $0.004 per minute on the Ship plan and 50,000 minutes included then $0.003 per minute on Scale, so the platform still bills for minutes carried on your carrier. Check this line before you model any saving.

Will my own trunk reduce the delay before the agent replies?

No. Response delay is dominated by speech recognition, the language model and speech synthesis, all of which run identically whoever carries the call. Carrier transit is a small and largely fixed share of that budget. Pick a trunk for ownership, compliance or unit cost, and treat latency as a separate problem with separate fixes.

Why is the answer different in Australia?

Because the bundled rate is different while the carrier rate barely moves. Retell AI publishes bundled telephony of $0.015 per minute for United States (Twilio) and $0.1 per minute for Australia (Twilio), and Twilio publishes Elastic SIP Trunking termination to an Australian local number at $0.0212 per minute. That makes the Australian saving about $0.0788 a minute on local numbers, roughly 5.7 times the United States figure, so the crossover arrives at a far lower monthly volume. Australian mobile numbers are the common outbound case and Twilio prices Australia – Mobile termination at $0.0710 per minute, which cuts the saving to about $0.029 a minute, so settle your destination mix before you model it.

What ongoing costs do people forget when they budget a trunk?

Platform concurrency fees and the on-call burden, and sometimes per-channel fees. Platform concurrency is charged separately and a trunk does not avoid it: Vapi lists 10 included then $10 per line per month, and Retell AI lists the first 20 active calls free then $8.00 per concurrency per month. Channel fees are optional rather than automatic: Telnyx advertises no channel fees on its elastic trunk and bills inbound per minute, but offers channels as an alternative at $12 per month for the first 10, which buys unlimited concurrent inbound calls.


Related Blogs

Related from Zian AI