Apps use CallKit to integrate their communication experience with the native iOS telephony system so VoIP calls behave like real phone calls on the device.
Without CallKit, communication apps behave like normal apps:
CallKit allows VoIP apps to become part of the native calling ecosystem.
Apps can display the same incoming call screen used by the Phone app.
Example:
provider.reportNewIncomingCall(with: uuid, update: update)
This automatically triggers: