ThunderPhone 2.0 je stigao.Postavite sve sami, već od 2 ¢/min.Pročitajte objavu

Developer cookbook

Povežite se putem SIP-a (bez telefonskog broja)

Usmjeravajte pozive glasovnom agentu ThunderPhone izravno sa svojeg PBX-a, od operatera ili iz SIP aplikacije, uz jednokratni SIP URI za svaki poziv ili trajnu SIP adresu.

Ako vaš sustav već upravlja telefonskim brojevima (PBX, platforma kontakt-centra ili račun kod operatera na kojem rotirate brojeve), pozive možete slati glasovnom agentu ThunderPhonea putem standardnog SIP-a. Ne uvozite niti kupujete broj u ThunderPhoneu. Vaš sustav bira SIP adresu, a agent se javlja.

Postoje dvije vrste SIP adresa:

SIP URI po pozivuSIP krajnja točka
Izgleda kaosip:c-<token>@sip.thunderphone.comsip:agent-<id>-<letters>@sip.thunderphone.com
Stvara se pomoćuPOST /v1/calls/register-sip, jednom po pozivuPOST /v1/sip-endpoints, jednom
AutentikacijaJednokratni token u adresiSIP digest korisničko ime + lozinka (i po želji popis dopuštenih izvornih IP adresa)
Prikladno zaAplikacije koje već pozivaju API prije preusmjeravanja poziva; varijable po pozivuPBX-ove i operatere koji trebaju samo „usmjeriti trunk” prema ThunderPhoneu
Vrijedi5 minuta, za jedan pozivDok je ne izbrišete

Obje vrste usmjeravaju prema jednom agentu u vašoj organizaciji, a obje se u povijesti poziva prikazuju kao svaki drugi dolazni poziv.

SIP URI po pozivu

1. Registrirajte poziv

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 (neobavezno) je broj koji je pozivatelj birao na vašoj strani. Sprema se kao odredište poziva u povijesti poziva, a agent ga vidi kao svoj broj.
  • variables (neobavezno) popunjavaju {{placeholders}} u promptu agenta, na isti način kao za odlazne pozive.
  • call_id je ID koji će poziv imati u povijesti poziva (GET /v1/calls/{call_id}) nakon povezivanja.

2. Birajte URI

Pošaljite poziv na sip_uri u roku od 5 minuta. URI vrijedi samo za jedan poziv: nakon što ga poziv iskoristi, više ne vrijedi, čak i ako taj poziv brzo završi.

S Twiliom, primjerice, vratite ovaj TwiML za poziv koji želite preusmjeriti:

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

S PBX-a birajte URI kao SIP odredište. Korisničko ime ni lozinka nisu potrebni; token je vjerodajnica, stoga URI tretirajte kao lozinku dok ne bude iskorišten.

SIP krajnja točka (trajna adresa)

1. Izradite krajnju točku

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. Usmjerite svoj sustav na nju

Konfigurirajte SIP trunk ili odredište sa sljedećim postavkama:

PostavkaVrijednost
SIP URIsip_uri krajnje točke
Korisničko ime / lozinkausername / password (digest autentifikacija; ThunderPhone provjerava svaki poziv)
TransportTCP na priključku 5060 ili TLS na priključku 5061 (preporučeno), odnosno UDP na priključku 5060
KodeciG.711 (PCMU/PCMA) ili G.722

Ove postavke transporta i kodeka primjenjuju se i na URI-je po pozivu. Dva mrežna detalja važna su za obje vrste adresa:

  • Slijedite Record-Route. Nakon prvog INVITE-a ostatak signalizacije poziva (ACK, prekid poziva, preusmjeravanja) ide na određeni ThunderPhone poslužitelj koji je odgovorio, a naveden je u zaglavlju Record-Route (sip-1.thunderphone.com ili sip-2.thunderphone.com, odnosno njegova IP adresa). Ako ograničavate odlazni SIP, dopustite te hostove uz sip.thunderphone.com: 172.170.39.202 (sip), 13.86.104.121 (sip-1) i 20.80.98.90 (sip-2).
  • Zvuk ide drugdje. sip.thunderphone.com prenosi samo signalizaciju. Dopustite medijski promet (RTP) prema adresama i priključcima u SDP odgovoru.

Svaki poziv na tu adresu dolazi do glasovnog agenta krajnje točke, bez obzira na broj koji je pozivatelj birao na vašoj strani. Nikada ne uvozite brojeve, pa njihova promjena na vašoj strani ne zahtijeva nikakvu promjenu u ThunderPhoneu.

Proslijedite birani broj (neobavezno)

Da biste zabilježili koji je od vaših brojeva pozivatelj birao, pošaljite ga u INVITE-u u zaglavlju X-Original-To (na primjer X-Original-To: +14155550142) ili u standardnom zaglavlju Diversion. ThunderPhone ga sprema kao odredište poziva.

Odredište se odabire ovim redoslijedom: to_number zadan pri registraciji URI-ja po pozivu, zatim broj u X-Original-To, a zatim broj u Diversion. Ako nijedna od tih opcija ne navede broj, za krajnju točku se prikazuje sip:agent-12-jhxmginwjx (adresa krajnje točke), odnosno sip:call za URI po pozivu.

S Twiliom možete dodati zaglavlje u SIP URI: sip:agent-12-jhxmginwjx@sip.thunderphone.com;transport=tcp?X-Original-To=%2B14155550142.

Ograničite izvorne IP adrese (neobavezno)

Postavite allowed_source_cidrs tako da prihvaća pozive samo s vaših vlastitih adresa za signalizaciju, uz korisničko ime i lozinku:

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"]}'

Pozivi s bilo koje druge adrese odbijaju se prije nego što stignu do agenta. Upotrijebite adrese s kojih vaš sustav šalje SIP signalizaciju (za pružatelja usluge kao što je Twilio, njegove objavljene raspone IP adresa za signalizaciju), a ne svoje medijske adrese.

Što vide pozivatelji i Vaš sustav

  • ID pozivatelja: korisnički dio zaglavlja From pohranjuje se kao pozivatelj. Telefonski broj (znamenke, prema potrebi s +, razmacima, crticama, točkama ili zagradama) normalizira se u E.164; sve ostalo, poput SIP korisničkog imena, zadržava se kako je poslano. Zadržavaju se najviše 32 znaka, a nedostajući pozivatelj pohranjuje se kao anonymous.
  • Odbijeni pozivi: nepoznati ili istekli URI po pozivu prima SIP 404 Not Found. URI po pozivu koji je već iskorišten, onemogućena krajnja točka ili izvor izvan popisa dopuštenih (uključujući svaki UDP poziv na krajnju točku s popisom dopuštenih) prekida se prije pokretanja agenta: Vaš sustav može vidjeti neuspješan poziv ili povezivanje nakon kojeg poziv odmah završava. Ta odbijanja ne stvaraju zapis u povijesti poziva. Ako Vaša organizacija nema dovoljno kredita ili je dosegnula ograničenje potrošnje, poziv se odbija i u povijesti poziva prikazuje kao neuspješan poziv bez naplate. Za ponovni pokušaj poziva po URI-ju registrirajte novi URI.
  • Preusmjeravanja: agentova hladna preusmjeravanja rade (ThunderPhone šalje SIP REFER, koji Vaš sustav mora prihvatiti). Topla preusmjeravanja nisu dostupna za pozive na SIP adrese jer nema ThunderPhone broja koji bi se prikazao kao ID pozivatelja za drugi dio poziva. Uz Twilio, gornji TwiML povezuje agenta, ali ne obrađuje preusmjeravanja: dodajte referUrl="https://YOUR_SERVER/sip-transfer" u <Dial>, a zatim neka taj webhook pročita ReferTransferTarget i vrati TwiML koji bira odredište preusmjeravanja (pogledajte Twiliov vodič za SIP REFER).
  • Tekstne poruke: SIP adresa i birani broj ne mogu slati tekstne poruke. Agent može slati tekstne poruke tijekom poziva na SIP adresu samo ako ima zaseban broj s podrškom za SMS postavljen za slanje poruka; u suprotnom njegov SMS alat nije dostupan.
  • Registracija: ThunderPhone ne prihvaća SIP REGISTER. Šaljite pozive na adresu; nemojte se registrirati na nju.

Cijene

Pozivi na SIP adrese naplaćuju se prema uobičajenoj cijeni agenta po minuti. Ne naplaćuje se telefonski broj jer nijedan ThunderPhone broj ne prenosi poziv. Vaš vlastiti operater naplaćuje svoju stranu poziva kao i obično. Pogledajte Cijene.

Testirajte

  1. Izradite URI po pozivu ili krajnju točku kako je navedeno gore.
  2. Birajte ga iz svojeg sustava ili s bilo kojeg SIP softfona (za krajnju točku unesite korisničko ime i lozinku).
  3. Nakon prekida poziva otvorite poziv u odjeljku Pozivi na nadzornoj ploči ili ga dohvatite putem GET /v1/calls/{call_id}. Prikazuje pozivatelja, odredište (pogledajte redoslijed pod "Proslijedite birani broj") i transkript.

Pojedinosti API-ja: referenca API-ja za SIP adrese.