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 toInstala el plugin con la bandera de VoIP habilitada:
cordova plugin add pushwoosh-cordova-plugin --variable PW_VOIP_IOS_ENABLED=true --variable PW_VOIP_ANDROID_ENABLED=trueEsto configurará el plugin para soportar la funcionalidad VoIP en iOS.
2. Comprueba la dependencia PushwooshVoIP
Anchor link toEl 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 toAbre tu proyecto en Xcode y sigue estos pasos:
- Ve a Signing & Capabilities.
- Añade la capacidad Background Modes.
- 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 toEn 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 toEl 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 toLa 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 entranteendCall– se llama cuando un usuario finaliza la llamada actualhangup– se llama cuando se cuelga una llamadareject– se llama cuando se rechaza una llamada entrantemuted– alterna el estado de silencio, solo para iOSheld– alterna el estado de espera, solo para iOSvoipPushPayload– devuelve el payload de la notificación push para la llamada VoIP entranteincomingCallSuccess– se llama cuando la interfaz de usuario de llamada del sistema se muestra con éxito, solo para iOSincomingCallFailure– se llama cuando la interfaz de usuario de llamada del sistema no se puede mostrar, solo para iOSspeakerOn– enciende el altavozspeakerOff– apaga el altavozplayDTMF– reproduce un tono DTMF durante una llamada, solo para iOSvoipDidRegisterTokenSuccessfully– se llama cuando el token VoIP se registra en Pushwoosh, solo para iOSvoipDidFailToRegisterTokenWithError– se llama cuando falla el registro del token VoIP, solo para iOSvoipDidCancelCall– se llama cuando una llamada se cancela de forma remota mediante un push VoIPvoipDidFailToCancelCall– 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.