Passer au contenu principal

Aperçu

OneSignal prend en charge l’envoi de notifications VoIP sur les plateformes Android et iOS. Cependant, le SDK OneSignal ne prend actuellement pas en charge l’enregistrement de jetons VoIP. Ce guide explique comment configurer manuellement les notifications VoIP à l’aide de l’API et de la configuration de plateforme de OneSignal.

Configuration VoIP Android

Contrairement à iOS, Android n’utilise pas de type « VoIP push » dédié. Vous pouvez obtenir un comportement similaire à VoIP en utilisant des notifications push contenant uniquement des données pour démarrer une Activity ou présenter une interface utilisateur personnalisée. Si vous souhaitez lancer une interface utilisateur native (par ex., écran d’appel entrant), utilisez le NotificationExtenderService d’Android pour remplacer le comportement de notification. Pour plus de conseils :

Configuration VoIP iOS

1

Ajouter PushKit à votre application

Utilisez l’API PushKit d’Apple pour enregistrer et recevoir un jeton VoIP. Consultez les bonnes pratiques VoIP d’Apple pour des conseils d’implémentation.
2

Créer une nouvelle application OneSignal pour les utilisateurs VoIP

Vous devez maintenir deux applications OneSignal distinctes :
  • Application Push principale : Pour les notifications push standard
  • Application VoIP : Pour les notifications spécifiques à VoIP
Assurez-vous de télécharger un certificat VoIP Services (.p12) pour l’application VoIP, en utilisant le même identifiant de bundle que votre application principale.

p12 dans Trousseau d'accès

Capture d'écran du certificat VoIP

3

Enregistrer l'appareil avec le jeton VoIP

Utilisez l’API Create User pour enregistrer le jeton VoIP avec votre application OneSignal dédiée à VoIP.Remarque : Si vous enregistrez un appareil dans un environnement de développement/sandbox, incluez la propriété "test_type": 1. L’omettre peut provoquer des erreurs "Mismatched Subscription Environment" ou des échecs de notification.
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
    }
  ]
}
'
Pour mettre à jour le jeton ultérieurement, utilisez l’API Update Subscription.
4

Envoyer des notifications VoIP

Utilisez l’API Create Notification et incluez les paramètres suivants :
  • "apns_push_type_override": "voip"
  • Le app_id de votre application 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

FAQ

Non, les livraisons confirmées ne sont pas suivies pour les pushs VoIP. Elles s’appuient sur l’extension de service de notification, qui ne se déclenche pas pour les notifications VoIP.À la place, suivez la réception via l’événement iOS PushKit natif :
pushRegistry(_:didReceiveIncomingPushWith:for:completion:)
Cet événement fait partie de la cible de votre application principale et ne nécessite pas d’extension séparée. En savoir plus dans la documentation VoIP d’Apple.