Medien eines Anrufs oder einer Konversation wieder verbinden

Übersicht

In dieser Anleitung erfahren Sie, wie Sie die Verbindung zu einem Anruf oder den Medien eines Gesprächs in Ihrer Android- und iOS-Anwendung Vonage Client wiederherstellen können.

Automatisch wiederverbinden

Das Client SDK kann versuchen, die Verbindung zu einem Anruf oder zu den Medien eines Gesprächs automatisch wiederherzustellen, wenn Sie den Client auf autoReoffer Konfigurationseigenschaft. Dies ist nützlich, wenn die Internetverbindung kurzzeitig unterbrochen wird oder der Benutzer zwischen Mobilfunk und WiFi wechselt.

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

Abhören von Anrufstatusänderungen

Um zu wissen, wann sich der Status der Medien eines Anrufs oder einer Unterhaltung geändert hat, können Sie mit dem Android- und iOS-SDK auf Medienstatusereignisse achten. Beachten Sie den Status "Getrennt". Ein getrennter Status bedeutet, dass ein vorübergehendes Netzwerkproblem aufgetreten ist und der Client versucht, die Verbindung wiederherzustellen, wenn die autoReoffer Konfigurationseigenschaft gesetzt wurde. Wenn Sie nicht die Eigenschaft autoReoffer zu true dann können Sie die Verbindung hier manuell wiederherstellen.

Um die MediaConnectionState Aktualisierungen müssen Sie eine NexmoMediaStatusListener. Sie können dies tun, indem Sie es für das Gesprächsobjekt eines Anrufs festlegen.

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

Manuelles Wiederherstellen der Verbindung

Das Client SDK verfügt über Funktionen zum expliziten Wiederverbinden eines Anrufs oder der Medien eines Gesprächs. Dies ist z. B. nützlich, wenn Sie das Gerät wechseln möchten, auf dem ein Benutzer spricht, ohne aufzulegen und einen neuen Anruf zu starten, wenn die Anwendung beendet wird.

Anrufen:

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

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

Konversationsmedien:

conversation.reconnectMedia()