ThunderPhone 2.0 ist live.Direkt im Self-Service – ab 2 ¢/Min..Ankündigung lesen

Developer cookbook

Über SIP verbinden (keine Telefonnummer)

Leiten Sie Anrufe direkt von Ihrer PBX, Ihrem Anbieter oder Ihrer SIP-Anwendung an einen ThunderPhone-Agenten weiter – mit einer einmaligen SIP-URI pro Anruf oder einer permanenten SIP-Adresse.

Wenn Ihr eigenes System bereits Telefonnummern verwaltet (eine TK-Anlage, eine Contact-Center-Plattform oder ein Netzbetreiber-Konto, in dem Sie Nummern wechseln), können Sie Anrufe über einfaches SIP an einen ThunderPhone Sprachagenten senden. Sie importieren oder kaufen keine Nummer bei ThunderPhone. Ihr System wählt eine SIP-Adresse, und der Agent nimmt den Anruf an.

Es gibt zwei Arten von SIP-Adressen:

SIP-URI pro AnrufSIP-Endpunkt
Sieht aus wiesip:c-<token>@sip.thunderphone.comsip:agent-<id>-<letters>@sip.thunderphone.com
Erstellt mitPOST /v1/calls/register-sip, einmal pro AnrufPOST /v1/sip-endpoints, einmal
AuthentifizierungDas Einmal-Token in der AdresseSIP-Digest-Benutzername + Passwort (und optional eine Quell-IP-Allowlist)
Geeignet fürApps, die bereits vor dem Weiterleiten eines Anrufs eine API aufrufen; Variablen pro AnrufTK-Anlagen und Netzbetreiber, die einen Trunk einfach auf ThunderPhone routen sollen
Gültig für5 Minuten, einen AnrufBis Sie ihn löschen

Beide Arten leiten an einen Sprachagenten in Ihrer Organisation weiter und werden im Anrufverlauf wie jeder andere eingehende Anruf angezeigt.

SIP-URI pro Anruf

1. Anruf registrieren

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 (optional) ist die Nummer, die der Anrufer auf Ihrer Seite gewählt hat. Sie wird im Anrufverlauf als Ziel des Anrufs gespeichert, und der Agent sieht sie als seine eigene Nummer.
  • variables (optional) füllen {{placeholders}} im Prompt des Agenten, genauso wie bei ausgehenden Anrufen.
  • call_id ist die ID, die der Anruf im Anrufverlauf (GET /v1/calls/{call_id}) erhält, sobald er verbunden ist.

2. URI wählen

Senden Sie den Anruf innerhalb von 5 Minuten an sip_uri. Die URI funktioniert nur für einen Anruf: Sobald ein Anruf sie verwendet hat, ist sie verbraucht, selbst wenn dieser Anruf schnell endet.

Mit Twilio geben Sie beispielsweise dieses TwiML für den Anruf zurück, den Sie übergeben möchten:

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

Wählen Sie die URI von einer TK-Anlage aus als SIP-Ziel. Es werden kein Benutzername und kein Passwort benötigt; das Token ist die Berechtigung. Behandeln Sie die URI daher wie ein Passwort, bis sie verwendet wurde.

SIP-Endpunkt (permanente Adresse)

1. Erstellen Sie den Endpunkt

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. Richten Sie Ihr System darauf aus

Konfigurieren Sie einen SIP-Trunk oder ein Ziel mit:

EinstellungWert
SIP-URIDie sip_uri des Endpunkts
Benutzername / Passwortusername / password (Digest-Authentifizierung; ThunderPhone fordert diese bei jedem Anruf an)
TransportTCP auf Port 5060 oder TLS auf Port 5061 (empfohlen) oder UDP auf Port 5060
CodecsG.711 (PCMU/PCMA) oder G.722

Diese Transport- und Codec-Einstellungen gelten auch für URIs pro Anruf. Zwei Netzwerkdetails sind für beide Adresstypen wichtig:

  • Folgen Sie Record-Route. Nach dem ersten INVITE geht die übrige Signalisierung des Anrufs (ACK, Auflegen, Weiterleitungen) an den spezifischen ThunderPhone-Server, der geantwortet hat und im Header Record-Route (sip-1.thunderphone.com oder sip-2.thunderphone.com oder dessen IP-Adresse) angegeben ist. Wenn Sie ausgehendes SIP einschränken, erlauben Sie neben sip.thunderphone.com auch diese Hosts: 172.170.39.202 (sip), 13.86.104.121 (sip-1) und 20.80.98.90 (sip-2).
  • Audio wird anderswo übertragen. sip.thunderphone.com überträgt nur die Signalisierung. Erlauben Sie Medienverkehr (RTP) zu den im SDP-Answer angegebenen Adressen und Ports.

Jeder Anruf an diese Adresse erreicht den Agenten des Endpunkts, unabhängig davon, welche Nummer Ihr Anrufer auf Ihrer Seite gewählt hat. Sie importieren niemals Nummern, daher erfordert deren Rotation auf Ihrer Seite keine Änderung in ThunderPhone.

Übermitteln Sie die gewählte Nummer (optional)

Um zu erfassen, welche Ihrer Nummern der Anrufer gewählt hat, senden Sie sie im INVITE in einem Header X-Original-To (zum Beispiel X-Original-To: +14155550142) oder in einem standardmäßigen Header Diversion. ThunderPhone speichert sie als Ziel des Anrufs.

Das Ziel wird in dieser Reihenfolge ausgewählt: die beim Registrieren einer URI pro Anruf angegebene to_number, dann eine Nummer in X-Original-To, dann eine in Diversion. Falls keine dieser Angaben eine Nummer liefert, wird für einen Endpunkt sip:agent-12-jhxmginwjx (die Adresse des Endpunkts) oder für eine URI pro Anruf sip:call angezeigt.

Mit Twilio können Sie den Header zur SIP-URI hinzufügen: sip:agent-12-jhxmginwjx@sip.thunderphone.com;transport=tcp?X-Original-To=%2B14155550142.

Quell-IP-Adressen einschränken (optional)

Setzen Sie allowed_source_cidrs, um zusätzlich zu Benutzername und Passwort nur Anrufe von Ihren eigenen Signalisierungsadressen zu akzeptieren:

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

Anrufe von jeder anderen Adresse werden abgewiesen, bevor sie den Agenten erreichen. Verwenden Sie die Adressen, von denen Ihr System SIP-Signalisierung sendet (bei einem Carrier wie Twilio dessen veröffentlichte Signalisierungs-IP-Bereiche), nicht Ihre Medienadressen.

Was Anrufer und Ihr System sehen

  • Anrufer-ID: Der Benutzerteil des From-Headers wird als Anrufer gespeichert. Eine Telefonnummer (Ziffern, optional mit +, Leerzeichen, Bindestrichen, Punkten oder Klammern) wird zu E.164 normalisiert; alles andere, beispielsweise ein SIP-Benutzername, wird unverändert gespeichert. Es werden maximal 32 Zeichen gespeichert, und ein fehlender Anrufer wird als anonymous gespeichert.
  • Abgelehnte Anrufe: Eine unbekannte oder abgelaufene URI pro Anruf erhält SIP 404 Not Found. Eine bereits verwendete URI pro Anruf, ein deaktivierter Endpunkt oder eine Quelle außerhalb der Zulassungsliste (einschließlich jedes UDP-Anrufs an einen Endpunkt mit Zulassungsliste) wird getrennt, bevor der Agent startet: Ihr System kann den Anruf als fehlgeschlagen sehen oder die Verbindung herstellen, die dann sofort endet. Diese Ablehnungen erstellen keinen Eintrag im Anrufverlauf. Wenn Ihrer Organisation Guthaben fehlt oder sie ihr Ausgabenlimit erreicht hat, wird der Anruf abgelehnt und im Anrufverlauf als fehlgeschlagener Anruf ohne Berechnung angezeigt. Um einen Versuch pro Anruf zu wiederholen, registrieren Sie eine neue URI.
  • Weiterleitungen: Die Cold Transfers des Agenten funktionieren (ThunderPhone sendet ein SIP REFER, das Ihr System akzeptieren muss). Warm Transfers sind bei Anrufen an SIP-Adressen nicht verfügbar, weil keine ThunderPhone-Nummer als Anrufer-ID für den zweiten Gesprächsabschnitt angezeigt werden kann. Bei Twilio verbindet das obige TwiML den Agenten, verarbeitet jedoch keine Weiterleitungen: Fügen Sie referUrl="https://YOUR_SERVER/sip-transfer" zu <Dial> hinzu und lassen Sie diesen Webhook ReferTransferTarget auslesen und TwiML zurückgeben, das das Weiterleitungsziel anruft (siehe Twilios SIP-REFER-Leitfaden).
  • Textnachrichten: Die SIP-Adresse und die gewählte Nummer können keine Textnachrichten senden. Der Agent kann während eines Anrufs an eine SIP-Adresse nur dann Textnachrichten senden, wenn eine separate SMS-fähige Nummer für Textnachrichten eingerichtet ist; andernfalls ist sein SMS-Tool nicht verfügbar.
  • Registrierung: ThunderPhone akzeptiert kein SIP REGISTER. Senden Sie Anrufe an die Adresse; registrieren Sie sich nicht dafür.

Preise

Anrufe an SIP-Adressen werden zum normalen Minutenpreis des Agenten abgerechnet. Es fällt keine Gebühr für eine Telefonnummer an, da keine ThunderPhone-Nummer den Anruf führt. Ihr eigener Anbieter rechnet seine Seite des Anrufs wie üblich ab. Siehe Preise.

Testen

  1. Erstellen Sie wie oben eine URI pro Anruf oder einen Endpunkt.
  2. Rufen Sie diese URI über Ihr System oder über ein beliebiges SIP-Softphone an (geben Sie bei einem Endpunkt den Benutzernamen und das Passwort ein).
  3. Öffnen Sie nach dem Auflegen den Anruf unter Anrufe im Dashboard oder rufen Sie ihn mit GET /v1/calls/{call_id} ab. Angezeigt werden der Anrufer, das Ziel (siehe die Reihenfolge unter „Die gewählte Nummer übergeben“) und das Transkript.

API-Details: API-Referenz für SIP-Adressen.