Medien eines Anrufs oder einer Konversation wieder verbinden

Übersicht

In dieser Anleitung erfahren Sie, wie Sie die Verbindung zu einem Anruf oder den Medien eines Gesprächs in Ihrer JavaScript Vonage Client-Anwendung wiederherstellen können.

Automatisch wiederverbinden

Das JavaScript Client SDK stellt automatisch die Verbindung zu einer aufrufen oder die eines Gesprächs Medien wenn eine Verbindung für ein paar Sekunden unterbrochen wird, ohne dass Sie etwas tun müssen.

Das Folgende gilt für den Fall, dass ein Browserfenster/eine Registerkarte versehentlich geschlossen/neu geöffnet wird oder der Benutzer den Audioeingang wechseln möchte und sich noch innerhalb der 20-Sekunden-Frist für die Wiederherstellung der Verbindung befindet.

Überlegungen

Es gibt einige Voraussetzungen, die erfüllt sein müssen, damit die Wiederanbindung erfolgreich verläuft.

  1. Die Anwendung muss ein neues JWT für den sich neu verbindenden Benutzer mit seinem eindeutigen Benutzernamen erstellen, um die Application-Objekt die die reconnectCall und getConversation Methoden.
  2. Die Conversation Id und die RTC (oder Leg) Id werden ebenfalls benötigt, um den Benutzer wieder zu verbinden.

Das bedeutet, dass diese Werte (Benutzername, Conversation Id und RTC Id) im Browser gespeichert werden müssen, damit sie beim Neuladen der Anwendung wiederhergestellt werden können. Beide localStorage und sessionStorage können zum Speichern der Daten verwendet werden. Welche Sie wählen, hängt von Ihrem Anwendungsfall ab.

Es gibt eine optionale mediaParams Parameter, der hinzugefügt werden kann, um das MediaStream-Objekt zu ändern und Dinge zu tun, wie das Audio-Eingabegerät zu ändern. Besuchen Sie die Dokumentation um alle Argumente zu sehen.

Verbindung wiederherstellen

application.reconnectCall(
    "conversation_id",
    "rtc_id",
    { audioConstraints: { deviceId: "device_id" } }
).then((nxmCall) => {
    console.log(nxmCall);
}).catch((error) => {
    console.error("error reconnecting call", error);
});

Eine Beispielanwendung finden Sie in diesem GitHub Repo.

Hinweis: Wenn die Verbindung wiederhergestellt ist, nehmen Sie automatisch an dem Anruf teil. Sie müssen nicht answer() auf das Call-Objekt.

Die Medien einer Konversation neu verbinden

conversation.media.enable({ 
    reconnectRtcId: "UUID",
    audioConstraints: { deviceId: "device_id" }
}).then((stream) => {
    console.log(stream)
}).catch((error) => {
    console.error("error renabling media", error);
});