- Apple PushKit kullanarak uygulamanızda VoIP tokenlarını kaydetme
- VoIP Services Certificate ile ayrı bir OneSignal uygulaması oluşturma
- OneSignal REST API aracılığıyla tokenları kaydetme ve push gönderme
Platform farkları
| Platform | VoIP push destekleniyor mu? | Nasıl çalışır |
|---|---|---|
| iOS | Yes | Apple PushKit ve bir VoIP APNs sertifikası kullanır |
| Android | No | Arama tarzı davranışı simüle etmek için yalnızca veri pushleri kullanır |
iOS: VoIP push bildirimleri gönderme
iOS’ta VoIP bildirimleri Apple PushKit kullanır ve standart push bildirimlerinden farklı özel teslimat kurallarına sahiptir. Apple VoIP pushlerini farklı şekilde ele aldığından, OneSignal’ın VoIP için ayrı bir uygulama yapılandırması gerekir.PushKit kullanarak bir VoIP token kaydetme
VoIP bildirimleri için kaydolmak ve bir VoIP token almak üzere Apple’ın PushKit framework’ünü kullanın.
Apple kaynakları:
- Uygulamanızda PushKit’i uygulayın
- Apple token’ı yenilerken VoIP tokenını saklayın ve güncelleyin
- Apple’ın VoIP politikalarını yakından takip edin
Örnek: PushKit delegate uygulaması
Örnek: PushKit delegate uygulaması
Bu standart Apple PushKit kodudur. OneSignal bir PushKit SDK’sı sunmaz — tokenı kendiniz kaydedip 4. Adımda OneSignal’a iletirsiniz.
VoIP için ayrı bir OneSignal uygulaması oluşturma
Apple VoIP pushleri, standart push bildirimlerinden farklı bir sertifika türü gerektirir. Tek bir OneSignal uygulaması yalnızca bir sertifika türü kullanabildiğinden, iki ayrı OneSignal uygulaması oluşturmanız gerekir:
- Ana Push Uygulaması: Standart push bildirimleri için APNs sertifikanızı kullanır
- VoIP Push Uygulaması: Yalnızca VoIP bildirimleri için VoIP Services Certificate kullanır
Bundle ID (ör.
com.yourcompany.appname), Xcode’da hedef uygulamanızın General sekmesinde bulunur.VoIP Services Certificate yükleme
VoIP OneSignal uygulamanıza bir VoIP Services Certificate (.p12) yükleyin. Bu, normal bildirimler için kullandığınız standart APNs push sertifikasından farklı bir sertifika türüdür.Oluşturmak için:

- Apple Developer Portal adresine gidin
- VoIP Services Certificate seçeneğini belirleyin
- Sertifikayı oluşturmak ve indirmek için yönergeleri izleyin
- Keychain Access’te açıp
.p12dosyası olarak dışa aktarın .p12dosyasını VoIP OneSignal uygulamanızın iOS ayarlarına yükleyin


VoIP tokenını OneSignal'a kaydetme
VoIP tokenını VoIP OneSignal uygulamanıza kaydetmek için Create User API’sini kullanın.Tokenı daha sonra güncellemek için Update Subscription API’sini kullanın.
Geçerli bir VoIP token, 64 karakterli küçük harfli bir onaltılık dizedir (ör.
a1b2c3d4e5f6...). PushKit iOS Simülatör’de çalışmaz — geçerli bir token elde etmek için gerçek bir cihaz kullanmanız gerekir.VoIP bildirimleri gönderme
Create Notification API’sini aşağıdaki parametrelerle kullanın:
"apns_push_type_override": "voip"— Apple’a bunun bir VoIP pushu olduğunu bildirirapp_id— VoIP uygulama kimliğinizinclude_subscription_ids— kaydettiğiniz VoIP abonelik kimliğicontentsveyacontent_availablealanlarından biri zorunludur
VoIP kurulumunuzu doğrulama
iOS VoIP entegrasyonunuz şu durumlarda doğru çalışıyordur:
- VoIP token, VoIP uygulamanızda bir iOS push aboneliği olarak görünür
- Bir VoIP push, uygulamanızda
pushRegistry(_:didReceiveIncomingPushWith:for:completion:)metodunu tetikler - Uygulama sonlandırılmış veya arka planda olsa bile uyanır
Android: VoIP tarzı davranışı simüle etme
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ü
- 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
Android kurulumu OneSignal’a özgü değildir. OneSignal yalnızca push yükünü iletir; uygulamanız arama davranışını işler.
SSS
Onaylanmış teslimatlar VoIP ile çalışır mı?
Hayır. Confirmed Deliveries, VoIP pushlerinde takip edilmez. Onaylanmış Teslimatlar, VoIP bildirimleri için tetiklenmeyen Notification Service Extension’a dayanır. Bunun yerine, alındı bilgisini yerel iOS PushKit olayı aracılığıyla takip edin:VoIP bildirimlerini OneSignal kontrol panelinden gönderebilir miyim?
Hayır. VoIP bildirimleri,"apns_push_type_override": "voip" parametresiyle Create Notification API’si aracılığıyla gönderilmelidir. Kontrol paneli bu parametreyi desteklemez.
VoIP pushum neden sessizce başarısız oluyor?
VoIP pushleri, OneSignal API’sinden herhangi bir hata almadan başarısız olabilir. Bu kontrol listesini takip edin:- Sandbox/geliştirme derlemesi mi kullanıyorsunuz? Create User API’si aracılığıyla token kaydederken
"test_type": 1eklemeniz gerekir. Bu alan olmadan token üretim olarak kaydedilir, Apple pushu reddeder ve sessizce başarısız olur. - Doğru sertifikayı yüklediniz mi? VoIP OneSignal uygulaması, standart bir APNs push sertifikası değil, VoIP Services Certificate (.p12) kullanmalıdır. Her ikisi de Keychain Access’te benzer görünür — sertifika adının “VoIP Services” ile başladığını doğrulayın.
- Doğru OneSignal uygulamasına mı gönderiyorsunuz? Gönderme isteğinizdeki
app_id, ana push uygulamanız değil VoIP uygulamanız olmalıdır.REST API Keyde VoIP uygulamasından alınmış olmalıdır. - VoIP token geçerli mi? Tokenlar, uygulama yeniden yüklendiğinde veya cihaz sıfırlandığında sona erer. Token’ın 64 karakterli küçük harfli bir onaltılık dize olduğunu ve yakın zamanda kaydedildiğini doğrulayın.
- Uygulamanız
reportNewIncomingVoIPPushPayloadçağırıyor mu? iOS 13’ten itibaren Apple, VoIP pushu alan ancak CallKit’e bir arama bildirmeyen uygulamaları sonlandırır. Bu bir Apple gereksinimi olup OneSignal’a özgü bir kısıtlama değildir.
İlgili sayfalar
Create message API
REST API kullanarak push bildirimlerini programatik olarak gönderin.
Onaylanmış teslimatlar
Desteklenen platformlarda push bildirim teslimat onayını takip edin.
Servis uzantıları
Notification Service Extension ile bildirim işlemeyi özelleştirin.
Create User API
OneSignal API ile kullanıcıları ve abonelikleri kaydedin.