Saltar al contenido

Llamadas VoIP con Cordova

Pushwoosh soporta notificaciones de llamada estilo VoIP para iOS y Android utilizando el pushwoosh-cordova-plugin. Esto habilita la funcionalidad nativa de llamadas VoIP, incluyendo la interfaz de usuario de llamada entrante y los eventos de control de llamada.

Antes de empezar, integra el plugin con el Application Code de Pushwoosh como se describe en la guía de integración básica.

1. Añade el plugin de Pushwoosh para Cordova con VoIP habilitado

Anchor link to

Instala el plugin con la bandera de VoIP habilitada:

Terminal window
cordova plugin add pushwoosh-cordova-plugin --variable PW_VOIP_IOS_ENABLED=true --variable PW_VOIP_ANDROID_ENABLED=true

Esto configurará el plugin para soportar la funcionalidad VoIP en iOS.

2. Comprueba la dependencia PushwooshVoIP

Anchor link to

El plugin vincula el módulo PushwooshVoIP automáticamente. En cordova-ios 8, añade el paquete Swift PushwooshVoIP y no modifica el Podfile. En versiones anteriores de cordova-ios, añade esta línea a tu Podfile:

pod 'PushwooshXCFramework/PushwooshVoIP'

Este módulo es necesario para admitir notificaciones VoIP basadas en PushKit y la gestión de llamadas a nivel del sistema.

3. Habilita el modo de segundo plano VoIP en Xcode

Anchor link to

Abre tu proyecto en Xcode y sigue estos pasos:

  1. Ve a Signing & Capabilities.
  2. Añade la capacidad Background Modes.
  3. Marca la opción Voice over IP.

Esto permite que tu aplicación reciba notificaciones push VoIP mientras está en segundo plano.

4. Solicita permiso de llamada en Android

Anchor link to

En Android, la aplicación necesita el permiso del usuario para recibir llamadas. Solicítalo con requestCallPermission(). Si el usuario lo deniega, la aplicación ignora las llamadas VoIP entrantes.

pushwoosh.requestCallPermission();

5. Establece un tono de llamada personalizado (opcional)

Anchor link to

El plugin inicializa VoIP automáticamente. Para reproducir un tono de llamada personalizado en las llamadas entrantes, pasa el nombre de un archivo de sonido del bundle de la aplicación:

pushwoosh.setRingtone("incoming.caf");

6. Callbacks y métodos VoIP disponibles

Anchor link to

La compatibilidad con video y el formato del identificador de llamada se establecen por llamada en el payload del push VoIP: video y, en iOS, handleType (1 para genérico, 2 para número de teléfono, 3 para correo electrónico).

El plugin de Cordova soporta los siguientes métodos y eventos relacionados con VoIP:

  • answer – se llama cuando un usuario responde a una llamada entrante
  • endCall – se llama cuando un usuario finaliza la llamada actual
  • hangup – se llama cuando se cuelga una llamada
  • reject – se llama cuando se rechaza una llamada entrante
  • muted – alterna el estado de silencio, solo para iOS
  • held – alterna el estado de espera, solo para iOS
  • voipPushPayload – devuelve el payload de la notificación push para la llamada VoIP entrante
  • incomingCallSuccess – se llama cuando la interfaz de usuario de llamada del sistema se muestra con éxito, solo para iOS
  • incomingCallFailure – se llama cuando la interfaz de usuario de llamada del sistema no se puede mostrar, solo para iOS
  • speakerOn – enciende el altavoz
  • speakerOff – apaga el altavoz
  • playDTMF – reproduce un tono DTMF durante una llamada, solo para iOS
  • voipDidRegisterTokenSuccessfully – se llama cuando el token VoIP se registra en Pushwoosh, solo para iOS
  • voipDidFailToRegisterTokenWithError – se llama cuando falla el registro del token VoIP, solo para iOS
  • voipDidCancelCall – se llama cuando una llamada se cancela de forma remota mediante un push VoIP
  • voipDidFailToCancelCall – se llama cuando falla un intento de cancelar una llamada

Estos pueden ser enganchados usando el objeto PushNotification de Cordova, permitiéndote controlar y responder a los cambios de estado de la llamada VoIP.

En Android, también puede gestionar estos eventos en su propia clase nativa de Java, por ejemplo, para abrir su propia pantalla de llamada cuando el usuario responde. Consulte Controlador personalizado de eventos de llamada en Android.

Enlaces relacionados

Anchor link to