SIP Trunking

Bring your own carrier by pointing an existing SIP trunk at Atlas

SIP trunking is the bring-your-own-carrier option for phone numbers. Instead of Atlas provisioning a number for you through Twilio, you keep your number with your existing carrier and point that carrier’s SIP trunk at the Atlas platform. Calls travel over your trunk, and transfers go out to SIP URIs instead of dialed phone numbers.

Use it when you already own numbers you can’t move, when your carrier contract or compliance rules require you to keep the trunk, or when you want calls to stay inside a PBX you already run.

SIP trunking is rolled out per account. If you don’t see the SIP Trunking option in the phone number modal, contact support to have it enabled.

Network requirements

Atlas sends SIP signalling and media from a fixed set of IP addresses. Allowlist them on your firewall, SBC, or PBX so traffic can pass between Atlas and your trunk, in the form:

198.51.100.10/32
198.51.100.11/32

The addresses above are examples. Ask support for the current Atlas SIP addresses for your account — they carry SIP traffic only.

What you’ll need

Collect the following from your carrier or PBX administrator before you start:

WhatNotes
SIP phone numberThe DID that terminates on your trunk, in full E.164 format.
SIP addressThe hostname of your SIP server, for example sip:pbx.example.com.
SIP IP addressThe IP that hostname resolves to. Your carrier may need the Atlas IPs allowlisted on their side too.
Outbound usernameDigest authentication username for outbound calls.
Outbound passwordDigest authentication password for outbound calls.

A complete set looks like this:

Number: +17785550123
SIP: sip:pbx.example.com -> 203.0.113.10
Username: dd943127ae
Password: a7fcb7b2f6k7c187

IP-based authentication only works reliably when your carrier gives you a dedicated termination URI or SIP server. On a shared endpoint, supply outbound authentication credentials instead.

Connect your trunk

1

Open the phone number step

Go to the Integrations step of the campaign wizard, or the Integrations step during onboarding, and start adding a phone number.

2

Choose SIP Trunking as the provider

In the phone number modal, pick SIP Trunking from the provider list instead of Twilio.

3

Enter your trunk details

Fill in the fields below and save. Atlas registers the number against your trunk and links it to the campaign.

Field reference

FieldRequiredDescription
Phone numberYesThe DID that terminates on your trunk, in E.164 format (for example +14155550123).
Termination SIP URIYesThe gateway address Atlas sends signalling to — the hostname or IP your carrier gave you (for example sip.example.com).
Outbound auth usernameNoDigest authentication username for outbound calls. Leave blank only if your carrier authenticates by IP.
Outbound auth passwordNoDigest authentication password for outbound calls. Leave blank only if your carrier authenticates by IP.

Once saved, the number appears wherever your other numbers do, labelled SIP Trunking. Twilio-only features — A2P 10DLC registration and TrustHub verification badges — don’t apply to SIP numbers and are hidden for them.

Call transfers over SIP

Campaigns on a SIP trunk use a different transfer form than Twilio call forwarding: destinations are SIP URIs rather than dialed numbers, so the agent hands the call back onto your trunk instead of placing a new outbound call.

Each transfer destination is one row:

FieldRequiredDescription
WhoYesThe label the agent uses for this destination, such as Sales or Billing.
SIP URIYesDestination in sip:user@host form, for example sip:sales@pbx.example.com. Each URI can only be used once per campaign.
Phone numberNoCarried alongside the URI for your own records.
Transfer messageNoPlayed to the caller during the transfer. Falls back to the campaign’s shared forwarding message.
SIP headersNoCustom headers sent with the transfer. See below.

Add a row per destination with Add another transfer, then save. You can also import destinations from another campaign — only rows that already have a SIP URI are brought over.

Saving replaces every transfer destination on the campaign: the existing rows are deleted and the ones on screen are re-created. Don’t save a partially filled form expecting your old rows to survive.

SIP headers

SIP headers are free-form key/value pairs attached to the transfer, useful for passing context to your PBX or carrier — a queue name, an account reference, a routing hint. Add as many as your destination expects; Atlas sends them exactly as written, so match the header names your PBX routes on.

Troubleshooting

SymptomLikely cause
The SIP Trunking option isn’t in the provider listThe feature isn’t enabled on your account — contact support.
Calls don’t reach the agentYour carrier isn’t routing the DID to the Atlas gateway, the termination SIP URI is wrong, or the Atlas SIP IPs aren’t allowlisted.
Calls are rejected at setupAuthentication mismatch — your carrier expects digest credentials but the fields were left blank, or the source IP isn’t allow-listed on a shared endpoint.
A transfer destination won’t saveThe SIP URI isn’t in sip:user@host form, or it duplicates another row on the campaign.
Transfers connect but land in the wrong placeThe destination URI or its SIP headers don’t match what your PBX routes on.