This guide shows how to give an AI voice agent a real phone number using BYOC (bring your own carrier) — you supply the number and the SIP trunk, and your AI platform runs the agent. It is the practical companion to virtual numbers for AI voice agents, and it assumes you already have an agent on a platform that supports bringing your own carrier or generic SIP trunking. Terms are defined inline the first time they appear.
A quick note on scope: the steps below describe the standard SIP setup that is the same across platforms. Each platform names the fields differently and changes its screens over time, so for the exact clicks always follow that platform's own SIP or BYOC documentation — the per-platform section points you to what to look for.
On this page
Before you start
Three things make the setup smooth. First, a phone number — a DID (Direct Inward Dialing number) in the country your agent should present. Second, an AI platform that speaks SIP, either through a bring-your-own-carrier option or generic SIP trunking. Third, the connection detail your platform expects: a SIP endpoint (a SIP address or host to send calls to) if you authorise by address, or a place to enter trunk credentials if you authorise by login. Have your platform's SIP documentation open alongside this guide.
Connect in five steps
The whole flow is five steps, and none of them is platform-specific in concept:
- Get a phone number. Choose the country and type — local, national, toll-free or mobile — that fits the market your agent serves, and confirm availability and any per-country verification. Browse options in the coverage table.
- Choose how the trunk authenticates. Decide between an IP allowlist (trust a fixed set of addresses) and registered SIP credentials (a username and password the endpoint logs in with). Match this to what your platform supports — the next section compares them.
- Point the SIP trunk at your platform. Configure a SIP trunk between Temptera and your platform's SIP endpoint using the authentication you chose. If your platform peers by IP, you supply your platform's SIP addresses; if it registers, you enter the trunk credentials on the platform.
- Map the number to your agent. Route the DID's inbound calls to the agent, and set the caller ID your agent presents on outbound calls — often the same local number, so a callback returns to the same agent.
- Place a test call and verify. Call the number, and have the agent call out, checking two-way audio, caller ID and DTMF (the touch-tone key presses) before you go live.
Your trunk's credentials or allowlisted addresses are provisioned privately to your account — they are never published here.
IP allowlist vs SIP credentials
Both are standard ways to authenticate a SIP trunk; the right one depends on how your agent runs.
| Method | How it works | Good fit when | Watch for |
|---|---|---|---|
| IP allowlist (interconnect) | The trunk trusts calls to and from a fixed list of IP addresses — no login. | Your platform's SIP region or your own server has stable, static IPs. | Keep the allowlisted addresses current on both sides; calls from other addresses are refused by design. |
| Registered SIP credentials | The endpoint registers with a username and password, so it works from any address that authenticates. | Your agent or gateway has no fixed IP, or you prefer credential-based auth. | Store credentials securely and rotate them; treat them like any other secret. |
For the wider call path behind either method, see how DID numbers work with SIP trunking.
Per-platform notes
Any platform that speaks SIP connects the same way; these notes point you to the right feature in each. Always follow the platform's own current documentation for exact field names.
| Platform | What to look for |
|---|---|
| Vapi | Add Temptera as a custom BYO SIP trunk / credential, then attach your DID to the assistant — authorised by IP or SIP auth. |
| Retell AI | Connect an elastic / custom SIP trunk and import your Temptera number for production inbound and outbound. |
| ElevenLabs | Use generic SIP trunking (digest or IP auth, TLS transport where offered) to attach your existing number without porting. |
| OpenAI Realtime | OpenAI exposes a SIP endpoint, so you must bring a trunk — point Temptera at that endpoint and terminate your DID into it. |
| LiveKit | Create inbound and outbound SIP trunks into your LiveKit rooms with a Temptera number behind them. |
| Any SIP platform | Self-hosted agents and softswitches — FreeSWITCH, Asterisk, 3CX and others — connect over the same standard SIP trunk. |
Temptera is an independent carrier and is not affiliated with, endorsed by, or sponsored by the platforms named above; the names are used only to describe interoperability.
Inbound and outbound
One trunk carries both directions. On inbound, the DID originates the call into your agent: someone dials the number, the call arrives as a SIP INVITE (the request that opens a call and carries the dialled number), and the platform hands it to the agent. On outbound, the agent places calls over the same trunk and presents a caller ID you are authorised to use. Outbound calling is governed by the destination country's rules and by acceptable-use and anti-fraud controls, so keep campaigns and dialling patterns within both — see the acceptable use policy.
Test and verify
Before you route real traffic, prove the path with a deliberate test rather than assuming it works:
- Two-way audio. On a test call, confirm you can hear the agent and the agent can hear you. One-way or missing audio is almost always a codec, NAT (Network Address Translation) or SRTP (Secure Real-time Transport Protocol) mismatch, not a routing fault.
- Caller ID. Check the number your agent presents on an outbound call is the one you intend, so callbacks return to the right place.
- DTMF. If your agent uses key presses — for menus or capture — press a few and confirm they register, since DTMF can travel in more than one way and the two ends must agree.
- Concurrency. If you expect several calls at once, test more than one simultaneous call so you know your channel capacity is sized for the busy moment, not just the average.
When a call misbehaves, the causes are a short, predictable list. Work through SIP issues that break AI voice agents to isolate audio, DTMF, latency and authentication problems quickly.