Ana içeriğe atla

Genel Bakış

OneSignal, hem Android hem de iOS platformlarında VoIP bildirimleri göndermeyi destekler. Ancak, OneSignal SDK şu anda VoIP token kaydını desteklememektedir. Bu kılavuz, OneSignal’in API’si ve platform kurulumu kullanarak VoIP bildirimlerinin manuel olarak nasıl yapılandırılacağını açıklar.

Android VoIP kurulumu

iOS’tan farklı olarak, Android özel bir “VoIP push” türü kullanmaz. Bir Activity başlatmak veya özel UI sunmak için yalnızca veri içeren push bildirimleri kullanarak VoIP benzeri davranış elde edebilirsiniz. Yerel bir UI başlatmak istiyorsanız (örneğin, gelen arama ekranı), bildirim davranışını geçersiz kılmak için Android’in NotificationExtenderService’ini kullanın. Daha fazla rehberlik için:

iOS VoIP kurulumu

1

Uygulamanıza PushKit ekleyin

Bir VoIP token’ı kaydetmek ve almak için Apple’ın PushKit API’sini kullanın. Uygulama ipuçları için Apple’ın VoIP En İyi Uygulamaları’na bakın.
2

VoIP kullanıcıları için yeni bir OneSignal uygulaması oluşturun

İki ayrı OneSignal uygulaması tutmalısınız:
  • Ana Push Uygulaması: Standart push bildirimleri için
  • VoIP Uygulaması: VoIP’e özgü bildirimler için
Ana uygulamanızla aynı bundle ID’yi kullanarak, VoIP uygulaması için bir VoIP Services Certificate (.p12) yüklediğinizden emin olun.

Keychain Access'te p12

VoIP sertifikası ekran görüntüsü

3

Cihazı VoIP token ile kaydedin

VoIP token’ı VoIP’e ayrılmış OneSignal uygulamanıza kaydetmek için Create User API’sini kullanın.Not: Bir cihazı geliştirme/sandbox ortamında kaydediyorsanız, "test_type": 1 özelliğini ekleyin. Bunu atlamak "Mismatched Subscription Environment" hatasına veya bildirim hatalarına neden olabilir.
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
    }
  ]
}
'
Token’ı daha sonra güncellemek için Update Subscription API’sini kullanın.
4

VoIP bildirimleri gönderin

Create Notification API’sini kullanın ve aşağıdaki parametreleri ekleyin:
  • "apns_push_type_override": "voip"
  • VoIP uygulamanızın app_id’si
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

Hayır, Onaylanmış Teslimatlar VoIP push’ları için izlenmez. Bunlar, VoIP bildirimleri için tetiklenmeyen Notification Service Extension’a dayanır.Bunun yerine, yerel iOS PushKit olayı üzerinden alındıyı izleyin:
pushRegistry(_:didReceiveIncomingPushWith:for:completion:)
Bu olay, ana uygulama hedefinin bir parçasıdır ve ayrı bir extension gerektirmez. Apple’ın VoIP belgelerinde daha fazla bilgi edinin.