Saltar al contenido principal

Descripción general

OneSignal soporta el envío de notificaciones VoIP en plataformas Android e iOS. Sin embargo, el SDK de OneSignal actualmente no soporta el registro de token VoIP. Esta guía explica cómo configurar notificaciones VoIP manualmente usando la API de OneSignal y la configuración de plataforma.

Configuración VoIP para Android

A diferencia de iOS, Android no usa un tipo dedicado de “push VoIP”. Puedes lograr un comportamiento similar a VoIP usando notificaciones push solo de datos para iniciar una Activity o presentar una UI personalizada. Si quieres lanzar una UI nativa (ej., pantalla de llamada entrante), usa el NotificationExtenderService de Android para anular el comportamiento de notificación. Para más orientación:

Configuración VoIP para iOS

1

Agregar PushKit a tu aplicación

Usa la API PushKit de Apple para registrar y recibir un token VoIP. Consulta las Mejores prácticas VoIP de Apple para consejos de implementación.
2

Crear una nueva aplicación OneSignal para usuarios VoIP

Debes mantener dos aplicaciones OneSignal separadas:
  • App Push principal: Para notificaciones push estándar
  • App VoIP: Para notificaciones específicas de VoIP
Asegúrate de subir un Certificado VoIP Services (.p12) para la app VoIP, usando el mismo bundle ID que tu app principal.

p12 in Keychain Access

VoIP certificate screenshot

3

Registrar dispositivo con token VoIP

Usa la API Create User para registrar el token VoIP con tu aplicación OneSignal dedicada a VoIP.Nota: Si estás registrando un dispositivo en un entorno de desarrollo/sandbox, incluye la propiedad "test_type": 1. Omitirla puede causar errores de "Mismatched Subscription Environment" o fallas en las notificaciones.
curl --request POST \
     --url https://api.onesignal.com/apps/YOUR_VOIP_APP_ID/users \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "subscriptions": [
    {
      "type": "iOSPush",
      "token": "your-voip-token",
      "test_type": 1 // omit in production
    }
  ]
}
'
Para actualizar el token más adelante, usa la API Update Subscription.
4

Enviar notificaciones VoIP

Usa la API Create Notification e incluye los siguientes parámetros:
  • "apns_push_type_override": "voip"
  • El app_id de tu app VoIP
curl --include \
     --request POST \
     --header "Content-Type: application/json; charset=utf-8" \
     --header "Authorization: key YOUR_REST_API_KEY" \
     --data-binary '{
  "app_id": "YOUR_VOIP_APP_ID",
  "contents": {"en": "English Message"},
  "apns_push_type_override": "voip",
  "include_subscription_ids": ["YOUR_VOIP_SUBSCRIPTION_ID"]
}' \
https://api.onesignal.com/notifications

Preguntas frecuentes

No, las Entregas confirmadas no se rastrean para pushes VoIP. Dependen de la Notification Service Extension, que no se activa para notificaciones VoIP.En su lugar, rastrea la recepción a través del evento nativo PushKit de iOS:
pushRegistry(_:didReceiveIncomingPushWith:for:completion:)
Este evento es parte de tu target de app principal y no requiere una extensión separada. Aprende más en la documentación VoIP de Apple.