ThunderPhone 2.0 er lanceret.Selvbetjening fra 2 cent pr. minut.Læs mere om lanceringen

Developer cookbook

Forbind via SIP (intet telefonnummer)

Send opkald til en ThunderPhone-agent direkte fra din PBX, operatør eller SIP-applikation med en engangs-SIP-URI pr. opkald eller en permanent SIP-adresse.

Hvis dit eget system allerede håndterer telefonnumre (en PBX, en kontaktcenterplatform eller en operatørkonto, hvor du roterer numre), kan du sende opkald til en ThunderPhone-agent via almindelig SIP. Du importerer eller køber ikke et nummer på ThunderPhone. Dit system ringer til en SIP-adresse, og agenten besvarer opkaldet.

Der findes to typer SIP-adresser:

SIP-URI pr. opkaldSIP-slutpunkt
Ser ud somsip:c-<token>@sip.thunderphone.comsip:agent-<id>-<letters>@sip.thunderphone.com
Oprettet medPOST /v1/calls/register-sip, én gang pr. opkaldPOST /v1/sip-endpoints, én gang
GodkendelseEngangstokenet i adressenSIP-digestbrugernavn + adgangskode (og valgfrit en tilladelsesliste for kilde-IP)
Velegnet tilApps, der allerede kalder et API, før et opkald viderestilles; variabler pr. opkaldPBX'er og operatører, der blot skal "pege en trunk" mod ThunderPhone
Gyldig i5 minutter, ét opkaldIndtil du sletter det

Begge typer viderestiller til én agent i din organisation, og begge vises i opkaldshistorikken som ethvert andet indgående opkald.

SIP-URI pr. opkald

1. Registrer opkaldet

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 (valgfrit) er det nummer, opkalderen ringede til hos dig. Det gemmes som opkaldets destination i opkaldshistorikken, og agenten ser det som sit eget nummer.
  • variables (valgfrit) udfylder {{placeholders}} i agentens prompt på samme måde som ved udgående opkald.
  • call_id er det id, opkaldet får i opkaldshistorikken (GET /v1/calls/{call_id}), når det forbindes.

2. Ring til URI'en

Send opkaldet til sip_uri inden for 5 minutter. URI'en fungerer kun til ét opkald: Når et opkald har brugt den, er den opbrugt, også selv om opkaldet slutter hurtigt.

Med Twilio kan du for eksempel returnere denne TwiML for det opkald, du vil overdrage:

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

Fra en PBX skal du ringe til URI'en som en SIP-destination. Der kræves intet brugernavn eller adgangskode; tokenet er legitimationsoplysningen, så behandl URI'en som en adgangskode, indtil den er blevet brugt.

SIP-endpoint (permanent adresse)

1. Opret endpointet

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. Peg dit system på det

Konfigurer en SIP-trunk eller destination med:

IndstillingVærdi
SIP-URIendpointets sip_uri
Brugernavn / adgangskodeusername / password (digest-godkendelse; ThunderPhone udfordrer hvert opkald)
TransportTCP på port 5060 eller TLS på port 5061 (anbefalet), eller UDP på port 5060
CodecsG.711 (PCMU/PCMA) eller G.722

Disse transport- og codec-indstillinger gælder også for URI'er pr. opkald. To netværksdetaljer er vigtige for begge typer adresser:

  • Følg Record-Route. Efter den første INVITE sendes resten af opkaldets signalering (ACK, afslutning, viderestillinger) til den specifikke ThunderPhone-server, der svarede, og som er angivet i Record-Route-headeren (sip-1.thunderphone.com eller sip-2.thunderphone.com eller dens IP-adresse). Hvis du begrænser udgående SIP, skal du tillade disse værter samt sip.thunderphone.com: 172.170.39.202 (sip), 13.86.104.121 (sip-1) og 20.80.98.90 (sip-2).
  • Lyd går et andet sted hen. sip.thunderphone.com håndterer kun signalering. Tillad medier (RTP) til adresserne og portene i SDP-svaret.

Alle opkald til adressen når endpointets agent, uanset hvilket nummer din opkalder ringede til på din side. Du importerer aldrig numre, så rotation af dem på din side kræver ingen ændring i ThunderPhone.

Send det ringede nummer videre (valgfrit)

For at registrere hvilket af dine numre opkalderen ringede til, skal du sende det i INVITE'en i en X-Original-To-header (for eksempel X-Original-To: +14155550142) eller i en standardheader af typen Diversion. ThunderPhone gemmer det som opkaldets destination.

Destinationen vælges i denne rækkefølge: to_number, der blev angivet, da en URI pr. opkald blev registreret, derefter et nummer i X-Original-To, derefter et i Diversion. Hvis ingen af disse angiver et nummer, vises det som sip:agent-12-jhxmginwjx (endpointets adresse) for et endpoint eller som sip:call for en URI pr. opkald.

Med Twilio kan du tilføje headeren til SIP-URI'en: sip:agent-12-jhxmginwjx@sip.thunderphone.com;transport=tcp?X-Original-To=%2B14155550142.

Begræns kilde-IP-adresser (valgfrit)

Angiv allowed_source_cidrs for kun at acceptere opkald fra dine egne signaleringsadresser ud over brugernavn og adgangskode:

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

Opkald fra alle andre adresser afvises, før de når agenten. Brug de adresser, som dit system sender SIP-signalering fra (for en operatør som Twilio: dens offentliggjorte IP-områder til signalering), ikke dine medieadresser.

Hvad opkaldere og dit system ser

  • Opkalds-id: brugerdelen af From-headeren gemmes som opkalderen. Et telefonnummer (cifre, eventuelt med +, mellemrum, bindestreger, punktummer eller parenteser) normaliseres til E.164; alt andet, f.eks. et SIP-brugernavn, bevares som sendt. Der bevares højst 32 tegn, og en manglende opkalder gemmes som anonymous.
  • Afviste opkald: en ukendt eller udløbet URI pr. opkald får SIP 404 Not Found. En allerede brugt URI pr. opkald, et deaktiveret endpoint eller en kilde uden for tilladelseslisten (herunder ethvert UDP-opkald til et endpoint med en tilladelsesliste) afbrydes, før agenten starter: dit system kan se opkaldet fejle eller forbinde og derefter afslutte med det samme. Disse afvisninger opretter ikke en post i opkaldshistorikken. Hvis din organisation ikke har mere kredit eller har nået sin forbrugsgrænse, afvises opkaldet og vises i opkaldshistorikken som et mislykket opkald uden opkrævning. For at prøve et forsøg pr. opkald igen skal du registrere en ny URI.
  • Viderestillinger: agentens kolde viderestillinger fungerer (ThunderPhone sender en SIP REFER, som dit system skal acceptere). Varme viderestillinger er ikke tilgængelige for opkald til SIP-adresser, fordi der ikke er noget ThunderPhone-nummer at vise som opkalds-id for det andet led. Med Twilio forbinder TwiML'en ovenfor agenten, men håndterer ikke viderestillinger: Tilføj referUrl="https://YOUR_SERVER/sip-transfer" til <Dial>, og lad den webhook læse ReferTransferTarget og returnere TwiML, der ringer op til viderestillingsdestinationen (se Twilios SIP REFER-vejledning).
  • Tekstbeskeder: SIP-adressen og det opkaldte nummer kan ikke sende tekstbeskeder. Agenten kan kun sende tekstbeskeder under et opkald til en SIP-adresse, hvis den har et separat SMS-kompatibelt nummer konfigureret til tekstbeskeder; ellers er dens SMS-værktøj ikke tilgængeligt.
  • Registrering: ThunderPhone accepterer ikke SIP REGISTER. Send opkald til adressen; registrer ikke på den.

Priser

Opkald til SIP-adresser faktureres til agentens normale pris pr. minut. Der er ingen opkrævning for telefonnummer, fordi intet ThunderPhone-nummer bærer opkaldet. Din egen operatør fakturerer sin del af opkaldet som normalt. Se Priser.

Test det

  1. Opret en URI pr. opkald eller et endpoint som beskrevet ovenfor.
  2. Ring til den fra dit system eller fra en vilkårlig SIP-softphone (for et endpoint skal du indtaste brugernavnet og adgangskoden).
  3. Når du har lagt på, skal du åbne opkaldet under Opkald i dashboardet eller hente det med GET /v1/calls/{call_id}. Det viser opkalderen, destinationen (se rækkefølgen under "Send det opkaldte nummer") og transskriptionen.

API-detaljer: API-reference for SIP-adresser.