What is a SIP trunk? A SIP trunk is a connection between your telephony provider and Zeeg, that routes calls to and from your AI agent. By bringing your own number via SIP trunk, you can use an existing phone number you already own — rather than buying a new one through Zeeg — and benefit from fully automated AI call handling.
When you import a number, you choose what it does with two switches:
Receive calls — your agent answers calls to this number.
Make calls — your agent calls out from this number, and your number is shown as the caller ID.
Both switches are on by default. Turn on at least one. The number takes calls only if Receive calls is on, and places calls only if Make calls is on.
The AI phone agent and SIP trunk import work on every Zeeg plan, including the free Starter plan. Call minutes are billed through AI Minutes packs; with your own SIP trunk there is no number fee.
How receiving and making calls work together
Receive calls — your provider forwards incoming calls to Zeeg's SIP server (the address Zeeg shows you in the import dialog).
Make calls — Zeeg sends your agent's outbound calls to your provider's SIP trunk (the Address you enter in Zeeg). Your provider then delivers the call to the phone network with your number as the caller ID.
Before you start
What you need
A phone number from a provider that supports static SIP trunks.
Admin access to your provider's console.
Admin access to your Zeeg workspace.
Compatibility: static vs. registration-based trunks
Zeeg only works with static SIP trunks. A static trunk accepts traffic at a fixed hostname or IP without requiring the far end to register first.
✅ Supported (static SIP trunks):
Twilio (Elastic SIP Trunking)
Telnyx, 3CX (hosted)
Starface
Easybell (with the SIP Trunk FQDN add-on)
Zadarma
and most carrier-grade providers
❌ Not supported (registration-based trunks): Any provider where a SIP device or PBX must first send a REGISTER to receive calls. Most consumer VoIP, softphone, and residential lines fall into this category.
❌ Confirmed not supported today: Sipgate, Placetel, Peoplefone, NFON, and FRITZ!Box. The workaround is to buy a number from Zeeg and forward calls from your provider to that number.
Not sure which type you have? Ask your provider whether they offer a "SIP trunk with IP authentication" or a "static trunk endpoint." If the answer involves a SIP phone that must register with a username and password, it's a registration-based trunk and won't work with Zeeg.
How to set up your SIP trunk
Step 1 — Open the import dialog in Zeeg
You can reach the Import SIP phone number dialog from two places:
From the AI Agents list page — click Phone numbers at the top of the page to open the Phone Numbers manager, then choose Import SIP. From here you can also see, edit, reassign, release, or delete any number across your workspace.
From an agent — open the agent's Main Settings → Phone Numbers and click Import SIP.
In the dialog, enter your Phone number in E.164 format (e.g. +493012345678). The number must be authorised by your SIP provider. If Make calls is on, this number appears as the caller ID on calls placed by your agent.
Step 2 — Set up Receive calls
Keep Receive calls turned on if your agent should answer calls to this number. Turn it off if the number should only be used for outbound calls. This section shows what your provider needs to forward incoming calls to Zeeg.
Under Zeeg SIP server, Zeeg shows the addresses to forward calls to. In your SIP provider, forward calls for this number to one of these addresses:
Transport | Zeeg SIP address |
TLS — encrypted (Recommended) | sip:sip-static.rtc.eu.residency.elevenlabs.io:5061;transport=tls |
TCP — unencrypted | sip:sip-static.rtc.eu.residency.elevenlabs.io:5060;transport=tcp |
Click the copy icon next to either address, then paste it into your provider's Origination URL or SIP URI field. TLS is the recommended option as it encrypts signalling end-to-end. Both endpoints resolve inside the EU residency region.
Click Advanced to open the optional settings for incoming calls:
Field | What to enter |
Media encryption | Required (SRTP), Allowed, or Disabled. Defaults to Allowed, because most providers forward calls without SRTP. Choose Required only if your provider sends encrypted media. |
Username / Password | Optional. Only needed if your provider signs in with a username and password when it forwards calls. Most providers don't. A password needs its username. |
Where to paste the Zeeg SIP address per provider
Provider | Where to paste it |
Twilio | Elastic SIP Trunking → Your Trunk → Origination → Origination URI. Also enable SIP REFER and PSTN Transfer on the trunk. |
Telnyx | SIP Trunking → Your Trunk → set the FQDN entry to sip-static.rtc.eu.residency.elevenlabs.io, entry type SRV, transport TCP or TLS, region Europe. Set inbound number format to E.164 with leading +. |
3CX | Trunks & Chat → +Trunk → "Generic SIP Trunk (IP Based)" → paste the hostname into Registrar/Server/Gateway Hostname. Authentication mode: IP-based (no registration). Add an outbound rule routing the desired prefix/number to this trunk. |
Starface | Administration → Leitungen → Provider → paste the hostname into Registrar/Server/Proxy, transport TCP. Disable registration. The line will show "not registered" — this is expected. |
Easybell | SIP Trunk FQDN settings → Ziel-Server / Target server → paste the full URI Zeeg provided. Set incoming number format to E.164 with leading +. |
Zadarma | My PBX → Internal Numbers → Call Forwarding and Voicemail → Configure → condition Always → destination External Server (SIP URI) → paste <+yourNumber>@sip-static.rtc.eu.residency.elevenlabs.io with your Zadarma virtual number in E.164. |
After saving, point the phone number itself at this trunk on the provider side (usually, a "Number → Route to trunk" setting).
Step 3 — Set up Make calls
Keep Make calls turned on if your agent should call out from this number. Turn it off if the number should only receive calls. This tells Zeeg where to send calls your agent places.
Fill in the fields in the Make calls section:
Field | What to enter | Example |
Address | Required. Hostname or IP of your provider's SIP trunk. Hostname/IP only — no sip: prefix, no port, no path. Zeeg will reject anything containing : / ; @. | sip.telnyx.com |
Username | Optional. SIP digest username from your provider. | acme_trunk |
Password | Optional. A password is only sent together with its username, so Zeeg asks you to enter the username if you fill in a password. | — |
Transport | TLS, TCP, or UDP. Defaults to TLS — match what your provider supports. | TLS |
Media encryption | Required (SRTP), Allowed, or Disabled. Defaults to Required. Use Required with TLS. | Required |
Custom SIP headers | Optional name/value pairs your provider needs for routing. Click Add header to add as many as needed. Zeeg sends these headers with every outbound call. | — |
Where to find the address and credentials per provider
Provider | Where to look |
Twilio | Elastic SIP Trunk → Termination tab → Termination SIP URI (e.g. yourname.pstn.twilio.com). Strip sip: and any port. Set Authentication to Credentials. |
Telnyx | SIP Trunking → Your Trunk → Outbound Voice Profile → use sip.telnyx.eu as the address (EU PoP). Set Authentication to Credentials. |
3CX | Trunks & Chat → +Trunk → "Generic SIP Trunk (IP Based)" (hosted 3CX only). Use the trunk's Registrar/Server/Gateway Hostname, set transport to TCP. |
Starface | Administration → Leitungen → Provider → set Registrar/Server/Proxy to the trunk hostname. Enable CLIP No Screening on the number. |
Easybell | Request the SIP Trunk FQDN add-on via support@easybell.de first (~€10/month). Then configure the trunk hostname in the portal → SIP Trunk FQDN settings. |
Zadarma | Use pbx.zadarma.com as the address. Username = your internal PBX number from my.zadarma.com/mypbx, password = the generated password for that internal PBX. |
IP-based authentication If your provider authenticates by IP instead of digest credentials, leave Username and Password empty. Contact Zeeg support to get the current egress IPs to allowlist on your provider's side.
Step 4 — Assign the number to an agent
At the bottom of the dialog, use the Assign to agent dropdown to choose which AI agent should use this number. You can pick an agent now, or choose None — assign later and assign it later from the Phone Numbers manager.
Then click Import. Once saved, place a test call in each direction you've enabled to confirm everything is working.
Editing or removing a number
Saving an edit sets the number up again. Zeeg doesn't show your saved trunk settings, because they can contain passwords. When you edit an imported SIP number, enter its settings, usernames and passwords once more before you click Save. The phone number itself can't be changed. Delete the number and import it again if you need a different one.
Open the Phone numbers manager from the AI Agents list page and choose the Agent
Here you can reassign your phone number
However, instead of clicking on "Phone numbers", if you click on the Agent you want to edit, then you'll be able to:
Reassign a number to a different agent, or unassign it
Edit an imported SIP number — the dialog re-opens with Receive calls and Make calls set as they are today. Re-enter the settings, usernames and passwords for each direction, then click Save.
Release a paid number (e.g. a Twilio number with a monthly fee) to stop being charged for it.
Delete a SIP number you no longer need.
Troubleshooting
Inbound calls don't reach the agent
Check that Receive calls is turned on for the number. A number takes calls only when it is on. If you imported the number earlier without it, edit the number, turn Receive calls on, enter its settings again and click Save.
Check that the address on your provider exactly matches the value Zeeg displays — including ;transport=tls or ;transport=tcp. UDP fallbacks won't work for inbound.
Check your provider's SIP debug log. A 403 Forbidden response usually means digest credentials don't match or your provider's IP isn't allowlisted.
Confirm the number is actually routed to this trunk on the provider side, not to a fallback voicemail.
Outbound calls fail
If Zeeg refuses the call with the message "This agent's phone number only receives calls. Turn on Make calls for the number so the agent can call out.", Make calls is turned off for the number. Edit the number, turn Make calls on, fill in the Address, re-enter the other settings and click Save.
The Address field must be hostname-only — no sip:, no port, no path. Zeeg will reject anything containing : / ; @. For example, sip.telnyx.com is valid; sip:sip.telnyx.com:5060 is not.
Re-enter the password — most providers display it only once at creation, so a stale value may have been saved.
Confirm your caller ID number is authorised on the provider side; many providers require allowed "from" numbers to be pre-registered.
Registration errors in your provider's logs
Your provider is trying to send a SIP REGISTER. Zeeg does not accept registrations. Switch the trunk to static or IP-based mode in your provider's settings.
One-way audio
This usually indicates mismatched media settings between your provider and Zeeg. Try setting Media encryption to Allowed for the affected direction to confirm signalling works first, then move both sides back to Required if your provider supports SRTP.
Quick reference
Setting | Value |
Zeeg SIP address (TLS) | sip:sip-static.rtc.eu.residency.elevenlabs.io:5061;transport=tls |
Zeeg SIP address (TCP) | sip:sip-static.rtc.eu.residency.elevenlabs.io:5060;transport=tcp |
Call directions | Receive calls and Make calls — both on by default, at least one required |
Default transport (Make calls) | TLS |
Default media encryption | Receive calls: Allowed. Make calls: Required (SRTP) |
Ports | 5061 (TLS) / 5060 (TCP) |
Data residency | EU (workspace-level) |
Phone number format | E.164 — + followed by 1–15 digits |
Required Make calls field | Address (hostname only — no sip:, no port, no : / ; @) |
Optional Make calls fields | Username + Password (digest), Transport, Media encryption, Custom SIP headers |
Optional Receive calls fields (under Advanced) | Media encryption, Username + Password (digest) |
Entry points | AI Agents list → Phone numbers → Import SIP, or Agent → Main Settings → Phone Numbers → Import SIP |
Frequently asked questions
Can I use the same number for both receiving and making calls?
Yes. Both Receive calls and Make calls are on by default. The same number acts as the caller ID for outbound calls and receives inbound calls through the Zeeg SIP server.
Can I use a number only to receive calls, or only to make calls?
Yes. Turn off the switch you don't need. At least one must stay on. A number with only Receive calls on can't place calls, and Zeeg refuses an outbound call from it before dialling. A number with only Make calls on doesn't take incoming calls.
My provider isn't on the supported list. Can I still try?
If your provider offers a static SIP trunk with IP authentication or digest credentials, it will likely work. The key requirement is that your provider must not require Zeeg to send a SIP REGISTER. Check with your provider before setting it up.
What happens if I edit an imported number?
Saving sets the number up again, so you need to enter its settings, usernames and passwords once more. The number stays assigned to the same agent unless you change it.
Is call data stored outside the EU?
No. Both Zeeg SIP endpoints resolve within the EU residency region, so signalling and media remain in Europe. Zeeg's broader data residency is also EU-based, hosted on Deutsche Telekom's T Cloud Public in Germany.
How many SIP numbers can I import?
There is no fixed limit on the number of SIP numbers you can import. Each number can be assigned to one AI agent at a time. Contact your account manager if you have large-scale deployment needs.





