ThunderPhone 2.0 je tu.Začnite sami, že od 2 ¢/min.Preberite obvestilo

Developer cookbook

Povežite se prek SIP (brez telefonske številke)

Klice usmerite do glasovnega agenta ThunderPhone neposredno iz svojega sistema PBX, pri operaterju ali iz aplikacije SIP z enkratnim URI-jem SIP za posamezen klic ali s stalnim naslovom SIP.

Če vaš sistem že upravlja telefonske številke (PBX, platforma kontaktnega centra ali račun pri operaterju, kjer menjate številke), lahko klice pošiljate glasovnemu agentu ThunderPhone prek običajnega SIP-a. V ThunderPhone ne uvozite ali kupite številke. Vaš sistem pokliče naslov SIP in agent se oglasi.

Obstajata dve vrsti naslovov SIP:

SIP URI za posamezen klicSIP končna točka
Videti je kotsip:c-<token>@sip.thunderphone.comsip:agent-<id>-<letters>@sip.thunderphone.com
Ustvarjeno zPOST /v1/calls/register-sip, enkrat za vsak klicPOST /v1/sip-endpoints, enkrat
Preverjanje pristnostiEnkratni žeton v naslovuUporabniško ime in geslo za SIP digest (ter po želji seznam dovoljenih izvornih IP-naslovov)
Primerno zaAplikacije, ki že kličejo API pred predajo klica; spremenljivke za posamezen klicPBX-e in operaterje, ki morajo le »usmeriti trunk« v ThunderPhone
Velja5 minut, za en klicDokler je ne izbrišete

Obe vrsti usmerjata k enemu agentu v vaši organizaciji in obe se v zgodovini klicev prikažeta kot vsak drug dohodni klic.

SIP URI za posamezen klic

1. Registrirajte klic

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 (izbirno) je številka, ki jo je klicatelj poklical na vaši strani. Shrani se kot cilj klica v zgodovini klicev, agent pa jo vidi kot svojo številko.
  • variables (izbirno) izpolnijo {{placeholders}} v pozivu agenta na enak način kot pri odhodnih klicih.
  • call_id je ID, ki ga bo imel klic v zgodovini klicev (GET /v1/calls/{call_id}), ko se poveže.

2. Pokličite URI

Klic pošljite na sip_uri v 5 minutah. URI deluje samo za en klic: ko ga klic uporabi, je porabljen, tudi če se ta klic hitro konča.

V storitvi Twilio na primer za klic, ki ga želite predati, vrnite ta TwiML:

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

Iz PBX-a URI pokličite kot cilj SIP. Uporabniško ime ali geslo ni potrebno; žeton je poverilnica, zato z URI-jem ravnajte kot z geslom, dokler ni uporabljen.

SIP-končna točka (stalni naslov)

1. Ustvarite končno točko

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. Usmerite svoj sistem nanjo

Konfigurirajte SIP-trunk ali cilj z naslednjimi nastavitvami:

NastavitevVrednost
SIP URIsip_uri končne točke
Uporabniško ime / geslousername / password (preverjanje pristnosti digest; ThunderPhone preveri vsak klic)
TransportTCP na vratih 5060 ali TLS na vratih 5061 (priporočeno) oziroma UDP na vratih 5060
KodekiG.711 (PCMU/PCMA) ali G.722

Te nastavitve transporta in kodekov veljajo tudi za URI-je posameznih klicev. Za obe vrsti naslovov sta pomembni dve omrežni podrobnosti:

  • Upoštevajte Record-Route. Po prvem INVITE preostala signalizacija klica (ACK, prekinitev, preusmeritve) poteka do določenega strežnika ThunderPhone, ki je odgovoril in je naveden v glavi Record-Route (sip-1.thunderphone.com ali sip-2.thunderphone.com oziroma njegov naslov IP). Če omejujete odhodni SIP, dovolite te gostitelje in sip.thunderphone.com: 172.170.39.202 (sip), 13.86.104.121 (sip-1) in 20.80.98.90 (sip-2).
  • Zvok poteka drugje. sip.thunderphone.com prenaša samo signalizacijo. Dovolite medijski promet (RTP) do naslovov in vrat v odgovoru SDP.

Vsak klic na naslov doseže agenta končne točke, ne glede na to, katero številko je klicatelj poklical na vaši strani. Številk nikoli ne uvozite, zato njihova zamenjava na vaši strani ne zahteva sprememb v ThunderPhone.

Posredujte poklicano številko (izbirno)

Če želite zabeležiti, katero od svojih številk je klicatelj poklical, jo pošljite v INVITE v glavi X-Original-To (na primer X-Original-To: +14155550142) ali v standardni glavi Diversion. ThunderPhone jo shrani kot cilj klica.

Cilj je izbran v tem vrstnem redu: to_number, podan ob registraciji URI-ja posameznega klica, nato številka v X-Original-To, nato številka v Diversion. Če nobena od teh možnosti ne poda številke, je za končno točko prikazano sip:agent-12-jhxmginwjx (naslov končne točke), za URI posameznega klica pa sip:call.

S storitvijo Twilio lahko glavo dodate v SIP URI: sip:agent-12-jhxmginwjx@sip.thunderphone.com;transport=tcp?X-Original-To=%2B14155550142.

Omejite izvorne naslove IP (izbirno)

Nastavite allowed_source_cidrs, da poleg uporabniškega imena in gesla sprejemate klice samo z lastnih naslovov za signalizacijo:

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

Klici z vseh drugih naslovov so zavrnjeni, preden dosežejo agenta. Uporabite naslove, s katerih vaš sistem pošilja signalizacijo SIP (pri operaterju, kot je Twilio, njegove objavljene obsege naslovov IP za signalizacijo), in ne svojih medijskih naslovov.

Kaj vidijo klicatelji in vaš sistem

  • ID klicatelja: uporabniški del glave From se shrani kot klicatelj. Telefonska številka (števke, po želji z znakom +, presledki, pomišljaji, pikami ali oklepaji) se normalizira v E.164; vse drugo, na primer uporabniško ime SIP, se ohrani, kot je poslano. Ohrani se največ 32 znakov, manjkajoči klicatelj pa se shrani kot anonymous.
  • Zavrnjeni klici: neznan ali potekel URI za posamezni klic prejme SIP 404 Not Found. URI za posamezni klic, ki je že bil uporabljen, onemogočena končna točka ali vir zunaj seznama dovoljenih (vključno z vsakim klicem UDP na končno točko s seznamom dovoljenih) se prekine, preden se agent zažene: vaš sistem lahko zazna neuspešen klic ali pa se klic poveže in se takoj konča. Te zavrnitve ne ustvarijo vnosa v zgodovini klicev. Če vaši organizaciji zmanjka dobroimetja ali je dosegla omejitev porabe, je klic zavrnjen in je v zgodovini klicev prikazan kot neuspešen klic brez stroška. Če želite znova poskusiti klic za posamezni klic, registrirajte nov URI.
  • Prenosi: hladni prenosi agenta delujejo (ThunderPhone pošlje SIP REFER, ki ga mora vaš sistem sprejeti). Topli prenosi niso na voljo pri klicih na naslove SIP, ker ni številke ThunderPhone, ki bi jo bilo mogoče prikazati kot ID klicatelja za drugi del klica. Pri Twilio povezava TwiML zgoraj poveže agenta, vendar ne obravnava prenosov: v <Dial> dodajte referUrl="https://YOUR_SERVER/sip-transfer" in naj ta spletni kavelj prebere ReferTransferTarget ter vrne TwiML, ki pokliče cilj prenosa (glejte Twiliojev vodnik SIP REFER).
  • Besedilna sporočila: naslov SIP in klicana številka ne moreta pošiljati besedilnih sporočil. Agent lahko med klicem na naslov SIP pošilja besedilna sporočila le, če ima za pošiljanje sporočil nastavljeno ločeno številko, ki podpira SMS; sicer njegovo orodje za SMS ni na voljo.
  • Registracija: ThunderPhone ne sprejema SIP REGISTER. Klice pošljite na naslov; nanj se ne registrirajte.

Cene

Klici na naslove SIP se zaračunajo po običajni minutni tarifi agenta. Stroška telefonske številke ni, ker klica ne prenaša nobena številka ThunderPhone. Vaš operater običajno zaračuna svoj del klica. Glejte Cene.

Preizkusite

  1. Ustvarite URI za posamezni klic ali končno točko, kot je opisano zgoraj.
  2. Pokličite ga iz svojega sistema ali iz katerega koli programskega telefona SIP (za končno točko vnesite uporabniško ime in geslo).
  3. Ko prekinete klic, ga odprite v razdelku Klici na nadzorni plošči ali ga pridobite z GET /v1/calls/{call_id}. Prikazuje klicatelja, cilj (glejte vrstni red pod »Posredujte klicano številko«) in prepis.

Podrobnosti API-ja: referenca API-ja za naslove SIP.