Kotlin

Gestionar la llamada

Recibir llamada

Añadir dos nuevas propiedades onGoingCallID para retener la llamada en directo actual y callInviteID para mantener una invitación de llamada entrante en la parte superior del MainActivity clase:

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

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.

A continuación, debajo del oyente de invitación a llamar, añada el oyente de colgar RTC, que se encargará de cuando la persona que le llama cuelgue y finalice 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:

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

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:

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

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

Construir y ejecutar

Asegúrese de que el servidor webhook que construyó en los pasos anteriores sigue funcionando.

Pulse el botón Ctrl + R para crear y ejecutar la aplicación. Llama al número.

Llame al número asociado a su solicitud en el paso anterior.

Webhooks

A medida que avanza con la llamada, por favor, cambie al terminal y observe el /voice/answer al que se llama para recuperar la NCCO:

NCCO request: - caller: 447700900000 - callee: 442038297050

Además, a medida que la convocatoria avanza por las distintas fases, /voice/event se envían eventos: