ThunderPhone 2.0 вече е тук.Започнете самостоятелно — от 2 цента/мин.Прочетете съобщението

Developer cookbook

Свързване чрез SIP (без телефонен номер)

Изпращайте обаждания към агент на ThunderPhone директно от вашата PBX система, доставчик или SIP приложение чрез еднократен SIP URI за всяко обаждане или постоянен SIP адрес.

Ако вашата собствена система вече обработва телефонни номера (PBX, платформа за контактен център или акаунт при телекомуникационен оператор, в който ротирате номера), можете да изпращате обаждания към агент на ThunderPhone чрез стандартен SIP. Не импортирате и не купувате номер в ThunderPhone. Вашата система набира SIP адрес и агентът отговаря.

Има два вида SIP адреси:

SIP URI за всяко обажданеSIP крайна точка
Изглежда катоsip:c-<token>@sip.thunderphone.comsip:agent-<id>-<letters>@sip.thunderphone.com
Създава се сPOST /v1/calls/register-sip, веднъж за всяко обажданеPOST /v1/sip-endpoints, веднъж
УдостоверяванеЕднократният токен в адресаSIP digest потребителско име + парола (и по избор списък с разрешени IP адреси на източника)
Подходящо заПриложения, които вече извикват API преди прехвърляне на обаждане; променливи за всяко обажданеPBX системи и телекомуникационни оператори, които трябва просто да „насочат trunk“ към ThunderPhone
Валидност5 минути, едно обажданеДокато не я изтриете

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

SIP URI за всяко обаждане

1. Регистрирайте обаждането

curl -X POST https://api.thunderphone.com/v1/calls/register-sip \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": 12,
    "to_number": "+14155550142",
    "variables": {"customer_name": "Ada"}
  }'
{
  "call_id": 862197007562,
  "sip_uri": "sip:c-1790372992.Qm3xT8vLk2PzR7nYw4HbJa.uF6sD1gK9eW2cX5vB8nM0q@sip.thunderphone.com",
  "expires_at": "2026-09-25T21:49:52Z",
  "agent_id": 12,
  "to_number": "+14155550142"
}
  • to_number (по избор) е номерът, който обаждащият се е набрал от ваша страна. Той се съхранява като дестинация на обаждането в историята на обажданията, а агентът го вижда като свой собствен номер.
  • variables (по избор) попълват {{placeholders}} в подканата на агента по същия начин, както при изходящи обаждания.
  • call_id е идентификаторът, който обаждането ще има в историята на обажданията (GET /v1/calls/{call_id}), след като се свърже.

2. Наберете URI

Изпратете обаждането към sip_uri в рамките на 5 минути. URI работи само за едно обаждане: след като бъде използван от обаждане, той вече не е валиден, дори ако това обаждане приключи бързо.

Например с Twilio върнете този TwiML за обаждането, което искате да прехвърлите:

<Response>
  <Dial>
    <Sip>sip:c-1790372992.Qm3xT8vLk2PzR7nYw4HbJa.uF6sD1gK9eW2cX5vB8nM0q@sip.thunderphone.com;transport=tcp</Sip>
  </Dial>
</Response>

От PBX наберете URI като SIP дестинация. Не са нужни потребителско име или парола; токенът е идентификационните данни, затова третирайте URI като парола, докато не бъде използван.

SIP крайна точка (постоянен адрес)

1. Създайте крайната точка

curl -X POST https://api.thunderphone.com/v1/sip-endpoints \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"agent_id": 12, "name": "Main PBX"}'
{
  "id": 7,
  "name": "Main PBX",
  "agent_id": 12,
  "sip_uri": "sip:agent-12-jhxmginwjx@sip.thunderphone.com",
  "username": "tp409667538f83",
  "password": "8mJ0…",
  "allowed_source_cidrs": [],
  "status": "active",
  "created_at": "2026-09-25T21:46:18Z"
}

2. Насочете системата си към нея

Конфигурирайте SIP trunk или дестинация със следното:

НастройкаСтойност
SIP URIsip_uri на крайната точка
Потребителско име / паролаusername / password (digest удостоверяване; ThunderPhone изпраща заявка за удостоверяване при всяко обаждане)
ТранспортTCP на порт 5060 или TLS на порт 5061 (препоръчително), или UDP на порт 5060
КодециG.711 (PCMU/PCMA) или G.722

Тези настройки за транспорт и кодеци се прилагат и за URI адресите за отделни обаждания. Два мрежови детайла са важни и за двата типа адреси:

  • Следвайте Record-Route. След първия INVITE останалата сигнализация на обаждането (ACK, прекратяване, прехвърляния) се изпраща до конкретния сървър на ThunderPhone, който е отговорил и е посочен в заглавката Record-Route (sip-1.thunderphone.com или sip-2.thunderphone.com, или неговия IP адрес). Ако ограничавате изходящата SIP сигнализация, разрешете и тези хостове наред с sip.thunderphone.com: 172.170.39.202 (sip), 13.86.104.121 (sip-1) и 20.80.98.90 (sip-2).
  • Аудиото се предава другаде. sip.thunderphone.com пренася само сигнализацията. Разрешете медията (RTP) към адресите и портовете в SDP отговора.

Всяко обаждане до адреса достига агента на крайната точка, независимо кой номер е набрал обаждащият се във вашата система. Никога не импортирате номера, така че смяната им от ваша страна не изисква промяна в ThunderPhone.

Предайте набрания номер (по избор)

За да запишете кой от вашите номера е набрал обаждащият се, изпратете го в INVITE заявката чрез заглавка X-Original-To (например X-Original-To: +14155550142) или чрез стандартна заглавка Diversion. ThunderPhone го съхранява като дестинация на обаждането.

Дестинацията се избира в следния ред: to_number, подаден при регистриране на URI за отделно обаждане, след това номер в X-Original-To, след това номер в Diversion. Ако никое от тях не съдържа номер, за крайна точка се показва sip:agent-12-jhxmginwjx (адресът на крайната точка), а за URI за отделно обаждане — sip:call.

С Twilio можете да добавите заглавката към SIP URI адреса: sip:agent-12-jhxmginwjx@sip.thunderphone.com;transport=tcp?X-Original-To=%2B14155550142.

Ограничете IP адресите на източника (по избор)

Задайте allowed_source_cidrs, за да приемате обаждания само от собствените си адреси за сигнализация, в допълнение към потребителското име и паролата:

curl -X PATCH https://api.thunderphone.com/v1/sip-endpoints/7 \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"allowed_source_cidrs": ["203.0.113.0/28"]}'

Обажданията от всеки друг адрес се отказват, преди да достигнат до агента. Използвайте адресите, от които вашата система изпраща SIP сигнализацията (за доставчик като Twilio — публикуваните от него диапазони IP адреси за сигнализация), а не адресите за медия.

Какво виждат обаждащите се и вашата система

  • Идентификатор на обаждащия се: потребителската част на заглавката From се съхранява като обаждащ се. Телефонен номер (цифри, по избор с +, интервали, тирета, точки или скоби) се нормализира до E.164; всичко останало, като SIP потребителско име, се запазва както е изпратено. Запазват се най-много 32 знака, а липсващ обаждащ се се съхранява като anonymous.
  • Отказани обаждания: непознат или изтекъл URI за отделно обаждане получава SIP 404 Not Found. Вече използван URI за отделно обаждане, деактивирана крайна точка или източник извън списъка с разрешени адреси (включително всяко UDP обаждане към крайна точка със списък с разрешени адреси) се прекъсва преди стартирането на агента: вашата система може да отчете неуспешно обаждане или да се свърже и след това веднага да прекрати връзката. Тези откази не създават запис в хронологията на обажданията. Ако организацията ви няма наличен кредит или е достигнала лимита си за разходи, обаждането се отказва и се показва в хронологията на обажданията като неуспешно обаждане без такса. За да опитате отново обаждане към URI за отделно обаждане, регистрирайте нов URI.
  • Прехвърляния: студените прехвърляния на агента работят (ThunderPhone изпраща SIP REFER, който вашата система трябва да приеме). Топлите прехвърляния не са налични при обаждания към SIP адреси, защото няма номер на ThunderPhone, който да се показва като идентификатор на обаждащия се за второто направление. При Twilio TwiML по-горе свързва агента, но не обработва прехвърляния: добавете referUrl="https://YOUR_SERVER/sip-transfer" към <Dial> и накарайте тази уеб кука да прочете ReferTransferTarget и да върне TwiML, който набира дестинацията за прехвърляне (вижте ръководството на Twilio за SIP REFER).
  • Текстови съобщения: SIP адресът и набраният номер не могат да изпращат текстови съобщения. Агентът може да изпраща текстови съобщения по време на обаждане към SIP адрес само ако има отделен номер с възможност за SMS, настроен за изпращане на съобщения; в противен случай неговият SMS инструмент е недостъпен.
  • Регистрация: ThunderPhone не приема SIP REGISTER. Изпращайте обаждания към адреса; не се регистрирайте към него.

Ценообразуване

Обажданията към SIP адреси се таксуват по обичайната цена на агента за минута. Няма такса за телефонен номер, защото обаждането не се осъществява чрез номер на ThunderPhone. Вашият собствен оператор таксува своята страна на обаждането както обикновено. Вижте Ценообразуване.

Тествайте

  1. Създайте URI за отделно обаждане или крайна точка, както е описано по-горе.
  2. Наберете го от вашата система или от който и да е SIP софтуерен телефон (за крайна точка въведете потребителското име и паролата).
  3. След като затворите, отворете обаждането в Обаждания в таблото за управление или го извлечете с GET /v1/calls/{call_id}. Показват се обаждащият се, дестинацията (вижте реда в „Подайте набрания номер“) и транскрипцията.

Подробности за API: Справочник за API за SIP адреси.