iOS 13 Changes
In iOS 13, Apple has changed how VoIP notifications delivered via PushKit function. In order to prevent applications from using PushKit VoIP notifications to wake up their apps for non-VoIP related use cases, Apple is now requiring all incoming PushKit notifications be reported to CallKit as incoming calls immediately. Failure to do so will cause your app to be suspended and, if this occurs too much, eventually iOS will stop delivering PushKit notifications entirely.
Through our discussions with Apple on how this impacts Push-to-Talk applications they have provided us with the following solution. In order to properly function in the background the use case requires the use of VoIP notifications via PushKit. Due to this, Apple has created a non-public entitlement that can be requested on an app by app basis. This entitlement exempts your application from the new PushKit requirements and allows it to function as it did prior to iOS 13.
In order to be granted this entitlement you will need to open a developer support ticket with Apple via the Code Level Support section in their Apple Developer account (for more information see: https://developer.apple.com/support/technical/). We have already informed Apple that the same SDK in use in our application is used by other developers as a baseline indication of functionality. While it is not a requirement, it is encouraged to include a reference that your application uses the VoiceLayer SDK by name and link in your request for the entitlement. This entitlement was created specifically for Push-to-Talk applications so, while each request is reviewed closely, as long as the application is a Push-to-Talk application there shouldn't be any issues being granted the entitlement.