VoIP Pushes

This guide addresses sending VoIP push notifications

In iOS 8 Apple introduced PushKit, and VoIP pushes - a new type of push notifications. On top of the standard push functionality, a VoIP push allows the app to execute code before displaying the notification to the user.

IMPORTANT

You can only create a VoIP certificate in production mode, not development mode. Therefore, in Pushwoosh iOS app configuration you should always use Production gateway for VoIP certificates.

1. In your AppDelegate.h import PushKit framework, add PKPushRegistryDelegate protocol and create the PKPushRegistryproperty:

import PushKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, PKPushRegistryDelegate {

let voipRegistry: PKPushRegistry = PKPushRegistry(queue: DispatchQueue.main)

2. In - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {add:

// handling push on app start
PushNotificationManager.push().handlePushReceived(launchOptions)

// make sure we count app open in Pushwoosh stats
PushNotificationManager.push().sendAppOpen()

// register for push notifications!
PushNotificationManager.push().registerForPushNotifications()

voipRegistry.delegate = self
voipRegistry.desiredPushTypes = [PKPushType.voIP]

3. Add the following methods to your AppDelegate class:

func pushRegistry(_ registry: PKPushRegistry, didInvalidatePushTokenForType type: PKPushType) {
	PushNotificationManager.push().unregisterForPushNotifications()
}

func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, forType type: PKPushType) {
	PushNotificationManager.push().handlePushReceived(payload.dictionaryPayload)
}

func pushRegistry(_ registry: PKPushRegistry, didUpdate pushCredentials: PKPushCredentials, forType: PKPushType) {
	PushNotificationManager.push().handlePushRegistration(pushCredentials.token)
}

4. Enable Voice over IP in Background Modes:

5. Upload your VoIP certificate to Pushwoosh Control Panel according to Configuration Guide, and choose the Production gateway.

That’s it!

As opposed to the standard push, VoIP pushes do not play notification sounds, or display alerts. However, they wake up your app in the background, which allows you to schedule a local notification.

Share your feedback with us

Your feedback helps us create a better experience, so we would love to hear from you if you have any issues during the SDK integration process. If you face any difficulties, please do not hesitate to share your thoughts with us via this form.

Last updated

#1600: moved in-app statistics to in-apps, added a link to statistics

Change request updated