Skip to main content

Sprachhinweis

Diese deutsche Variante ist eine gekürzte Übersetzung: Die Abschnitte „1. Device registration & VoIP push tokens (mobile)” und „3. Choose how inbound calls reach the softphone” existieren nur in der englischen Fassung: /en/guides/voice-softphone-browser-calling. Code-Blöcke, Endpoint-Pfade, API-Feldnamen und Fehlercodes bleiben englisch.

Browser-Softphone (WebRTC) einrichten

Das Browser-Softphone ermöglicht es einem Agenten, PSTN-Anrufe zu tätigen und anzunehmen, ohne den Browser zu verlassen — kein Tischtelefon, keine Desktop-SIP-App. Es gibt drei Wege, es einem Agenten voranzustellen, und sie teilen sich dieselben Zugangsdaten und dieselbe Infrastruktur:
  1. Das eingebaute Dashboard-Softphone — Orbit liefert ein fertiges Softphone im Dashboard. Das ist der Zero-Code-Weg und der richtige Startpunkt für die meisten Teams.
  2. Ein eingebettetes LiveKit-basiertes Softphone (Softphone in @devotel-orbit/web) — Sie mounten das Softphone mit eigener UI in Ihrem eigenen Agenten-Arbeitsplatz (CRM, Contact-Centre-Wall, internes Tool).
  3. Ein eingebettetes SIP-over-WSS-Softphone (der SIP-Register-Weg) — ein klassischer SIP-Client (z. B. JsSIP), der sich direkt gegen Orbits WebRTC-zu-SIP-Gateway registriert.

2. Softphone-Zugangsdaten ausstellen

Ein Agenten-Browser benötigt ein kurzlebiges Credential, bevor er sich verbinden kann. Welcher Endpoint genutzt wird, hängt vom gewählten Client ab — Dashboard, eingebettetes LiveKit oder eingebettetes SIP.

Eingebautes Dashboard- / eingebettetes LiveKit-Softphone

POST /voice/softphone/token liefert ein kurzlebiges LiveKit-Access-Token plus die Media-URL für die Verbindung:
Das Token ist auf einen Raum je Nutzer begrenzt, damit zwei Agenten nie eine Session teilen. Ein Anruf nach dem Verbinden ist POST /voice/softphone/dial mit { "to": "+15550123", "from": "+15559876" }.

Eingebettetes SIP/WSS-Softphone

Ein SIP-Client registriert sich direkt über einen WebSocket. POST /voice/softphone/register tauscht Ihren authentifizierten API-Request gegen ein kurzlebiges SIP-Credential:
Wichtige Eigenschaften für Ihr Design:
  • Credentials leben 60 Minuten — registrieren Sie vor expiresAt neu, sonst bricht die Session ab.
  • callerIdNumber muss eine Nummer sein, die Ihre Organisation besitzt (anderenfalls 403) — so wird CLI-Spoofing beim ausgehenden Anruf blockiert.
  • Der Username ist an Ihre Organisation gebunden, ein gestohlener Username kann nicht gegen einen anderen Tenant wiederverwendet werden.
  • Die Token-Ausstellung ist auf owner/admin/developer begrenzt — kein öffentlicher, anonymer Endpoint.
Widerrufen Sie ein Credential sofort mit DELETE /voice/softphone/credentials/:username, wenn ein Agent geht oder ein Token leakt.

4. Vollständiges JS-Beispiel — Mikrofon, VoIP-Push + Browser-Fallback

Hier ist ein vollständiges, kopierbares Browser-Softphone. Es funktioniert mit beiden eingebetteten Optionen (LiveKit und SIP-over-WSS) und behandelt die Browser-Fallback-Realität:
WebRTC benötigt eine getUserMedia-Freigabe und eine HTTPS-Seite. Ein Softphone, das „nichts tut”, ist fast immer eines von drei Dingen: eine HTTP-Seite (nicht sicher), eine abgelehnte Mikrofon-Abfrage oder ein Firmennetzwerk, das UDP 3478 blockiert.

5. Verifikation & Fehlerbehebung

Setup End-to-End prüfen:
  1. Credential ausstellen (Abschnitt 2), Client verbinden (Abschnitt 4) und auf das connect- bzw. SIP-registered-Ereignis achten.
  2. Einen ausgehenden Anruf auf das eigene Mobiltelefon tätigen — Sie sollten Klingeln und dann Zwei-Wege-Audio hören.
  3. Einen eingehenden Anruf auf Ihre Nummer routen lassen und bestätigen, dass das Softphone klingelt und annimmt.
Fehlerbehebung, in der Reihenfolge, in der Sie ihr begegnen:

Nächste Schritte

  • SDK demo test-call page — einen echten ausgehenden Testanruf aus dem Dashboard tätigen (Developer → SDK Live Demo).
  • SIP trunk setup — wenn Sie eigene Carrier/Trunks neben dem Browser-Softphone mitbringen wollen.
  • Voice queues — die ACD-Queues, durch die eingehende Anrufe laufen, bevor ein Softphone antwortet.
  • Web SDK — vollständige Event-Map für Softphone und die anderen SDK-Flächen.