Kotlin

Finalizar una llamada

La llamada puede ser finalizada por una de las dos partes:

  • llamando a la aplicación hangup en el call instancia
  • callee colgando en el dispositivo físico

Finalizar la llamada cuando el interlocutor cuelga

Para finalizar la llamada (colgar) es necesario almacenar la referencia al objeto de llamada en curso. Añadir onGoingCallID en la parte superior de MainActivity:

private var onGoingCallID: CallId? = null

Es necesario almacenar la referencia de llamada en curso en el onGoingCallID y añada setOnRTCHangupListener para avisarte cuando finalice la llamada.

En el MainActivity actualizar el cuerpo del onCreate para incluir el siguiente listener al final del método.

client.setOnCallHangupListener { callId, callQuality, isRemote ->
    onGoingCallID = null
    startCallButton.visibility = View.VISIBLE
    endCallButton.visibility = View.INVISIBLE
}

En el MainActivity actualizar el cuerpo del startCall método. Asegúrese de sustituir PHONE_NUMBER a continuación con el número de teléfono real al que desea llamar, en el campo E.164 (por ejemplo, 447700900000):

@SuppressLint("MissingPermission")
fun startCall() {
    client.serverCall(mapOf("to" to "PHONE_NUMBER")) {
        err, outboundCall ->
        when {
            err != null -> {
                connectionStatusTextView.text = err.localizedMessage
            }
            else -> {
                onGoingCallID = outboundCall
                startCallButton.visibility = View.INVISIBLE
                endCallButton.visibility = View.VISIBLE
            }
        }
    }
}

Cuando finaliza la llamada (independientemente de quién la finalice, la aplicación o el destinatario), la interfaz de usuario se actualiza para reflejar el estado actual de la llamada (make a call button se muestra y END CALL está oculto).

Finalizar la llamada en la aplicación

En el MainActivity rellenar el cuerpo del hangup método:

private fun hangup() {
    onGoingCallID?.let {
        client.hangup(it) {
            err ->
            when {
                err != null -> {
                    connectionStatusTextView.text = err.localizedMessage
                }
                else -> {
                    onGoingCallID = null
                }
            }
        }
    }
}

Observe que después de colgar con éxito se establece el valor de la opción onGoingCallID a null.

Construir y ejecutar

Pulse el botón Ctrl + R para crear y ejecutar la aplicación. Inicia y finaliza la llamada para ver los cambios en la interfaz de usuario.