Connect Your ElevenLabs Agent to a Czech Number via SIP
September 2, 2026 · 7 min read
Already running your own ElevenLabs Conversational AI agent and want to give it a Czech phone number? There is no special trick to it: you point a volai number at your agent platform's SIP trunk. Inbound is the easy part - one PATCH request on the number's routing. Outbound works a little differently, because ElevenLabs (like most voice AI platforms) cannot keep a phone line permanently registered as a SIP client - it only fires off a single authenticated call, so the call travels through a short-lived relay connection instead. The big difference from the built-in volai agent: for outbound calls you skip the agent surcharge of 2.50 CZK/min (~EUR 0.10) completely - you run (and pay for) the agent yourself, on your own ElevenLabs workspace.
When does your own agent make more sense than the built-in one?
Both routes bill against the same volai number and the same credit balance - what changes is who drives the conversation and what it costs on top:
| Criterion | Built-in volai agent | Your own agent (ElevenLabs and others) |
|---|---|---|
| Who drives the conversation | We do - a single systemPrompt, on our own ElevenLabs workspace, using our voice. | You do - any platform you like, your prompt, your voice, your tools. |
| Call price | 0.92 CZK/min (~EUR 0.04) outbound, 0.50 CZK/min (~EUR 0.02) inbound | same - 0.92 CZK/min (~EUR 0.04) outbound, 0.50 CZK/min (~EUR 0.02) inbound |
| Agent surcharge | + 2.50 CZK/min (~EUR 0.10) | none (0 CZK) - you only pay for the minutes |
| Transcript, summary, voicemail detection | Yes, on every call, automatically. | No - whatever your own platform does or doesn't do. |
You are off the hook for the volai agent surcharge, but that does not make it free - you pay your own platform (ElevenLabs Conversational AI and similar) directly, at its own rates. We only charge for call minutes on the volai line, the same as with a SIP client or the built-in agent. Rates exclude VAT, like the rest of the volai price list.
Put differently: your own agent pays off once you already have an ElevenLabs agent running, with its own prompt, tools and voice, and just need a Czech number attached to it. Starting from zero with nothing more than one system prompt, and no separate ElevenLabs workspace to manage? The faster route is the built-in volai agent - one API call sets it up, and the transcript and summary come bundled in with the agent surcharge, with no separate setup.
What will you need?
- A volai account with a Czech number already on it, plus an API key (vk_...) - grab it from the portal, under API and MCP.
- An ElevenLabs Conversational AI agent already built in YOUR OWN workspace - this guide wires it up to a number, it does not build the agent for you.
- Credit on your volai account - calls draw down from it exactly like they would with the built-in agent.
Step 1: Connect inbound calls
Point the number's routing at mode: "sip" with the sipUri set to the address ElevenLabs expects calls on for a SIP-trunk import:
curl -X PATCH "https://volai.cz/v1/numbers/+420601234567" \
-H "Authorization: Bearer vk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"routing": {"mode": "sip", "sipUri": "sip:+420601234567@sip.rtc.elevenlabs.io"}}'Then, on the ElevenLabs side (Settings → Phone Numbers → Import → SIP trunk), register the number with an inbound_trunk_config:
{
"provider": "sip_trunk",
"phone_number": "+420601234567",
"label": "My own agent",
"inbound_trunk_config": {
"allowed_addresses": ["0.0.0.0/0"],
"media_encryption": "allowed"
}
}Only the inbound minute is billed (0.50 CZK/min (~EUR 0.02)), no surcharge on top - the same rule the built-in agent and a plain softphone both follow.
Step 2: Connect outbound calls through the relay
This direction runs the other way - your agent dials out on its own. The phone network will not forward a call from a foreign SIP address straight to its destination, so it travels through a short-lived relay instead - a one-time SIP slot volai opens right before the call and tears down again once it is over. For the full mechanics of why it works this way, and how it looks for platforms other than ElevenLabs, see the Bring your own agent page - here are just the three steps you need:
2.1 Point ElevenLabs at your line
Grab the number's SIP credentials:
curl "https://volai.cz/v1/numbers/+420601234567/sip" \
-H "Authorization: Bearer vk_YOUR_KEY"{
"server": "sip.volai.cz",
"username": "123456",
"password": "a1b2c3d4e5f6"
}The same credentials work for a plain softphone too, see the SIP page.
Then set them as that number's outbound_trunk_config on ElevenLabs (Settings → Phone Numbers → your number → Outbound calling), in exactly this shape:
{
"outbound_trunk_config": {
"address": "sip.volai.cz",
"transport": "udp",
"media_encryption": "allowed",
"credentials": {
"username": "123456",
"password": "a1b2c3d4e5f6"
}
}
}2.2 Open a relay connection
Just before you place the call - the connection is short-lived, see the limits further down - call:
curl -X POST https://volai.cz/v1/relay \
-H "Authorization: Bearer vk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"to": "+420777123456", "from": "+420601234567"}'{
"id": "rl_4f2a91cd",
"sipName": "volai_relay_2",
"sipUri": "sip:volai_relay_2@sip.volai.cz",
"expiresAt": 1756111760000,
"callId": "c_9d4e2b7f"
}2.3 Tell the agent to dial the sipName, not the full SIP URI
The bare name, not the full SIP URI
ElevenLabs rejects a full SIP URI with the error “SipCallTo should be a phone number or SIP user, not a full SIP URI” - which is why the response above hands back sipName (the bare volai_relay_2) and sipUri (the full sip:volai_relay_2@sip.volai.cz) as two separate fields. Only sipName belongs in to_number.
For ElevenLabs, that means calling /v1/convai/sip-trunk/outbound-call with to_number set directly to the sipName:
{
"agent_id": "agent_...",
"agent_phone_number_id": "phnum_...",
"to_number": "volai_relay_2"
}What happens once the call goes out
On the network side, the call goes out under the name volai_relay_2, gets handed off to your to and shows your from number as the caller ID - whoever picks up sees your volai line on their screen, never the relay slot's throwaway name. Once the call wraps up, the lease is freed automatically and you are billed the normal outbound rate - 0.92 CZK/min (~EUR 0.04), no agent surcharge tacked on.
Limits and security
| What | Value |
|---|---|
| Lease waiting for the first call (pending) | 120 s default, 15 to 300 s |
| Call in progress (active) | 15 minutes at most |
| Active leases per one of your numbers | at most 1 |
| Active leases per account | at most 2 |
- from must be your own volai number - otherwise
from_number_not_owned. Without that check, anyone could spoof someone else's line as their caller ID. - Same gates as a regular call - the do-not-call list (calls only, SMS is exempt), an automatic 30-day block after three failed attempts to one number within 24 hours, and the standard call rate limit. None of that can be routed around through the relay.
- The lease is one-time - a second call attempt on the same lease gets rejected, so spin up a fresh one for the next call.
- A full relay pool answers with
503 capacity_busy- it is a concurrency cap shared across the ENTIRE volai platform, not just your account. Nothing gets billed when that happens; just retry shortly after.
The full REST reference (error codes, GET/DELETE over leases) is in the REST API reference; the complete walkthrough - covering inbound and outbound calls for any platform, not only ElevenLabs - lives on the Bring your own agent page.
When should you stick with the built-in agent?
To be blunt about it: running your own agent means more moving parts - a separate ElevenLabs account and bill, no automatic transcript or summary showing up in the volai portal, and an extra step before every outbound call (spinning up a relay lease). If one solid system prompt covers what you need and you would rather be done in minutes than manage a second platform account, the built-in volai agent gets you there with a single API call - and that 2.50 CZK/min (~EUR 0.10) surcharge buys you an automatic transcript, summary and voicemail detection on every call, with no extra setup.
For the full price comparison against Twilio and other providers, see the pricing page; the ElevenLabs integration walkthrough, with links to their own docs, is on the Integrations page.
Try volai - first 50 CZK on us
Sign up in a minute and your account already has starter credit for calls, SMS and a number.
Related articles
Make Outbound Phone Calls from an n8n Workflow
Call a customer straight from n8n: an HTTP Request node against volai's REST API, workflow data in the agent's prompt, and results delivered by webhook.
How Much Does an AI Receptionist Cost
A line-by-line breakdown of AI receptionist pricing on volai: number, minutes, agent surcharge, three volume scenarios, and what Czech competitors charge.
Never Miss a Call With an AI Receptionist
Why calls get lost even with a working phone line, what the call.missed webhook tells you, and how an AI receptionist keeps every call answered.