SIP trunk, cloud telephony or a carrier number — which line should your AI agent answer?
The line you connect decides your per-minute cost, your control over routing, and how bad a bad day gets. A plain comparison of the three.
Before an AI agent can answer anything, something has to carry the call. That something is a choice, and it sets your per-minute cost, how much control you have over routing, and how bad a bad day gets. Three options, honestly compared.
Option 1 — a programmable carrier account
Twilio, Maqsam and similar. You buy numbers from them, they hand you an API, you point the number at your platform.
- Fastest to start. A number in minutes, no procurement.
- Numbers in many countries without separate carrier relationships.
- Good observability — logs, statuses, debugging that exists.
- Per-minute rates are the highest of the three at volume.
- You are a small tenant of a very large system when something goes wrong.
Pick it when you are starting, your volume is unknown, or you need numbers in several countries and do not want to manage that.
Option 2 — a SIP trunk from a local carrier
You buy connectivity from a telecom provider and point the trunk at your platform. This is what most contact centres of any size actually run on.
- The cheapest per minute once you have real volume, usually by a lot.
- Local number ranges, local caller ID, better answer rates in-market.
- A carrier account manager who takes your call.
- Procurement. Contracts, KYC, sometimes weeks.
- You own the configuration: codecs, protocol, media encryption, registration.
- Capacity is a number you bought. Exceed it and calls fail rather than costing more.
Pick it when you know your volume, you are calling mostly one country, and per-minute cost has started appearing in conversations about the budget.
Option 3 — an inbound SIP gateway
Your existing PBX or gateway keeps the numbers, and forwards specific calls to the agent.
- Nothing about your existing setup changes.
- You can route a single number, or overflow, without migrating anything.
- The lowest-risk way to try an AI agent in an organisation that will not move its telephony.
- Inbound only. You cannot dial out on it, and any campaign tool worth using will refuse to offer it.
- Two systems to reason about when a call goes missing.
Pick it when the telephony is not yours to change, or you want to test on one number without touching the rest.
The settings that actually matter
Whichever you choose, four things will cause your first outage, and none of them are exotic:
- Concurrent call capacity
- How many calls can be up at once. Set it deliberately; on a trunk it is a hard ceiling. In Convarza it lives on the channel as allowed calls count, because it is a property of the line and not of a campaign.
- Direction
- Inbound, outbound, or both. Getting this wrong produces the confusing failure where everything looks configured and nothing rings. A channel with incoming off should say so plainly rather than offering routing it will never use.
- Protocol and media encryption
- Your carrier will tell you. Guessing produces one-way audio, which is the single most demoralising bug in telephony.
- Calling hours
- Belongs on the line, not on each campaign, so a new campaign cannot dial at 6am by omission. Why that matters legally.
You do not have to choose once
The common path is a carrier number to prove the thing works, then a SIP trunk once the volume justifies the paperwork, with the carrier number kept for overflow and for countries the trunk does not cover. That is a perfectly good end state, not a transitional mess.
What matters is that the platform treats all three the same way — same routing decision, same hours, same settings — so switching is a configuration change and not a migration. All four calling channels are here.
Whichever line you pick, keep the carrier account in your name. A platform that owns your numbers owns your ability to leave.