- L’enregistrement des jetons VoIP dans votre application avec Apple PushKit
- La création d’une application OneSignal dédiée avec un certificat VoIP Services
- L’enregistrement des jetons et l’envoi des pushs via l’API REST OneSignal
Différences entre plateformes
| Plateforme | Push VoIP supporté ? | Fonctionnement |
|---|---|---|
| iOS | Yes | Utilise Apple PushKit et un certificat APNs VoIP |
| Android | No | Utilise des pushs de données uniquement pour simuler un comportement d’appel |
iOS : envoyer des notifications push VoIP
Sur iOS, les notifications VoIP utilisent Apple PushKit et suivent des règles de livraison spéciales qui diffèrent des notifications push standard. Parce qu’Apple traite les pushs VoIP différemment, OneSignal nécessite une configuration d’application distincte pour VoIP.Enregistrer un jeton VoIP avec PushKit
Utilisez le framework PushKit d’Apple pour vous enregistrer aux notifications VoIP et recevoir un jeton VoIP.
Ressources Apple :
- Implémentez PushKit dans votre application
- Stockez et rafraîchissez le jeton VoIP lorsqu’Apple le fait tourner
- Suivez de près les politiques VoIP d’Apple
Exemple : implémentation du délégué PushKit
Exemple : implémentation du délégué PushKit
Il s’agit de code Apple PushKit standard. OneSignal ne fournit pas de SDK PushKit — vous enregistrez le jeton vous-même et le transmettez à OneSignal à l’étape 4.
Créer une application OneSignal distincte pour VoIP
Les pushs VoIP Apple nécessitent un type de certificat différent des notifications push standard. Une seule application OneSignal ne peut utiliser qu’un seul type de certificat, vous devez donc créer deux applications OneSignal distinctes :
- Application Push Principale : Utilise votre certificat APNs pour les notifications push standard
- Application Push VoIP : Utilise un certificat VoIP Services pour les notifications VoIP uniquement
L’ID de bundle (par ex.
com.yourcompany.appname) se trouve dans Xcode sous l’onglet General de votre cible.Télécharger un certificat VoIP Services
Dans votre application VoIP OneSignal, téléchargez un certificat VoIP Services (.p12). Il s’agit d’un type de certificat différent du certificat push APNs standard que vous utilisez pour les notifications ordinaires.Pour en créer un :

- Accédez au Portail Développeur Apple
- Sélectionnez VoIP Services Certificate
- Suivez les instructions pour générer et télécharger le certificat
- Ouvrez-le dans Trousseau d’accès et exportez-le en fichier
.p12 - Téléchargez le fichier
.p12dans les paramètres iOS de votre application VoIP OneSignal


Enregistrer le jeton VoIP avec OneSignal
Utilisez l’API Create User pour enregistrer le jeton VoIP avec votre application VoIP OneSignal.Pour mettre à jour le jeton ultérieurement, utilisez l’API Update Subscription.
Un jeton VoIP valide est une chaîne hexadécimale minuscule de 64 caractères (par ex.
a1b2c3d4e5f6...). PushKit ne fonctionne pas sur le simulateur iOS — vous devez utiliser un appareil réel pour obtenir un jeton valide.Envoyer des notifications VoIP
Utilisez l’API Create Notification avec les paramètres suivants :
"apns_push_type_override": "voip"— indique à Apple qu’il s’agit d’un push VoIPapp_id— l’ID de votre application VoIPinclude_subscription_ids— l’ID d’abonnement VoIP que vous avez enregistrécontentsoucontent_availableest requis
Vérifier votre configuration VoIP
Votre intégration VoIP iOS fonctionne correctement si :
- Le jeton VoIP apparaît comme un abonnement push iOS dans votre application VoIP
- Un push VoIP déclenche
pushRegistry(_:didReceiveIncomingPushWith:for:completion:)dans votre application - L’application se réveille même lorsqu’elle est terminée ou en arrière-plan
Android : simuler un comportement de type VoIP
Android ne prend pas en charge les notifications push VoIP. Il n’existe pas d’équivalent à Apple PushKit. Au lieu de cela, les applications d’appel Android simulent le comportement VoIP en utilisant :- Des notifications push de données uniquement
- Des services de premier plan
- Une interface utilisateur d’appel personnalisée
- Envoyer des notifications de données uniquement
- Les gérer dans votre application pour :
- Démarrer un service de premier plan
- Lancer une activité d’interface d’appel
- Afficher une notification d’appel entrant personnalisée
La configuration Android n’est pas spécifique à OneSignal. OneSignal ne fait que livrer la charge utile push ; votre application gère le comportement d’appel.
FAQ
Les livraisons confirmées fonctionnent-elles avec VoIP ?
Non. Les Livraisons Confirmées ne sont pas suivies pour les pushs VoIP. Les livraisons confirmées reposent sur l’Extension de Service de Notification, qui ne se déclenche pas pour les notifications VoIP. Au lieu de cela, suivez la réception via l’événement PushKit iOS natif :Puis-je envoyer des notifications VoIP depuis le tableau de bord OneSignal ?
Non. Les notifications VoIP doivent être envoyées via l’API Create Notification avec"apns_push_type_override": "voip". Le tableau de bord ne prend pas en charge ce paramètre.
Pourquoi mon push VoIP échoue-t-il silencieusement ?
Les pushs VoIP peuvent échouer sans aucune erreur de l’API OneSignal. Parcourez cette liste de vérification :- Utilisez-vous un build sandbox/développement ? Vous devez inclure
"test_type": 1lors de l’enregistrement du jeton via l’API Create User. Sans cela, le jeton s’enregistre comme production, Apple rejette le push et il échoue silencieusement. - Avez-vous téléchargé le bon certificat ? L’application VoIP OneSignal doit utiliser un certificat VoIP Services (.p12), pas un certificat push APNs standard. Les deux se ressemblent dans Trousseau d’accès — vérifiez que le nom du certificat commence par “VoIP Services”.
- Envoyez-vous vers la bonne application OneSignal ? Le
app_iddans votre requête d’envoi doit être votre application VoIP, pas votre application push principale. LaREST API Keydoit également provenir de l’application VoIP. - Le jeton VoIP est-il valide ? Les jetons expirent lors de la réinstallation de l’application ou de la restauration de l’appareil. Vérifiez que le jeton est une chaîne hexadécimale minuscule de 64 caractères et qu’il a été enregistré récemment.
- Votre application appelle-t-elle
reportNewIncomingVoIPPushPayload? Depuis iOS 13, Apple termine les applications qui reçoivent un push VoIP mais ne signalent pas un appel à CallKit. Il s’agit d’une exigence Apple, pas d’une limitation OneSignal.
Pages associées
API Create message
Envoyez des notifications push par programme en utilisant l’API REST.
Livraisons confirmées
Suivez la confirmation de livraison des notifications push sur les plateformes prises en charge.
Extensions de service
Personnalisez la gestion des notifications avec les Extensions de Service de Notification.
API Create User
Enregistrez des utilisateurs et des abonnements avec l’API OneSignal.