I install the APNS profile in my device and find an interesting thing on Skype. Skype seems use VoIP Pushed to send an incoming call push and send a cancel incoming call push.
StartRing
<APSCourier: 0x10f006b50>: Received message for enabled topic 'com.skype.skype.voip' onInterface: NonCellular with payload '{
data = {
callId = "c598173b-df7d-45d3-a55e-2189e925d3c3";
callerId = "live:ea8284b6bd6f5a73";
convoId = "live:ea8284b6bd6f5a73";
cv = "FAQOTTnKxEu9h3uB.2";
displayName = "*";
eventType = 107;
participantId = "a6559d1b-eefb-4f1d-b6a4-d1bd033759a6";
pnhTime = "2020-12-23T03:19:03.1157560Z";
recipientId = "*";
servicePayload = {
};
videoCall = false;
};
}' with priority 10 for device token: NO
StopRing:
<APSCourier: 0x10f006b50>: Received message for enabled topic 'com.skype.skype.voip' onInterface: NonCellular with payload '{
data = {
callId = "c598173b-df7d-45d3-a55e-2189e925d3c3";
callerMri = "8:live:ea8284b6bd6f5a73";
conversationId = "live:ea8284b6bd6f5a73";
cv = "oqCcnoRdo0KzXnD2.2";
eventType = 110;
participantId = "a6559d1b-eefb-4f1d-b6a4-d1bd033759a6";
pnhTime = "2020-12-23T03:19:47.5174961Z";
reason = NoAnswerCallerCancelled;
recipientId = "live:rcqa001";
};
}' with priority 10 for device token: NO
That's weird. Because it's impossible to report incoming call for the stopring. How can Skype manage to escape the punishment? Do they have the something like "com.apple.developer.pushkit.unrestricted-voip"? Can someone help to answer this?
On iOS 13.0 and later, if you fail to report a call to CallKit, the system will terminate your app. Repeatedly failing to report calls may cause the system to stop delivering any more VoIP push notifications to your app. If you want to initiate a VoIP call without using CallKit, register for push notifications using the User Notifications framework instead of PushKit. For more information, see User Notifications.