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.

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. Añade la dependencia CocoaPod PushwooshVoIP

Anchor link to

Asegú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 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. Configura el código de la aplicación VoIP (si usas tanto VoIP como notificaciones push regulares)

Anchor link to

Si 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 to

En 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 to

Llama 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 to
  • supportsVideotrue o false dependiendo de si tu aplicación soporta videollamadas
  • ringtoneSound – nombre del archivo de tono de llamada personalizado (p. ej. "incoming.caf"), o una cadena vacía para el predeterminado
  • handleTypes – máscara de bits numérica para los tipos de manejo de llamadas (1 para número de teléfono, 2 para correo electrónico, etc.)

7. Callbacks y métodos VoIP disponibles

Anchor link to

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

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

Enlaces relacionados

Anchor link to