ThunderPhone 2.0 är här.Kom igång på egen hand, från 2 ¢/min.Läs lanseringsnyheten

Developer cookbook

Anslut via SIP (inget telefonnummer)

Skicka samtal till en ThunderPhone-röstagent direkt från din PBX, operatör eller SIP-applikation, med en SIP-URI för engångsbruk per samtal eller en permanent SIP-adress.

Om ditt eget system redan hanterar telefonnummer (en PBX, en kontaktcenterplattform eller ett operatörskonto där du roterar nummer) kan du skicka samtal till en ThunderPhone-agent via vanlig SIP. Du importerar eller köper inget nummer på ThunderPhone. Ditt system ringer upp en SIP-adress och agenten svarar.

Det finns två typer av SIP-adresser:

SIP-URI per samtalSIP-slutpunkt
Ser ut somsip:c-<token>@sip.thunderphone.comsip:agent-<id>-<letters>@sip.thunderphone.com
Skapas medPOST /v1/calls/register-sip, en gång per samtalPOST /v1/sip-endpoints, en gång
AutentiseringEngångstoken i adressenSIP digest-användarnamn + lösenord (och valfritt en tillåtelselista för käll-IP)
Passar förAppar som redan anropar ett API innan de överför ett samtal; variabler per samtalPBX:er och operatörer som bara ska "peka en trunk" mot ThunderPhone
Gäller i5 minuter, ett samtalTills du tar bort den

Båda typerna dirigerar till en agent i din organisation, och båda visas i samtalshistoriken som alla andra inkommande samtal.

SIP-URI per samtal

1. Registrera samtalet

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 (valfritt) är numret som uppringaren ringde till hos dig. Det lagras som samtalets destination i samtalshistoriken, och agenten ser det som sitt eget nummer.
  • variables (valfritt) fyller i {{placeholders}} i agentens prompt, på samma sätt som för utgående samtal.
  • call_id är det id som samtalet får i samtalshistoriken (GET /v1/calls/{call_id}) när det ansluts.

2. Ring URI:n

Skicka samtalet till sip_uri inom 5 minuter. URI:n fungerar endast för ett samtal: när ett samtal har använt den är den förbrukad, även om samtalet avslutas snabbt.

Med Twilio kan du till exempel returnera denna TwiML för samtalet du vill överföra:

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

Från en PBX ringer du URI:n som en SIP-destination. Inget användarnamn eller lösenord behövs; token är autentiseringsuppgiften, så behandla URI:n som ett lösenord tills den har använts.

SIP-slutpunkt (permanent adress)

1. Skapa slutpunkten

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. Peka ditt system mot den

Konfigurera en SIP-trunk eller destination med:

InställningVärde
SIP-URIslutpunktens sip_uri
Användarnamn / lösenordusername / password (digestautentisering; ThunderPhone utmanar varje samtal)
TransportTCP på port 5060 eller TLS på port 5061 (rekommenderas), eller UDP på port 5060
KodekarG.711 (PCMU/PCMA) eller G.722

Dessa transport- och kodekinställningar gäller även för URI:er per samtal. Två nätverksdetaljer är viktiga för båda adressvarianterna:

  • Följ Record-Route. Efter den första INVITE:n går resten av samtalets signalering (ACK, nedkoppling, överföringar) till den specifika ThunderPhone-server som svarade, vilken anges i Record-Route-huvudet (sip-1.thunderphone.com eller sip-2.thunderphone.com, eller dess IP-adress). Om du begränsar utgående SIP ska du tillåta dessa värdar samt sip.thunderphone.com: 172.170.39.202 (sip), 13.86.104.121 (sip-1) och 20.80.98.90 (sip-2).
  • Ljudet går någon annanstans. sip.thunderphone.com hanterar endast signalering. Tillåt media (RTP) till adresserna och portarna i SDP-svaret.

Varje samtal till adressen når slutpunktens agent, oavsett vilket nummer uppringaren slog på din sida. Du importerar aldrig nummer, så att rotera dem på din sida kräver ingen ändring i ThunderPhone.

Skicka det slagna numret (valfritt)

För att registrera vilket av dina nummer uppringaren slog skickar du det i INVITE:n i ett X-Original-To-huvud (till exempel X-Original-To: +14155550142) eller i ett standardiserat Diversion-huvud. ThunderPhone lagrar det som samtalets destination.

Destinationen väljs i denna ordning: to_number som angavs när en URI per samtal registrerades, sedan ett nummer i X-Original-To, sedan ett i Diversion. Om inget av dessa innehåller ett nummer visas det som sip:agent-12-jhxmginwjx (slutpunktens adress) för en slutpunkt, eller sip:call för en URI per samtal.

Med Twilio kan du lägga till huvudet i SIP-URI:n: sip:agent-12-jhxmginwjx@sip.thunderphone.com;transport=tcp?X-Original-To=%2B14155550142.

Begränsa käll-IP-adresser (valfritt)

Ange allowed_source_cidrs för att endast acceptera samtal från dina egna signaleringsadresser, utöver användarnamn och lösenord:

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

Samtal från andra adresser avvisas innan de når agenten. Använd adresserna som ditt system skickar SIP-signalering från (för en operatör som Twilio, dess publicerade IP-intervall för signalering), inte dina mediaadresser.

Vad uppringare och ditt system ser

  • Uppringar-ID: användardelen i From-huvudet lagras som uppringare. Ett telefonnummer (siffror, eventuellt med +, mellanslag, bindestreck, punkter eller parenteser) normaliseras till E.164; allt annat, till exempel ett SIP-användarnamn, behålls som det skickades. Högst 32 tecken behålls, och en saknad uppringare lagras som anonymous.
  • Avvisade samtal: en okänd eller utgången URI per samtal får SIP 404 Not Found. En URI per samtal som redan har använts, en inaktiverad slutpunkt eller en källa utanför tillåtelselistan (inklusive alla UDP-samtal till en slutpunkt med en tillåtelselista) kopplas från innan agenten startar: ditt system kan se att samtalet misslyckas eller ansluter och sedan avslutas direkt. Dessa avvisningar skapar ingen post i samtalshistoriken. Om din organisation saknar kredit eller har nått sin utgiftsgräns avvisas samtalet och visas i samtalshistoriken som ett misslyckat samtal utan avgift. Registrera en ny URI för att försöka igen per samtal.
  • Överföringar: agentens kalla överföringar fungerar (ThunderPhone skickar en SIP REFER, som ditt system måste acceptera). Varma överföringar är inte tillgängliga för samtal till SIP-adresser, eftersom det inte finns något ThunderPhone-nummer att visa som uppringar-ID för den andra delen. Med Twilio ansluter TwiML ovan agenten men hanterar inte överföringar: lägg till referUrl="https://YOUR_SERVER/sip-transfer" i <Dial>, och låt den webhooken läsa ReferTransferTarget och returnera TwiML som ringer upp överföringsdestinationen (se Twilios SIP REFER-guide).
  • Textmeddelanden: SIP-adressen och det uppringda numret kan inte skicka sms. Agenten kan bara skicka sms under ett samtal till en SIP-adress om den har ett separat sms-kompatibelt nummer konfigurerat för sms; annars är dess sms-verktyg inte tillgängligt.
  • Registrering: ThunderPhone accepterar inte SIP REGISTER. Skicka samtal till adressen; registrera dig inte på den.

Prissättning

Samtal till SIP-adresser debiteras enligt agentens vanliga minutpris. Det finns ingen avgift för telefonnummer, eftersom inget ThunderPhone-nummer bär samtalet. Din egen operatör debiterar sin del av samtalet som vanligt. Se Prissättning.

Testa

  1. Skapa en URI per samtal eller en slutpunkt enligt ovan.
  2. Ring upp den från ditt system eller från valfri SIP-mjuktelefon (för en slutpunkt anger du användarnamn och lösenord).
  3. När du har lagt på öppnar du samtalet under Samtal i instrumentpanelen eller hämtar det med GET /v1/calls/{call_id}. Där visas uppringaren, destinationen (se ordningen under "Skicka det uppringda numret") och transkriptionen.

API-information: API-referens för SIP-adresser.