Retomar uma chamada
Este guia explica como se reconectar a uma chamada no aplicativo Vonage Client. Antes de começar, certifique-se de ter adicionado o SDK ao seu aplicativo e (Android, iOS, JS) e você consegue fazer ou receber chamadas.
Reconexão automática (Android e iOS)
No Android e no iOS, o Client SDK tentará, por padrão, reconectar automaticamente uma chamada quando as condições da rede se deteriorarem. Para desativar esse comportamento, você pode definir autoReconnectMedia para “false” ao inicializar o Client SDK. Durante o processo de reconexão automática, você pode receber atualizações. A chamada passará para o estado “em reconexão”, que, por sua vez, poderá evoluir para o estado “reconectado” ou para o estado “desconectado”. O Client SDK possui funções de ouvinte/delegado para os três estados, que você pode usar para atualizar sua interface de usuário.
Reconectando-se
É nesse momento que o Client SDK está tentando se reconectar.
client.setOnCallMediaReconnectingListener {
}
// VGVoiceClientDelegate
func voiceClient(_ client: VGVoiceClient, didReceiveMediaReconnectingForCall callId: VGCallId) {
}
Reconectado
É nesse momento que o Client SDK se reconecta com sucesso.
client.setOnCallMediaReconnectionListener {
}
// VGVoiceClientDelegate
func voiceClient(_ client: VGVoiceClient, didReceiveMediaReconnectingForCall callId: VGCallId) {
}
Desconectado
Isso ocorre quando o Client SDK não consegue se reconectar; nesse caso, você deve considerar a chamada encerrada.
client.setOnCallMediaDisconnectListener { callId, reason ->
}
// VGVoiceClientDelegate
func voiceClient(_ client: VGVoiceClient, didReceiveMediaDisconnectForCall callId: VGCallId, reason: VGCallDisconnectReason) {
}
Reconectando explicitamente uma chamada
O Client SDK possui uma função para restabelecer explicitamente uma chamada. Isso é útil, por exemplo, quando você deseja mudar o dispositivo pelo qual o usuário está falando sem desligar e iniciar uma nova chamada, ou caso o aplicativo trave.
Depois que uma sessão for criada, você poderá se reconectar usando o ID da chamada inicial.
client.reconnectCall(existingCallId)
.then(() => {
call = existingCallId;
})
.catch(error=> {
console.error("Error reconnecting call: ", error);
})
Ligue para:
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
}
}