Reconectar los medios de una llamada o conversación

Visión general

Esta guía explica cómo volver a conectarte a una llamada o a los medios de una conversación en tu aplicación cliente de Vonage JavaScript.

Reconectar automáticamente

El Client SDK de JavaScript se volverá a conectar automáticamente a un llame a o de una conversación medios de comunicación si una conexión se corta durante un par de segundos sin que tengas que hacer nada.

Lo siguiente es para las situaciones en las que una ventana/pestaña del navegador se cierra/refresca accidentalmente o el usuario quiere cambiar de entrada de audio y todavía está dentro del límite de tiempo de 20 segundos para volver a conectarse.

Consideraciones

Para que la reconexión se produzca con éxito, deben darse algunas condiciones.

  1. La aplicación debe crear un nuevo JWT para el usuario que se vuelve a conectar con su nombre de usuario único para poder instanciar el archivo Objeto de aplicación que tiene el reconnectCall y getConversation métodos.
  2. El Id de Conversación y el Id de RTC (o Leg) también serán necesarios para reconectar al usuario.

Esto significa que estos valores (nombre de usuario, Id de conversación e Id de RTC ) deberán almacenarse en el navegador para que puedan recuperarse cuando se recargue la aplicación. Tanto localStorage y sessionStorage para almacenar los datos. El que elijas dependerá de tu caso de uso.

Existe una opción mediaParams que se puede añadir para modificar el objeto MediaStream y hacer cosas como cambiar el dispositivo de entrada de audio. Visite la página documentación para ver todos los argumentos.

Volver a conectar una llamada

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

Puede encontrar un ejemplo de aplicación en este GitHub repo.

Nota: Cuando vuelvas a conectarte, te unirás automáticamente a la llamada. No es necesario answer() en el objeto de llamada.

Reconectar los medios de una conversación

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