Post

Replies

Boosts

Views

Activity

Reply to iOS 13 PushKit VoIP restrictions breaking SIP VoIP apps
Hi, No answers but some more information. We're experiencing all the same issues. Besides the risk of ghost calls we're finding that limiting the PushKit notifications is preventing us from implementing features of some other well known messaging/voip apps; exactly as others have mentioned. One feature in particular for us kicked this off. How to mute a group chat/channel and not show any notifications. Yes we could have the server do it but it seemed simpler to have the client do it. So we started investigating how other apps did this. It lead to something interesting. WhatsApp is a great example of a feature-rich messaging app and we always start these conversations with "what does WhatsApp do". When we looked we saw that it is using PushKit notifications in a seemingly unrestricted fashion. What does that mean? It appears to be using PushKit notifications for sending messages. Something that I'd have considered impossible given the restrictions in place. So we thought maybe it's still using Xcode10? We find that highly unlikely given the looming cut-off date. So a bit of digging (not that much when you consider the link and the question I asked) https://stackoverflow.com/questions/60815763/how-does-the-whatsapp-web-client-still-work-with-the-latest-ios-update-sdk-vers This specific entitlement seems to be the reason that they are allowed to not report an incoming call: com.apple.developer.pushkit.unrestricted-voip I can't find any documentation regarding this entitlement, so I'm pretty sure they have been given a special permission by Apple. So we started looking for this entitlement. Lookup source-code-walkthrough-of-telegram-ios-part-3-other-foundations-66ace05954a4 (the editor is refusing to let me post the URL) As any abuse could cause a significant battery drain problem, Apple started to require apps to invoke CallKit after receiving VoIP notifications since the iOS SDK 13. But Telegram-iOS seems to survive from the new rule as it has got a special entitlement from Apple: com.apple.developer.pushkit.unrestricted-voip. The same undocumented entitlement can also be found in SignalApp. So there does appear to be an entitlement available that provides seemingly unrestricted use of PushKit. I completely understand why Apple wanted to restrict this feature but they should have vetted the apps and allowed access to trustworthy apps in a fashion similar to Critical Alerts. I'd be very happy to explain why we needed unrestricted voip and be prepared to justify it every so often. I'm slightly annoyed, but not surprised, that some apps seem to receive more access to the platform. So I suggest you start asking your nearest Apple dealer about com.apple.developer.pushkit.unrestricted-voip. Regards
Jun ’20