Към съдържанието

Ръководства

SIP

Когато гласовият агент и простото пренасочване не Ви стигат и искате да свържете номера със собствен софтфон или телефонна централа (PBX), Ви трябва доставчик на SIP trunk - volai е такъв. Тази страница е ръководство стъпка по стъпка.

1Входящи обаждания към Вашия SIP сървър

Задайте маршрутизирането на номера на mode: "sip" и въведете своя sipUri - оттам нататък обаждането отива директно при Вас, а не към нашия агент или пренасочване:

bash
curl -X PATCH "https://volai.eu/v1/numbers/+420601234567" \
  -H "Authorization: Bearer vk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"routing": {"mode": "sip", "sipUri": "sip:reception@your-server.com"}}'

Таксува се само входящата минута (0,50 kr/min (≈ 0,02 EUR)), без допълнителен агент - пълният вид на заявката и останалите режими на маршрутизиране са в референцията на REST API.

Удостоверяване на Вашата централа

Обаждането към Вашия SIP сървър първо го изпращаме като неудостоверен INVITE към sipUri. Централа, която отговаря на него с покана за вход (401/407) и без допълнителни данни отхвърля обаждането, в този вид няма да го получи - поканата няма кой да я приеме. Затова попълнете в маршрутизирането допълнително sipUsername и sipPassword - след попълването на двете нашата мрежа се удостоверява на целта (SIP digest) и набира търсения номер. Проверено с реално обаждане към роден SIP номер на Vapi, който приема данните за вход независимо от съдържанието им. Дали обаждането ще свърже и Вашата централа, зависи от нея - тя трябва наистина да отговори на INVITE с покана и да признае зададеното име и парола; това не гарантираме за всяка централа (в тест не се получи например срещу SIP домейн на Twilio). Без sipUsername и sipPassword маршрутизирането остава в днешния неудостоверен вид. Удостоверяването се добавя към маршрутизирането така:

bash
curl -X PATCH "https://volai.eu/v1/numbers/+420601234567" \
  -H "Authorization: Bearer vk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"routing": {"mode": "sip", "sipUri": "sip:reception@your-server.com", "sipUsername": "reception", "sipPassword": "supersecret123"}}'

Търсения номер винаги изпращаме точно във вида, в който е в sipUri преди знака @ - не добавяме, нито махаме префикс или нула, затова целевата централа трябва да се справя точно с това, което пишете там.

sipUsername и sipPassword не могат да съдържат двоеточие, @, интервал, кавичка или обратна наклонена черта и могат да имат най-много по 64 знака.

Попълването само на едно от двете полета не е възможно - API връща грешката "Please fill in both username and password, or leave both empty."

Двоеточие в потребителската част на sipUri (преди @) и порт в хоста (след двоеточие при сървъра, напр. :5060) при попълнени sipUsername и sipPassword засега не се поддържат - и двете връщат една и съща твърда грешка. Без данни за вход и двете работят без промяна.

Изключение: BYO SIP trunk на Vapi (адрес <credentialId>.sip.vapi.ai, при организация в региона ЕС <credentialId>.sip.eu.vapi.ai) не използва данни за вход. Vapi разпознава нашите обаждания по IP адреса в gateways на trunk-а и при попълнени sipUsername и sipPassword обаждането няма да се свърже, затова API отхвърля такова маршрутизиране с код validation. Това не се отнася за роден SIP номер на Vapi (sip:<име>@sip.vapi.ai).

Кой още ще види името и паролата

Името и паролата пътуват с обаждането нататък в нашата мрежа и остават в техническите записи за маршрутизирането му - не сте единственият, който ги вижда. Затова създайте на централата отделен акаунт само за нас, а не главната администраторска парола.

Частична промяна: пропуснатото поле остава каквото е

Ако в PATCH изпратите само sipUri и пропуснете sipUsername и sipPassword , и двете полета остават непроменени - не е нужно да ги въвеждате наново при всяка промяна на sipUri. Пропуснато поле (изобщо липсва в тялото) винаги се запазва записаното; удостоверяването се премахва само с изрично празен низ и в ДВЕТЕ полета едновременно. Единствено изключение е смяната на сървъра: ако в sipUri промените и частта след @, трябва да изпратите паролата отново - записаната парола не изпращаме към друг сървър, различен от този, за който сте я въвели. Актуалното състояние проверявате с полето hasSipPassword в отговора.

Обаждането не се свърза? Пуснете ни по IP

Удостоверяването със sipa работи само срещу цел, която отправя покана към INVITE и приема данните (проверено с роден SIP номер на Vapi) - иначе няма да получите обаждането, независимо дали сте попълнили данни за вход. Нашата сигнализация идва от диапазона 81.31.45.0/24, на практика най-често от 81.31.45.51 и 81.31.45.56. Разрешете на централата целия този диапазон - тогава обаждането се разпознава по адреса на източника, а не по име и парола, и изобщо не Ви трябват данни за вход.

2SIP данни на номера

Данните за вход на линията вземате с едно извикване:

bash
curl "https://volai.eu/v1/numbers/+420601234567/sip" \
  -H "Authorization: Bearer vk_YOUR_KEY"
json
{
  "server": "sip.volai.cz",
  "username": "123456",
  "password": "a1b2c3d4e5f6",
  "outboundTrunkAddress": "sip.volai.cz",
  "port": 5060,
  "transport": "tcp",
  "inboundSignallingCidrs": ["81.31.45.0/24"]
}

Настройка в софтфон (Zoiper, Linphone)

И в двете приложения въвеждате по принцип едно и също, само че с различни имена - търсете „Добавяне на акаунт“ / „SIP акаунт“:

ПолеСтойност
Сървър / Домейнsip.volai.cz
Потребителско имеот отговора по-горе (username)
Паролаот отговора по-горе (password)
ТранспортTCP
Порт5060 (стандартен SIP - ако полето предлага празен избор, оставете го празно)

Клиентът иска да попълните realm?

Оставете полето празно - повечето клиенти вземат realm от поканата на сървъра. В журнала на клиента може да се появи техническият домейн на нашата мрежа, това е нормално. Ако Вашият клиент изисква realm като задължителен, пишете на поддръжката.

След запазването софтфонът трябва да се регистрира (иконата за състояние „онлайн“/„регистриран“) и обажданията към номера ще започнат да звънят директно в него.

3Изходящи обаждания през SIP клиент

Щом софтфонът е регистриран, той може сам да набира навън през тази линия - не е нужно за това да извиквате наше API, набирате директно от клиента като от обикновена телефонна линия.

Минутите се удържат от баланса на volai

Изходящо обаждане през SIP клиент се таксува със същата тарифа като изходящо обаждане през API (0,92 kr/min (≈ 0,04 EUR)) и се удържа от Вашия баланс - не от отделен SIP акаунт. Тарифите са без ДДС, както целият ценови лист.

Връзката върви директно между Вашия клиент и сървъра sip.volai.cz, а не през нашето API, затова минутите не могат да се блокират точно в момента на набиране. Обаждане, набрано директно от SIP клиент, се таксува със закъснение по записите на мрежата - най-рано 10 минути след приключването, обикновено до половин час - и не се отразява на баланса в момента на набиране. Дневният лимит на обажданията и проверката на баланса при набиране не важат за тези обаждания, защото следят само обажданията през API - балансът може да падне под нула. Когато балансът падне до нула, новите платени действия през API/MCP започват да се отхвърлят (обаждането изисква наличност поне 5 CZK). Когато балансът падне под нулата, SIP достъпът на линията се изключва до няколко минути, пренасочването се прекъсва и получавате имейл; след като заредите поне 5 CZK, всичко се възобновява само и паролата не се променя. Ако дългът не бъде погасен до седмица, номерът се освобождава обратно в запаса (SIP достъпът така окончателно отпада). Затова следете баланса предварително, а не едва когато е на нула.

Имате гласов AI агент, а не софтфон?

Тази стъпка предполага клиент, който може да се регистрира към линията (SIP REGISTER) - софтфон, PBX. Платформа, която само изпраща еднократно удостоверено обаждане без постоянна регистрация (обикновено гласови AI агенти като ElevenLabs), се нуждае от друг подход - вижте Собствен агент.

Адреса на изходящия trunk на платформата вземайте от полето outboundTrunkAddress, а не от server по-горе - подробно на тази страница.

4Ограничения

  • Една регистрация на линия - едни данни за вход издържат едно регистрирано устройство наведнъж. Ако се впишете с втори клиент, първият най-вероятно губи регистрацията си - не разчитайте на няколко устройства едновременно на една линия.
  • Изходящи от собствен агент - да, пълно trunk peering - не - данните за вход на линията служат за това ВАШИЯТ клиент да се регистрира при НАС като телефон. Изходящите обаждания от собствен гласов агент (ElevenLabs или друга платформа) обаче днес СА възможни - през relay, вижте Собствен агент. Все още обаче не може да свържете Вашата централа като равноправен оператор със собствено маршрутизиране на ВХОДЯЩИ обаждания отвън - за това използвайте маршрутизиране forward към номера на Вашата централа.
  • Само глас - без видео и други SIP разширения.