Vodiči
Vlastiti agent
Želite na volai broj povezati vlastitu glasovnu platformu - ElevenLabs Conversational AI u svom radnom prostoru, Vapi, Retell ili jednostavno vlastiti Asterisk/FreeSWITCH IVR - umjesto ugrađenog agenta? Ova stranica je vodič za oba smjera: dolazne i odlazne pozive. Kod odlaznih dodatno ne plaćate doplatak za agenta 2,50 kr/min (≈ 0,10 EUR) - agenta sami pokrećete (i plaćate) na svojoj platformi.
Brzi pregled
Dolazne pozive postavljate usmjeravanjem broja na SIP adresu vaše platforme - nikakva nova mehanika. Odlazni pozivi idu preko kratkotrajne veze releja, jer platforma sama ne može trajno registrirati liniju kao SIP klijenta.
Trebat će vam: volai broj, API ključ (vk_...) i račun na vašoj platformi (ElevenLabs, Vapi, vlastita centrala...).
1Kada vlastiti agent, a kada ugrađeni
Oba puta rade na istom broju i istom stanju - razlikuju se samo u tome TKO vodi logiku razgovora i koliko to košta povrh:
| Kriterij | Ugrađeni agent | Vlastiti agent |
|---|---|---|
| Tko vodi razgovor | Mi - jedan systemPrompt, naš glas i naš ElevenLabs radni prostor. | Vi - bilo koja platforma, vlastiti prompt, vlastiti glas, vlastiti alati. |
| Postavljanje | Jedan POST /v1/agents poziv. | SIP podaci broja + konfiguracija vaše platforme (ova stranica). |
| Cijena poziva | 0,92 kr/min (≈ 0,04 EUR) odlazni, 0,50 kr/min (≈ 0,02 EUR) dolazni | jednako - 0,92 kr/min (≈ 0,04 EUR) odlazni, 0,50 kr/min (≈ 0,02 EUR) dolazni |
| Doplatak za agenta | + 2,50 kr/min (≈ 0,10 EUR) | nema - plaćate samo minute poziva |
| Transkript, sažetak, prepoznavanje automatske sekretarice | Da, automatski. | Ne - rješava (ili ne rješava) vaša vlastita platforma. |
Ne plaćate doplatak za agenta, ali ne plaćate ni ništa dodatno za nas - svoju platformu (ElevenLabs, Vapi...) plaćate sami prema njezinu cjeniku. Mi naplaćujemo samo minute poziva na volai liniji, jednako kao kod SIP klijenta ili ugrađenog agenta. Cijene su bez PDV-a, kao cijeli cjenik.
2Dolazni pozivi na vlastitog agenta
Nikakva nova mehanika - dovoljno je postojeće mode: "sip" usmjeravanje (isto kao za vlastiti softphone, vidi SIP) s sipUri vaše platforme. Za ElevenLabs SIP-trunk broj registriran u VAŠEM vlastitom radnom prostoru to je adresa s istim brojem kakav ima vaša volai linija:
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"}}'A na svom ElevenLabs računu (Settings → Phone Numbers → Import → SIP trunk) taj broj registrirate s inbound_trunk_config:
{
"provider": "sip_trunk",
"phone_number": "+420601234567",
"label": "My own agent",
"inbound_trunk_config": {
"allowed_addresses": ["81.31.45.0/24"],
"media_encryption": "allowed"
}
}allowed_addresses gore je naš raspon signalizacije (81.31.45.0/24) - sigurniji od univerzalnog 0.0.0.0/0, koji propušta INVITE odakle god dolazi. Oboje propušta poziv, ali kod uvoza bez podataka za prijavu je allowlist JEDINA provjera - zato navedite raspon, a ne 0.0.0.0/0.
Koristite li drugu platformu, a ne ElevenLabs? Isto načelo - saznajte kod nje SIP adresu na koju treba stizati poziv za vaš broj i unesite je u sipUri. Kod Vapija isti raspon ide u BYO trunk kao gateways.
Kod Vapija je adresa usmjeravanja sip:<E164>@<credentialId>.sip.vapi.ai - <credentialId> nađite na svom BYO SIP trunku u Vapiju; organizacija u EU regiji umjesto sip.vapi.ai koristi domenu sip.eu.vapi.ai. Goli sip.vapi.ai pripada izvornim Vapi brojevima i za broj od nas ne radi. Korisničko ime i lozinku na BYO trunku ostavite prazne, Vapi naše pozive prepoznaje po IP adresi u gateways.
U gateways unesite raspon kao IP 81.31.45.0 i masku (netmask) 24 zasebno. S zadanom maskom 32 Vapi bi propustio samo jednu adresu i naše bi pozive odbio.
3Odlazni pozivi iz vlastitog agenta (relej)
Ovo je suprotan smjer - vaša platforma sama zove van. Većina glasovnih AI platformi (uključujući ElevenLabs) ne može telefonsku liniju trajno registrirati kao SIP klijenta - samo pošalje autentificirani poziv s podacima za prijavu vaše linije. Telefonska mreža takav poziv neće izravno propustiti na ciljni broj, pa ga vodite preko kratkotrajne veze releja:
Zašto relej, a ne izravno biranje
Izravno biranje ciljnog broja preko trunka ne radi ni na jedan od dvaju mogućih načina: na broj izvan naše mreže poziv uopće ne nastane (platforma prijavi neuspjeh, nigdje ne ostane trag), a na drugi volai broj u našoj mreži spoji se samo INTERNO kao anoniman poziv - nikad zapravo ne napusti našu mrežu, iako izgleda kao spojen poziv. Relej je jedini način da poziv doista izađe van.
1. Postavite svoju platformu na svoju liniju
Dohvatite SIP podatke svoje linije:
curl "https://volai.cz/v1/numbers/+420601234567/sip" \
-H "Authorization: Bearer vk_YOUR_KEY"{
"server": "sip.volai.cz",
"username": "123456",
"password": "a1b2c3d4e5f6",
"outboundTrunkAddress": "sip.volai.cz",
"port": 5060,
"transport": "tcp",
"inboundSignallingCidrs": ["81.31.45.0/24"]
}Odgovor vraća server (za REGISTER softphonea, vidi SIP) i outboundTrunkAddress ZASEBNO - nisu zamjenjivi.
I postavite outboundTrunkAddress - NE server - kao odlazni trunk svoje platforme. Kod ElevenLabsa je to outbound_trunk_config dotičnog telefonskog broja (Settings → Phone Numbers → vaš broj → Outbound calling), točno u ovom obliku:
{
"outbound_trunk_config": {
"address": "sip.volai.cz",
"transport": "tcp",
"media_encryption": "allowed",
"credentials": {
"username": "123456",
"password": "a1b2c3d4e5f6"
}
}
}Unesite točno outboundTrunkAddress
Adresa odlaznog trunka mora biti točno vrijednost outboundTrunkAddress iz odgovora - bila ona jednaka server ili ne. Druga adresa znači da se poziv u mreži ne usmjerava, a platforma to prijavi kao 1011 sip request timed out - u povijesti poziva nakon toga ne ostane ništa.
2. Napravite vezu releja
Neposredno prije poziva (veza ima kratak vijek, vidi ograničenja niže) pozovite:
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"
}Broj pozvane osobe unosite NAMA u to - platforma ga nikad ne vidi, dobije samo goli sipName iz odgovora.
3. Recite platformi da zove sipName
Golo ime, a ne cijeli SIP URI
ElevenLabs to_number odbija cijeli SIP URI porukom „SipCallTo should be a phone number or SIP user, not a full SIP URI“ - zato odgovor gore vraća sipName (golo volai_relay_2) i sipUri (cijeli sip:volai_relay_2@sip.volai.cz) ZASEBNO. U to_number ide samo prvo - nikad cijeli URI.
Kod ElevenLabsa to znači pozvati preko /v1/convai/sip-trunk/outbound-call s to_number izravno postavljenim na sipName:
{
"agent_id": "agent_...",
"agent_phone_number_id": "phnum_...",
"to_number": "volai_relay_2"
}agent_id nađite na svom agentu u ElevenLabsu, agent_phone_number_id je phone_number_id uvezenog broja - vraća ga odgovor uvoza ili ga možete pročitati s popisa Phone numbers.
Koristite vlastitog SIP klijenta ili PBX umjesto ElevenLabsa? Birajte izravno cijeli sipUri kao običan SIP poziv - to ograničenje vrijedi samo za platforme koje traže golo ime bez sip: prefiksa.
4. Što se događa dalje
Telefonska mreža prima poziv na imenu volai_relay_2, prosljeđuje ga na vaš to i postavlja vidljivi broj pozivatelja na vaš from - pozvana osoba na zaslonu vidi vašu volai liniju, a ne interno ime utora releja (ako broj ima vlastita relej imena - vidi Naplata niže, inače pozvana osoba vidi volai demo broj). Nakon završetka poziva lease se oslobađa, a minute se naplaćuju jednako kao običan odlazni poziv - 0,92 kr/min (≈ 0,04 EUR), bez doplatka za agenta.
Odgovor o biranju poziva stiže tek nakon cijelog zvonjenja (slobodno desetak sekundi) - to nije greška, a i kratak timeout s vaše strane u tom bi trenutku izgledao kao neuspjeh, iako poziv teče.
4Rješavanje problema
Najčešće poruke kod vlastitog agenta i što s njima:
| Poruka | Uzrok | Rješenje |
|---|---|---|
| 1011 sip request timed out | Adresa odlaznog trunka nije outboundTrunkAddress. | U ElevenLabsu postavite outbound_trunk_config.address na outboundTrunkAddress iz odgovora sa SIP podacima, a ne na server. |
| SipCallTo should be a phone number or SIP user, not a full SIP URI | to_number sadrži cijeli sipUri umjesto golog imena. | U to_number ide samo sipName iz odgovora POST /v1/relay. |
| Poziv s platforme odmah završi (kod ElevenLabsa failed), kod nas ništa | Birali ste telefonski broj izravno, a ne preko releja. | Napravite vezu releja (POST /v1/relay) i nazovite vraćeni sipName. |
| max auth retry attempts reached for SIP invite | Platforma nije prošla prijavu: ili se ne podudaraju korisničko ime ili lozinka odlaznog trunka, ili je poziv stigao kao telefonski broj umjesto sipName - mreža tada traži dodatnu prijavu koju platforma ne može proći. | Korisničko ime i lozinku prepišite točno iz SIP podataka broja (username, password). U to_number stavite samo sipName iz POST /v1/relay, a poziv pokrenite preko API-ja (POST /v1/convai/sip-trunk/outbound-call) ili MCP alata ElevenLabsa make_outbound_call, ne obrascem koji prima samo telefonski broj. Lease čeka poziv samo ttlSecs (zadano 120 s). |
| 404 from_number_not_owned | from u POST /v1/relay nije vaš volai broj. | U from unesite točno onaj volai broj s kojeg zovete. |
| 400 relay_lease_limit | Na ovom broju (1) ili računu (2) već je aktivan lease. | Pričekajte da se lease oslobodi ili otkažite neiskorišteni (DELETE /v1/relay/{id}). |
| 503 capacity_busy | Zajednički skup utora releja trenutačno je pun. | Ništa se ne naplaćuje - pokušajte ponovno za nekoliko trenutaka. |
| Dolazni poziv ne zvoni | Broj nije uvezen u ElevenLabs, allowed_addresses ne propušta naš raspon ili usmjeravanje u volai nije spremljeno. | Provjerite sva tri koraka gore; ako centrala traži 401, unesite korisničko ime i lozinku na usmjeravanju. |
| Pozvana osoba vidi volai broj umjesto vašeg | Broj još nema vlastita relej imena. Otvaraju se odmah nakon kupnje, ovaj put nije uspjelo. | Sljedeći poziv sam ponovi otvaranje. Ako pozvana osoba vidi volai broj i nakon sat vremena, javite se podršci. |
| Ponovljeni poziv odmah završi odbijanjem (SIP 603) | Platforma je ponovno birala isti sipName, obično nakon neodgovorenog poziva. Lease spaja samo jedan poziv. | Prije svakog pokušaja, i ponavljanja nakon neodgovorenog poziva, napravite novi lease (POST /v1/relay) i isključite automatsko ponavljanje u platformi. |
5Naplata
Odlazni poziv preko releja naplaćuje se istom cijenom kao običan odlazni poziv - 0,92 kr/min (≈ 0,04 EUR) - bez ikakvog doplatka za agenta. Cijene su bez PDV-a, kao cijeli cjenik.
Istodobnost je ograničena (vidi ograničenja niže): najviše 1 aktivni poziv po jednom vašem broju i najviše 2 na cijelom računu odjednom.
Pozvana osoba vidi vašu volai liniju SAMO ako broj ima vlastita relej imena (relayNames) - broj ih dobiva odmah nakon kupnje. Dok ih nema, lease pada na zajednički skup i pozvana osoba vidi volai demo broj. Ako to traje dulje od sat vremena, javite se podršci.
6Ograničenja, kvote i sigurnost
Gornja granica je 1 aktivni lease po jednom vašem broju i najviše 2 na cijelom računu - namjerna zaštita da jedan korisnik ne zauzme cijeli zajednički skup utora releja:
| Što | Vrijednost |
|---|---|
| Lease čeka prvi poziv (pending) | 120 s zadano, ttlSecs 15 do 300 s |
| Poziv traje (active) | 15 minuta |
| Aktivni lease po jednom vašem broju | najviše 1 |
| Aktivni leaseovi po računu | najviše 2 |
| Uporaba leasea | jednokratna - drugi poziv na isti lease odbija se, i ponavljanje nakon neodgovorenog poziva traži novi lease |
- from mora biti vaš vlastiti volai broj - inače
from_number_not_owned. Bez te provjere moglo bi se lažno predstavljati kao tuđa linija (caller ID spoofing). - Ista vrata kao kod običnog poziva - popis zabrane pozivanja (vrijedi samo za pozive, ne za SMS), automatska 30-dnevna blokada nakon 3 neuspjela pokušaja na isti broj u 24 sata, linije s posebnom tarifom, zaštita od petlje među volai brojevima, zaključavanje pozvanog broja i opće ograničenje učestalosti poziva. Ništa od toga ne može se zaobići relejem.
- Pun skup -> 503 capacity_busy - utori releja zajednička su gornja granica istodobnosti CIJELE platforme, ne samo vašeg računa. Kod
capacity_busyništa se ne naplaćuje, pokušajte ponovno za nekoliko trenutaka. - Cjelovitu REST referencu (kodovi pogrešaka,
GET/DELETEnad leaseovima) nađite na REST API.
Svaka API pogreška nosi cause (tko je ispravlja) i action (što učiniti) - vidi Format pogrešaka u referenci REST API-ja.
Povezano
MCP server
Connect Claude Code, Codex CLI, Codex desktop, Cursor and other AI editors.
REST API
Complete reference for every endpoint: numbers, calls, SMS, mobile numbers for SMS, agents and their drafts, tools, recordings, webhooks, do-not-call list, relay, account, tasks, credit, documents, calendars and integrations.
Voice agent
System prompt, tools, handoff to a human, recordings and structured call data.
SIP
Your own softphone, SIP credentials, outbound calls through a SIP client.