https://a.storyblok.com/f/270183/84114/82f68fc314/reconnecting-calls.jpg

Retomando chamadas no Android e no iOS

Publicado em January 8, 2024

Tempo de leitura: 1 minuto

O Vonage Client SDK permite que você desenvolva Applications para iOS, Android e a Web que ofereçam comunicações de voz e mensagens com o suporte da API de Conversação da Vonage Conversation API.

Ao desenvolver esses aplicativos, é essencial levar em conta como as mudanças na conectividade podem afetar a experiência do usuário. O cenário típico de estar conectado à rede de celular, chegar em casa e se conectar ao Wi-Fi pode apresentar desafios, já que o dispositivo alterna entre as conexões. Esta publicação abordará como mitigar esses problemas ao usar o Vonage Client SDK para Android e iOS.

Reconexão automática de chamadas

O Client SDK tentará reconectar automaticamente uma chamada quando houver uma alteração na conectividade com a internet. O Client SDK também oferece ouvintes no Android e funções delegadas no iOS para monitorar mudanças na conectividade. A chamada passará inicialmente para um estado de reconexão, que poderá evoluir para um estado de reconexão ou de desconexão. Monitorar quando o SDK está passando por mudanças na conexão permitirá que você atualize a interface do usuário do seu aplicativo para fornecer feedback aos usuários.

Estado de reconexão

É nesse momento que o Client SDK está tentando se reconectar.

client.setOnCallMediaReconnectingListener { 
    // Handle reconnecting state
}
// VGVoiceClientDelegate
func voiceClient(_ client: VGVoiceClient, didReceiveMediaReconnectingForCall callId: VGCallId) {
    // Handle reconnecting state
}

Estado de reconexão

É nesse momento que o Client SDK se reconecta com sucesso.

client.setOnCallMediaReconnectionListener { 
    // Handle reconnection
}
// VGVoiceClientDelegate
func voiceClient(_ client: VGVoiceClient, didReceiveMediaReconnectionForCall callId: VGCallId) {
    // Handle reconnection
}

Desconectado

Isso ocorre quando o Client SDK não consegue restabelecer a conexão da chamada.

client.setOnCallMediaDisconnectListener { callId, reason ->  
    // Handle disconnection
}
// VGVoiceClientDelegate
func voiceClient(_ client: VGVoiceClient, didReceiveMediaDisconnectForCall callId: VGCallId, reason: VGCallDisconnectReason) {
    // Handle disconnection   
}

Recuperação de chamadas ou transferência de dispositivos

Os SDKs do cliente também oferecem flexibilidade para permitir que você recupere uma chamada caso seu aplicativo trave ou para transferir uma chamada entre dispositivos. A reconnectCall função recebe um ID de chamada e tentará reconectar seu SDK a uma chamada existente:

client.reconnectCall("existingCallID") {
    error, call ->
    when {
        error != null -> {
             // Handle call reconnection error
        }
        else -> {
            // Handle reconnected call
        }
    }
}
client.reconnectCall("existingCallID") { error in
    if error != nil {
        // handle error
        return
    }
    // handle call
}

Para recuperar uma chamada, você pode armazenar o ID da chamada em andamento em algum tipo de armazenamento local e, quando o aplicativo for reaberto, tentar restabelecer a conexão. Se estiver tentando transferir chamadas entre dois dispositivos, você pode enviar o ID da chamada para o novo dispositivo e restabelecer a conexão a partir dele. Usar reconnectCall no novo dispositivo, você entrará na chamada e encerrará a conexão no dispositivo antigo. reconnectCall também está disponível no Client SDK do JavaScript.

E agora?

Você pode ler o guia sobre reconexão de chamadas. Para saber mais sobre o Client SDK, acesse developer.vonage.com.

Compartilhar:

https://a.storyblok.com/f/270183/400x400/19c02db2d3/abdul-ajetunmobi.png
Abdul AjetunmobiEx-funcionário da Vonage

Abdul é um Developer Advocate da Vonage. Ele tem experiência profissional na área de produtos de consumo como engenheiro de iOS. Em seu tempo livre, ele gosta de andar de bicicleta, ouvir música e orientar quem está dando os primeiros passos na área de tecnologia