Reconnecter les médias d'un appel ou d'une conversation

Vue d'ensemble

Ce guide explique comment se reconnecter à un appel ou au support d'une conversation dans votre application JavaScript Vonage Client.

Reconnexion automatique

Le Client SDK JavaScript se reconnectera automatiquement à un fichier appel ou d'une conversation médias si une connexion s'interrompt pendant quelques secondes sans que vous ayez à faire quoi que ce soit.

Ce qui suit concerne les situations où une fenêtre de navigateur/onglet est accidentellement fermée/réactualisée ou l'utilisateur veut changer d'entrée audio et se trouve encore dans le délai de 20 secondes pour se reconnecter.

Considérations

Quelques éléments doivent être mis en place pour que la reconnexion se fasse avec succès.

  1. L'application doit créer un nouveau JWT pour l'utilisateur qui se reconnecte avec son nom d'utilisateur unique afin d'instancier la fonction Objet de l'application qui dispose de la reconnectCall et getConversation des méthodes.
  2. L'identifiant de conversation et l'identifiant RTC (ou Leg) seront également nécessaires pour reconnecter l'utilisateur.

Cela signifie que ces valeurs (nom d'utilisateur, identifiant de conversation et identifiant RTC) devront être stockées dans le navigateur afin de pouvoir être récupérées lorsque l'application sera rechargée. Les deux stockage local et sessionStorage peuvent être utilisées pour stocker les données. Le choix dépend de votre cas d'utilisation.

Il existe une option mediaParams qui peut être ajouté pour modifier l'objet MediaStream et faire des choses comme changer le périphérique d'entrée audio. Visitez la page la documentation pour consulter tous les arguments.

Reconnecter un appel

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

Un exemple d'application peut être trouvé dans ce GitHub. repo.

Remarque : lorsque vous êtes reconnecté, vous rejoignez automatiquement l'appel. Il n'est pas nécessaire de answer() sur l'objet de l'appel.

Reconnecter les médias d'une conversation

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