[iOS 13 Beta 2] PushKit notifications do not get delivered while the app is in the background

Our messaging application with VoIP feature build with Xcode 11 beta 2 and running iOS 13 beta 2 stoped receiving notifications over PushKit while the app is in the background or not runnig. At the same time notifications get delivered fine when the app is in the foreground.


The issue with notifications not delivered to a backgrounded app appears to be the system issue as they get delivered to the phone but not passed to the app. The fact that a notifction gets delivered to the phone can be conformed with apsd process logs which appears as follows in our case


: Received message for enabled topic 'com.MyAppName.voip' onInterface: NonCellular with payload '{
    aps =     {
         ...
}' with priority (null) for device token: NO


This is a recent regression in the beta 2, since we could not reproduce it with beta 1.

Replies

Hi Gualtier Malde,


As per documentation, "Repeatedly failing to report calls may prevent your app from receiving any more incoming call notifications." so in this case ,

1) How can we find out wether my app stop receiving any more incoming call notifications? is this data will present anywhere in console?

2) How can we do that work again?


One of my application stop receiving the voip notification from last week.Now i have updated my code base as per the documentation but still i am not getting any Voip notification.

did you find any solution for that.

Hi @rsekar1094, did you find any solution for this?

Hi @mungbeanshave you got solution or work find any around for this problem. We are facing same issue with our chatting app where silent push don't seems to be a solution. Because main problem with silent push is that it stop working if user or system suspend the app.

With Xcode 11 , VoIP apps stops working in background.

Call Details is ususally carried in SDP ( Where the application actually decides to accept the Invite or Reject as Media attributes may not match).

Showing CallKit Incoming Ghost call, would lead end user to a terrible experince of app having support of Native UI (callKit). As call can be rejected by Sip Stack for any other reason when SDP is received.

So Showing CallKit Incoming call UI everytime is just not acceptable for VoIP apps.

I expect Apple to revise this feature as per VoIP app behaviour/working.

Hi Team, Any solution for this issue, we are also facing same issue.

Was anyone able to find a reasonable solution to this issue after this much passed time?

In general the VoIP implementation contains the following steps:

  1. Adding a VoIP capability
  2. Register voip-Pushes:
    private func registerForVoIPPushes() {
        voipRegistry = PKPushRegistry(queue: nil)
        voipRegistry?.delegate = self
        voipRegistry?.desiredPushTypes = [.voIP]
    }
  1. Implementation of UNUserNotificationCenterDelegate
    func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void)
  1. Offcourse server side correct implementation

5. And the most often issue: Once the app got voIP notification and not reported it to CXProvider object it won't get notifications anymore until you reinstall it. So, be sure of reporting every voIP you get.