ThunderPhone 2.0 je tady.Spustíte sami, od 2 ¢/min.Přečíst oznámení

Developer cookbook

Připojení přes SIP (bez telefonního čísla)

Směrujte hovory k agentovi ThunderPhone přímo ze své ústředny PBX, od operátora nebo z aplikace SIP pomocí jednorázového identifikátoru URI SIP pro každý hovor nebo trvalé adresy SIP.

Pokud váš vlastní systém již pracuje s telefonními čísly (PBX, platforma pro kontaktní centrum nebo účet u operátora, kde střídáte čísla), můžete směrovat hovory k agentovi ThunderPhone přes běžný SIP. Do ThunderPhone neimportujete ani nekupujete žádné číslo. Váš systém vytočí adresu SIP a agent hovor přijme.

Existují dva typy adres SIP:

SIP URI pro jednotlivý hovorKoncový bod SIP
Vypadá jakosip:c-<token>@sip.thunderphone.comsip:agent-<id>-<letters>@sip.thunderphone.com
Vytvořeno pomocíPOST /v1/calls/register-sip, jednou pro každý hovorPOST /v1/sip-endpoints, jednou
OvěřeníJednorázový token v adreseUživatelské jméno a heslo SIP digest (a volitelně seznam povolených zdrojových IP adres)
Vhodné proAplikace, které již před předáním hovoru volají API; proměnné pro jednotlivé hovoryPBX a operátory, které mají pouze „nasměrovat trunk“ na ThunderPhone
Platnost5 minut, jeden hovorDokud jej nesmažete

Oba typy směrují k jednomu agentovi ve vaší organizaci a oba se v historii hovorů zobrazují jako jakýkoli jiný příchozí hovor.

SIP URI pro jednotlivý hovor

1. Zaregistrujte hovor

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 (volitelné) je číslo, které volající vytočil na vaší straně. Uloží se jako cíl hovoru v historii hovorů a agent jej vidí jako své vlastní číslo.
  • variables (volitelné) vyplní {{placeholders}} v promptu agenta stejným způsobem jako u odchozích hovorů.
  • call_id je ID, které bude mít hovor v historii hovorů (GET /v1/calls/{call_id}), jakmile se spojí.

2. Vytočte URI

Odešlete hovor na sip_uri do 5 minut. URI funguje pouze pro jeden hovor: jakmile jej hovor použije, je vyčerpáno, i když tento hovor rychle skončí.

Například s Twilio vraťte pro hovor, který chcete předat, tento TwiML:

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

Z PBX vytočte URI jako cíl SIP. Není potřeba žádné uživatelské jméno ani heslo; token je přihlašovací údaj, proto s URI zacházejte jako s heslem, dokud nebude použito.

Koncový bod SIP (trvalá adresa)

1. Vytvořte koncový bod

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. Nasměrujte na něj svůj systém

Nakonfigurujte SIP trunk nebo cíl s následujícími hodnotami:

NastaveníHodnota
SIP URIsip_uri koncového bodu
Uživatelské jméno / heslousername / password (digest autentizace; ThunderPhone ověřuje každý hovor)
TransportTCP na portu 5060 nebo TLS na portu 5061 (doporučeno), případně UDP na portu 5060
KodekyG.711 (PCMU/PCMA) nebo G.722

Tato nastavení transportu a kodeků platí také pro URI pro jednotlivé hovory. Pro oba typy adres jsou důležité dva síťové aspekty:

  • Dodržujte Record-Route. Po prvním INVITE směřuje zbytek signalizace hovoru (ACK, ukončení hovoru, přepojení) na konkrétní server ThunderPhone, který odpověděl a je uveden v hlavičce Record-Route (sip-1.thunderphone.com nebo sip-2.thunderphone.com, případně jeho IP adresa). Pokud omezujete odchozí SIP, povolte tyto hostitele i sip.thunderphone.com: 172.170.39.202 (sip), 13.86.104.121 (sip-1) a 20.80.98.90 (sip-2).
  • Zvuk směřuje jinam. sip.thunderphone.com přenáší pouze signalizaci. Povolte média (RTP) na adresy a porty v odpovědi SDP.

Každý hovor na tuto adresu se spojí s agentem koncového bodu bez ohledu na to, jaké číslo volající na vaší straně vytočil. Čísla nikdy neimportujete, takže jejich změna na vaší straně nevyžaduje žádnou úpravu v ThunderPhone.

Předejte vytočené číslo (volitelné)

Chcete-li zaznamenat, které z vašich čísel volající vytočil, odešlete je v INVITE v hlavičce X-Original-To (například X-Original-To: +14155550142) nebo ve standardní hlavičce Diversion. ThunderPhone jej uloží jako cíl hovoru.

Cíl se vybírá v tomto pořadí: to_number zadané při registraci URI pro jednotlivý hovor, poté číslo v X-Original-To, následně číslo v Diversion. Pokud žádná z těchto možností neposkytne číslo, pro koncový bod se zobrazí sip:agent-12-jhxmginwjx (adresa koncového bodu) nebo sip:call pro URI jednotlivého hovoru.

S Twilio můžete hlavičku přidat do SIP URI: sip:agent-12-jhxmginwjx@sip.thunderphone.com;transport=tcp?X-Original-To=%2B14155550142.

Omezte zdrojové IP adresy (volitelné)

Nastavte allowed_source_cidrs, aby se kromě uživatelského jména a hesla přijímaly pouze hovory z vašich vlastních adres pro signalizaci:

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

Hovory z jakékoli jiné adresy jsou odmítnuty předtím, než se dostanou k agentovi. Použijte adresy, ze kterých váš systém odesílá signalizaci SIP (u operátora, jako je Twilio, jeho zveřejněné rozsahy IP adres pro signalizaci), nikoli adresy pro média.

Co vidí volající a váš systém

  • ID volajícího: uživatelská část hlavičky From se uloží jako volající. Telefonní číslo (číslice, volitelně s +, mezerami, pomlčkami, tečkami nebo závorkami) se normalizuje do formátu E.164; cokoli jiného, například uživatelské jméno SIP, se ponechá v odeslané podobě. Uloží se maximálně 32 znaků a chybějící volající se uloží jako anonymous.
  • Odmítnuté hovory: neznámý nebo expirovaný identifikátor URI pro jednotlivý hovor obdrží SIP 404 Not Found. Již použitý identifikátor URI pro jednotlivý hovor, deaktivovaný koncový bod nebo zdroj mimo seznam povolených (včetně jakéhokoli hovoru UDP na koncový bod se seznamem povolených) je odpojen před spuštěním agenta: váš systém může vidět selhání hovoru nebo připojení následované okamžitým ukončením. Tato odmítnutí nevytvářejí záznam v historii hovorů. Pokud vaší organizaci došel kredit nebo dosáhla limitu útrat, hovor je odmítnut a v historii hovorů se zobrazí jako neúspěšný hovor bez poplatku. Chcete-li pokus o jednotlivý hovor zopakovat, zaregistrujte nový identifikátor URI.
  • Přepojení: studená přepojení agenta fungují (ThunderPhone odešle SIP REFER, který musí váš systém přijmout). Teplá přepojení nejsou u hovorů na adresu SIP k dispozici, protože pro druhou větev není k dispozici číslo ThunderPhone, které by se zobrazilo jako ID volajícího. U Twilio výše uvedené TwiML připojí agenta, ale nezpracovává přepojení: přidejte referUrl="https://YOUR_SERVER/sip-transfer" do <Dial> a zajistěte, aby tento webhook přečetl ReferTransferTarget a vrátil TwiML, které vytočí cíl přepojení (viz průvodce Twilio SIP REFER).
  • Textové zprávy: adresa SIP a vytočené číslo nemohou odesílat textové zprávy. Agent může během hovoru na adresu SIP odesílat textové zprávy pouze tehdy, pokud má pro textové zprávy nastavené samostatné číslo podporující SMS; jinak není jeho nástroj SMS k dispozici.
  • Registrace: ThunderPhone nepřijímá SIP REGISTER. Odesílejte hovory na adresu; neregistrujte se k ní.

Ceny

Hovory na adresy SIP se účtují běžnou minutovou sazbou agenta. Poplatek za telefonní číslo se neúčtuje, protože hovor nepřenáší žádné číslo ThunderPhone. Váš vlastní operátor účtuje svou část hovoru obvyklým způsobem. Viz Ceny.

Otestujte to

  1. Vytvořte identifikátor URI pro jednotlivý hovor nebo koncový bod podle výše uvedeného postupu.
  2. Vytočte jej ze svého systému nebo z libovolného softphonu SIP (u koncového bodu zadejte uživatelské jméno a heslo).
  3. Po zavěšení otevřete hovor v části Hovory na ovládacím panelu nebo jej načtěte pomocí GET /v1/calls/{call_id}. Zobrazí se volající, cíl (viz pořadí v části „Předejte vytočené číslo“) a přepis.

Podrobnosti API: Referenční dokumentace API pro adresy SIP.