Ana içeriğe atla

Genel Bakış

VoIP push bildirimleri Apple tarafından standart push bildirimlerinden farklı şekilde işlenir. Bu platform kısıtlamaları nedeniyle, OneSignal VoIP bildirimleri göndermeyi destekler ancak sizin için VoIP token kaydını yönetmez. Şunları yapmalısınız:
  • Apple PushKit kullanarak VoIP tokenlarını kendiniz kaydedin
  • VoIP’e özel bir APNs sertifikası yükleyin
  • Tokenları kaydetmek ve bildirim göndermek için OneSignal API’sini kullanın
OneSignal VoIP (PushKit) tokenlarını otomatik olarak kaydetmez veya yenilemez. VoIP tokenlarını OneSignal ile API kullanarak manuel olarak kaydetmelisiniz.

Platform farkları bir bakışta

PlatformVoIP push destekleniyor mu?Nasıl çalışır
iOS✅ EvetApple PushKit ve bir VoIP APNs sertifikası kullanır
Android❌ HayırArama tarzı davranışı simüle etmek için yalnızca veri pushleri kullanır

Platformlar arası bir arama uygulaması oluşturuyorsanız, her platform için farklı yaklaşımlar kullanacaksınız.

Android: VoIP tarzı davranışı simüle etme (gerçek VoIP değil)

Android, VoIP push bildirimlerini desteklemez. Apple PushKit’e eşdeğer bir özellik yoktur. Bunun yerine, Android arama uygulamaları şunları kullanarak VoIP davranışını simüle eder:
  • Yalnızca veri push bildirimleri
  • Ön plan servisleri
  • Özel arama tarzı kullanıcı arayüzü
Bunu başarmak için OneSignal’ın normal Android push desteğini yerel Android API’leriyle birlikte kullanabilirsiniz. Önerilen yaklaşım:
  • Yalnızca veri bildirimleri gönderin
  • Bunları uygulamanızda şu şekilde işleyin:
    • Bir ön plan servisi başlatın
    • Bir arama kullanıcı arayüzü aktivitesi başlatın
    • Özel bir gelen arama bildirimi görüntüleyin
Bildirim işlemeyi engellemek ve tam olarak kontrol etmek istiyorsanız, Android’in Notification Service Extension özelliğini kullanın. Yararlı kaynaklar:
Android kurulumu OneSignal’a özgü değildir. OneSignal yalnızca push yükünü iletir; uygulamanız arama davranışını işler.

iOS: Gerçek VoIP push bildirimleri gönderme

iOS’ta VoIP bildirimleri Apple PushKit kullanır ve standart push bildirimlerinden farklı özel teslimat kurallarına sahiptir. iOS VoIP’nin OneSignal ile nasıl çalıştığı: iOS VoIP bildirimleri için:
  1. Uygulamanız PushKit kullanarak bir VoIP token kaydeder
  2. OneSignal’a bir VoIP Services APNs sertifikası yüklersiniz
  3. API kullanarak VoIP tokenını OneSignal ile kaydedersiniz
  4. apns_push_type_override: “voip” kullanarak VoIP pushleri gönderirsiniz
Apple, VoIP pushlerini farklı şekilde ele aldığından, OneSignal’ın da bunları ayrı bir uygulama yapılandırması olarak ele alması gerekir.

1. PushKit kullanarak bir VoIP token kaydetme

VoIP bildirimleri için kaydolmak ve bir VoIP token almak için Apple’ın PushKit framework’ünü kullanın.
  • Uygulamanızda PushKit’i uygulayın
  • Apple onu değiştirdikçe VoIP tokenını saklayın ve yenileyin
  • Apple’ın VoIP politikalarını yakından takip edin
Apple kaynakları:

2. VoIP kullanıcıları için yeni bir OneSignal uygulaması oluşturma

İki ayrı OneSignal uygulaması tutmalısınız:
  • Ana Push Uygulaması: Standart push bildirimleri için
  • VoIP Uygulaması: Yalnızca VoIP bildirimleri için
Her iki uygulamanın da:
  • Aynı iOS bundle ID’sini kullanması
  • Aynı yerel iOS uygulamasıyla ilişkilendirilmesi gerekir

3. VoIP Services Certificate yükleme

VoIP OneSignal uygulamanızda:
  • Bir VoIP Services Certificate (.p12) yükleyin
  • Standart APNs sertifikanızı yeniden kullanmayın
VoIP uygulaması için ana uygulamanızla aynı bundle ID’yi kullanarak bir VoIP Services Certificate (.p12) yüklemelisiniz.

Keychain Access'te VoIP sertifikası

OneSignal kontrol panelinde yüklenen VoIP sertifikası

4. VoIP tokenını OneSignal ile kaydetme

VoIP tokenını VoIP OneSignal uygulamanıza kaydetmek için Create User API’sini kullanın.
VoIP token bir geliştirme veya sandbox yapısından geliyorsa, "test_type": 1 özelliğini eklemelisiniz.Bunu atlarsanız:
  • API çağrısı başarılı olabilir
  • Push sessizce başarısız olur
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 // üretimde çıkarın
    }
  ]
}
'
Tokenı daha sonra güncellemek için Update Subscription API’sini kullanın.

5. VoIP bildirimleri gönderme

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

6. VoIP kurulumunuzu doğrulama

iOS VoIP entegrasyonunuz şu durumlarda çalışıyordur:
  1. VoIP token, VoIP uygulamanızda bir iOS push aboneliği olarak görünür
  2. Bir VoIP push, pushRegistry(_:didReceiveIncomingPushWith:for:completion:) metodunu tetikler
  3. Uygulama sonlandırılmış veya arka planda olsa bile uyanır

SSS

Onaylanmış teslimatlar VoIP ile çalışır mı?

Hayır, Confirmed Deliveries VoIP pushleri için takip edilmez. VoIP bildirimleri için tetiklenmeyen Notification Service Extension’a dayanırlar. Bunun yerine, yerel iOS PushKit olayı aracılığıyla alındı bilgisini takip edin:
pushRegistry(_:didReceiveIncomingPushWith:for:completion:)
Bu olay, ana uygulama hedefinizin bir parçasıdır ve ayrı bir uzantı gerektirmez. Daha fazla bilgi için Apple’ın VoIP belgelerine bakın.