Kotlin

Recibir llamada

Antes de realizar una llamada, vamos a añadir a la aplicación la posibilidad de recibir llamadas. Añadir onGoingCallID y callInviteID en la parte superior de MainActivity clase:

private var onGoingCallID: CallId? = null
private var callInviteID: CallId? = null

Para escuchar las llamadas entrantes añada incoming call listener al final de onCreate método inside MainActivity clase:

client.setCallInviteListener { callId, from, channelType ->
    callInviteID = callId
    runOnUiThread {
        hideUI()
        answerCallButton.visibility = View.VISIBLE
        rejectCallButton.visibility = View.VISIBLE
    }
}

La aplicación escuchará ahora el evento de llamada entrante. El código anterior muestra los botones de responder y rechazar llamada cuando se recibe el evento de llamada entrante. Observa que estás almacenando callInviteID referencia para interactuar posteriormente con la llamada.

Antes de que puedas realizar acciones usando UI también necesitas añadir listeners a los botones. Añade este código en el onCreate en MainActivity clase:

answerCallButton.setOnClickListener { answerCall() }
rejectCallButton.setOnClickListener { rejectCall() }
endCallButton.setOnClickListener { endCall() }

Para responder a la llamada, añada answerCall método inside MainActivity clase:

@SuppressLint("MissingPermission")
private fun answerCall() {
    callInviteID?.let {
        client.answer(it) {
            err ->
            when {
                err != null -> {
                    connectionStatusTextView.text = err.localizedMessage
                }
                else -> {
                    onGoingCallID = it
                    hideUI()
                    endCallButton.visibility = View.VISIBLE
                }
            }
        }
    }
}

Tras responder a la llamada, el end call se mostrará.

NOTA: En SuppressLint se utiliza por simplicidad. En la aplicación de producción debes asegurarte de que se conceden los permisos antes de responder a la llamada.

Para rechazar la llamada añada rejectCall método inside MainActivity clase:

private fun rejectCall() {
    callInviteID?.let {
        client.reject(it) { err ->
            when {
                err != null -> {
                    connectionStatusTextView.text = err.localizedMessage
                }
                else -> {
                    hideUI()
                    startCallButton.visibility = View.VISIBLE
                    waitingForIncomingCallTextView.visibility = View.VISIBLE
                }
            }
        }
        onGoingCallID = null
    }
}

Para finalizar la llamada añada endCall método inside MainActivity clase:

private fun endCall() {
    onGoingCallID?.let {
        client.hangup(it) {
            err ->
            when {
                err != null -> {
                    connectionStatusTextView.text = err.localizedMessage
                }
                else -> {
                    hideUI()
                    startCallButton.visibility = View.VISIBLE
                    waitingForIncomingCallTextView.visibility = View.VISIBLE
                }
            }
        }
    }
    onGoingCallID = null
}

Tenga en cuenta que después de rechazar o finalizar con éxito la llamada se establece onGoingCall a null.

Hacer una llamada de voz de aplicación a aplicación

Realiza una llamada de voz desde una aplicación Android a la misma aplicación Android instalada en otro dispositivo utilizando el SDK Android Client.

Pasos
1
Introducción a esta tarea
2
Prerequisites
3
Crear un servidor webhook
4
Crear una aplicación de Vonage
5
Crear los usuarios
6
Generar JWT
7
Crear un proyecto Android
8
Añadir permisos
9
Construir pantalla principal
10
Inicializar el cliente
11
Recibir llamada
12
Realizar una llamada
13
¿Y ahora qué?