Skip to main content

How to bring your own phone number to Zeeg using a SIP trunk

Connect a phone number you already own to your Zeeg AI agent using a SIP trunk from your telephony provider.

Written by Fernando Figueiredo

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.

This guide covers both directions:

  • Inbound calls — people calling your number are answered by your Zeeg AI agent.

  • Outbound calls — your agent places calls from your number as the caller ID.

You can enable just inbound, just outbound, or both. Outbound configuration is required to save the number; inbound is optional.

The AI Phone Bot and SIP trunk import are available from the Professional plan onwards.


How inbound and outbound work together

The source document has a clear two-line summary of how each direction actually works technically:

  • Inbound — your provider routes incoming calls to Zeeg's SIP endpoint (the Origination URI Zeeg gives you).

  • Outbound — 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 PSTN 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 modal in Zeeg

You can reach the SIP import modal 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 modal, enter your Phone Number in E.164 format (e.g. +493012345678). The number must be authorised by your SIP provider. This number will appear as the caller ID on outbound calls placed by your agent.


Step 2 — Configure the outbound trunk (required)

This tells Zeeg where to send calls your agent places. Fill in the Outbound Trunk Configuration section of the modal:

Field

What to enter

Example

Address

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. Required if you provide a username.

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.

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 3 — Configure the inbound trunk (optional)


This is the configuration your provider needs to forward incoming calls to Zeeg. In the Inbound Trunk Configuration section, Zeeg displays its SIP server URIs for you to copy and paste into your provider's settings:

Transport

Zeeg SIP URI

TLS (recommended)

sip:sip.rtc.eu.residency.elevenlabs.io:5061;transport=tls

TCP

sip:sip.rtc.eu.residency.elevenlabs.io:5060;transport=tcp

Click the copy icon next to either URI, 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.

Below the SIP server URIs, fill in the optional inbound fields:

Field

What to enter

Origination URL

Optional. A SIP URI Zeeg should use when forwarding inbound calls to a destination of yours (most setups leave this empty).

Username / Password

Optional. Set if you want your provider to authenticate to Zeeg with digest auth.

Transport

Must match the URI variant you copied above (TLS or TCP).

Media encryption

Required (SRTP), Allowed, or Disabled. Defaults to Required.

Custom SIP headers

Optional name/value pairs.

Where to paste the Origination URI 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.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.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 4 — Assign the number to an agent

At the bottom of the modal, use the Assign to agent dropdown to choose which AI agent should handle calls on this number. You can pick an agent now, or choose None and assign it later from the Phone Numbers manager.

Once saved, place a test call in each direction you've enabled to confirm everything is working.


Editing or removing a number

  1. Open the Phone numbers manager from the AI Agents list page and choose the Agent


  2. Here you can reassign your phone number

  3. However, instead of clicking on "Phone numbers", if you click on the Agent you want to edit, then you'll be able to:

    1. Reassign a number to a different agent, or unassign it

    2. Edit an imported SIP number — the modal re-opens pre-filled. Note that updating credentials replaces the existing trunk configuration.

    3. Release a paid number (e.g. a Twilio number with a monthly fee) to stop being charged for it.

    4. Delete a SIP number you no longer need.


Troubleshooting

Inbound calls don't reach the agent

  • Check that the Origination URI 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

  • 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 on both sides to confirm signalling works first, then move both back to Required.


Quick reference

Setting

Value

Inbound URI (TLS)

sip:sip.rtc.eu.residency.elevenlabs.io:5061;transport=tls

Inbound URI (TCP)

sip:sip.rtc.eu.residency.elevenlabs.io:5060;transport=tcp

Default transport

TLS

Default media encryption

Required (SRTP)

Ports

5061 (TLS) / 5060 (TCP)

Data residency

EU (workspace-level)

Phone number format

E.164 — + followed by 1–15 digits

Required outbound field

Address (hostname only — no sip:, no port, no : / ; @)

Optional outbound fields

Username + Password (digest), Transport, Media encryption, Custom SIP headers

Optional inbound fields

Origination URL, Username + Password (digest), Transport, Media encryption, Custom SIP headers

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 inbound and outbound calls? Yes. You can enable both directions when setting up the trunk. The same number acts as the caller ID for outbound calls and receives inbound calls through the Zeeg SIP endpoint.

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 update the trunk credentials? Editing an imported SIP number and saving new credentials replaces the existing trunk configuration. 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 Open Telekom Cloud 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.

Did this answer your question?