VoIP notification does not work

I added the VoIP certificates for Calls.


I see the push token is added properly via SendBirdCall.registerVoIPPush method.

When I make a direct call, I see it on Direct calls page.

But nothing happens on callee’s device. I mean didReceiveIncomingPushWith does not work.

What did I miss?

I see the same issue on the sample project.

But the sample app did work on my devices.

Hello @jeremyfall,
Could you please provide a snippet of your code that implements PKPushRegistryDelegate and handles received push notifications?

@mininny Please check this file.
AppDelegate+VoIPPush.swift (2.2 KB)

@jeremyfall Are you running the Quickstart sample, or are you adding this file to your own project?

@mininny Both. But I see the same issue.

@mininny Please check this screenshot.


Everything looks good but didReceiveIncomingPushWith does not work.

Are you saying that this error occurs in the quickstart sample as well? Or just when you integrate the code from the quickstart sample into your own application?

@mininny Yes, this error occurs in the quickstart sample as well.

Is the bundle ID correctly configured? The bundle id of the project should match the certificate’s bundle id.

@mininny Yes. If it is not correct, we don’t see the call log on the dashboard.
But I see all the call logs that I made by clicking the voice call button in the app.

@mininny Btw, we can use Apple Push Notification service SSL (Sandbox & Production) for VoIP, right?

@jeremyfall Yes you can use Apple Push Notification service SSL for VoIP. The Call logs work regardless of the correct integration of the push notifications, so you might want to double check your bundle ids and certificates.

@mininny Okay, but the users (caller and callee) are added to my Sendbird app and they have the valid push tokens.
Please check this screenshot.

Could you please provide the code in AppDelegate. application(_:didFinishLaunchingWithOptions:)?

@mininny ^^

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // MARK: SendBirdCall.configure(appId:)
        // See [here](https://github.com/sendbird/quickstart-calls-ios#creating-a-sendbird-application) for the application ID.
        // If you want to sign in with QR code, don't configure your app ID in code.
        
        // Configure your app id here to designate a specific app id for the application. 
         let appId = Constants.SendBird.appId
         SendBirdCall.configure(appId: appId)
         UserDefaults.standard.designatedAppId = appId

        self.autoSignIn { error in
            if error == nil { return }
            // Show SignIn controller when failed to auto sign in
            self.window?.rootViewController?.present(UIStoryboard.signController(), animated: true, completion: nil)
        }
        
        // To process incoming call, you need to add `SendBirdCallDelegate` and implement its protocol methods.
        SendBirdCall.addDelegate(self, identifier: "com.sendbird.calls.quickstart.delegate")
        
        // To receive incoming call, you need to register VoIP push token
        self.voipRegistration()
        self.addDirectCallSounds()
        
        return true
    }

FYI, I’m testing this on iOS 15 beta.