Volver a conectar una llamada
Esta guía explica cómo volver a conectarte a una llamada en tu aplicación cliente de Vonage. Antes de comenzar, asegúrate de haber agregado el SDK a tu aplicación y (Android, iOS, JS) y podrá escriba a o reciba llamadas.
Reconexión automática (Android e iOS)
En Android e iOS, el Client SDK intentará por defecto reconectar automáticamente una llamada cuando las condiciones de la red se deterioren. Para desactivar este comportamiento puede configurar autoReconnectMedia a false al inicializar el Client SDK. Durante el proceso de reconexión automática se pueden obtener actualizaciones. La llamada pasará a un estado de reconexión, que a su vez pasará a un estado reconectado o desconectado. El Client SDK tiene escuchas/funciones delegadas para los 3 estados que puede utilizar para actualizar su interfaz de usuario.
Volver a conectar
Esto ocurre cuando el Client SDK intenta volver a conectarse.
client.setOnCallMediaReconnectingListener {
}
// VGVoiceClientDelegate
func voiceClient(_ client: VGVoiceClient, didReceiveMediaReconnectingForCall callId: VGCallId) {
}
Conectado de nuevo
Esto ocurre cuando el Client SDK se ha reconectado correctamente.
client.setOnCallMediaReconnectionListener {
}
// VGVoiceClientDelegate
func voiceClient(_ client: VGVoiceClient, didReceiveMediaReconnectingForCall callId: VGCallId) {
}
Desconectado
Esto ocurre cuando el Client SDK ha fallado al reconectar, usted debe tratar la llamada como finalizada en este punto.
client.setOnCallMediaDisconnectListener { callId, reason ->
}
// VGVoiceClientDelegate
func voiceClient(_ client: VGVoiceClient, didReceiveMediaDisconnectForCall callId: VGCallId, reason: VGCallDisconnectReason) {
}
Reconexión explícita de una llamada
El Client SDK tiene una función para reconectar explícitamente una llamada. 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 o si la aplicación muere.
Una vez creada una sesión, puede volver a conectarse utilizando el identificador de llamada de la llamada inicial.
client.reconnectCall(existingCallId)
.then(() => {
call = existingCallId;
})
.catch(error=> {
console.error("Error reconnecting call: ", error);
})
Llama:
client.reconnectCall(existingCallID) {
error ->
when {
error != null -> {
// Handle call reconnection error
}
else -> {
// Handle reconnected call
}
}
}
client.reconnectCall(existingCallID) { error in
if error == nil {
self.call = existingCallID
} else {
// Handle call reconnection error
}
}