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
    }
}

Referência