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.
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. Añade la dependencia CocoaPod PushwooshVoIP
Anchor link toAsegúrate de que el pod PushwooshVoIP se incluya automáticamente a través del plugin. Si es necesario, verifícalo manualmente en tu Podfile:
pod 'PushwooshVoIP'Este pod es necesario para soportar las notificaciones VoIP basadas en PushKit y el manejo de llamadas a nivel de 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. Configura el código de la aplicación VoIP (si usas tanto VoIP como notificaciones push regulares)
Anchor link toSi tu aplicación utiliza tanto notificaciones push estándar como VoIP, debes establecer explícitamente el código de la aplicación VoIP antes de la inicialización de VoIP:
pushwoosh.setVoipAppCode("XXXXX-XXXXX");Reemplaza "XXXXX-XXXXX" con el Código de Aplicación de Pushwoosh asignado a tu aplicación habilitada para VoIP en el Panel de Control de Pushwoosh.
5. Solicita permiso de llamada en Android
Anchor link toEn Android, necesitas solicitar a un usuario que conceda permiso para recibir llamadas. Para ello, llama al método requestCallPermission(). Esto debe hacerse antes de registrar un dispositivo.
pushwoosh.requestCallPermission();6. Inicializa los parámetros de VoIP
Anchor link toLlama al siguiente método para inicializar la funcionalidad de VoIP:
PushNotification.prototype.initializeVoIPParameters = function(supportsVideo, ringtoneSound, handleTypes, success, error) { if (typeof handleTypes === "function") { error = ringtoneSound; success = supportsVideo; handleTypes = undefined; ringtoneSound = undefined; supportsVideo = undefined; }
exec(success, error, "PushNotification", "initializeVoIPParameters", [ !!supportsVideo, ringtoneSound || "", handleTypes != null ? Number(handleTypes) : 1 ]);};Parámetros
Anchor link tosupportsVideo–trueofalsedependiendo de si tu aplicación soporta videollamadasringtoneSound– nombre del archivo de tono de llamada personalizado (p. ej."incoming.caf"), o una cadena vacía para el predeterminadohandleTypes– máscara de bits numérica para los tipos de manejo de llamadas (1para número de teléfono,2para correo electrónico, etc.)
7. Callbacks y métodos VoIP disponibles
Anchor link toEl 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 iOS
Estos pueden ser enganchados usando el objeto PushNotification de Cordova, permitiéndote controlar y responder a los cambios de estado de la llamada VoIP.