CXProvider is the CallKit object that represents your app to the iOS telephony system.
It is responsible for:
CXProvider is the system-facing side of your CallKit integration.
It allows iOS to communicate call lifecycle events back to your app.
iOS System Call UI
↓
CXProvider
↓
Your App
A provider is created using CXProviderConfiguration.
import CallKit
let configuration = CXProviderConfiguration()
configuration.supportsVideo = false
configuration.maximumCallGroups = 1
configuration.maximumCallsPerCallGroup = 1
configuration.supportedHandleTypes = [.phoneNumber]
let provider = CXProvider(configuration: configuration)
provider.setDelegate(self, queue: nil)
This tells CallKit: