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 para Android e iOS.

Reconectar automáticamente

El Client SDK puede intentar volver a conectarse automáticamente a una llamada o a los medios de una conversación si se configura la opción del cliente autoReoffer propiedad de configuración. Esto es útil para cuando hay una breve caída en la conectividad a Internet o el usuario cambia entre celular y WiFi.

val client = NexmoClient.Builder().autoMediaReoffer(true).build(this)

Escucha de los cambios de estado de las llamadas

Para saber cuándo ha cambiado el estado de los medios de una llamada o conversación, puedes escuchar los eventos de estado de los medios con el SDK de Android e iOS. Tenga en cuenta el estado desconectado. Un estado desconectado significa que ha habido un problema de red temporal y el cliente intentará una reconexión proporcionando el autoReoffer de configuración. Si no estableció autoReoffer a true entonces puedes reconectarte manualmente aquí.

Para obtener MediaConnectionState actualizaciones que necesita para añadir un NexmoMediaStatusListener. Puede hacerlo estableciéndolo en el objeto de conversación de una llamada.

call?.conversation?.addMediaStatusListener(object: NexmoMediaStatusListener {
    override fun onMediaConnectionStateChange(legId: String, status: EMediaConnectionState) {
        // Update UI and/or reconnect
    }
})

Reconectar manualmente

El Client SDK dispone de funciones para reconectar explícitamente los medios de una llamada o conversación. Esto resulta útil, por ejemplo, cuando se desea cambiar el dispositivo en el que está hablando un usuario sin colgar e iniciar una nueva llamada si la aplicación muere.

Llama:

client.reconnectCall("conversationId", "legId", object : NexmoRequestListener<NexmoCall> {
    override fun onSuccess(result: NexmoCall?) {
        // handle call
    }

    override fun onError(error: NexmoApiError) {
        // handle error
    }
})

Medios de conversación:

conversation.reconnectMedia()