CallKit - when is reportNewIncommingCall() used versus reportNewIncommingVoIPPushPayload()?

I'm confused by when CXProvider:reportNewIncommingVoIPPushPayload() is intended to be used versus CXProvider:reportNewIncommingCall().

All the iOS tutorials about VoIP push talk about sending a voip push to the app and the app calling CXProvider:reportNewIncommingCall() and then proceeding to deal with the VoIP call.

However in this Apple documentation https://developer.apple.com/documentation/callkit/sending_end-to-end_encrypted_voip_calls

It talks about sending a regular push, not a voip push, which is intercepted by a notification service extension, and the extension calling CXProvider:reportNewIncommingVoiPPushPayload().

I'm confused - when there's an incoming VoIP call should a voip push be sent to the app and reportNewIncommingCall() called or a regular push sent to the notification extension and reportNewIncommingVoiPPushPayload() called?

CallKit - when is reportNewIncommingCall() used versus reportNewIncommingVoIPPushPayload()?
 
 
Q