When such an event occurs, CXProvider creates a call update to notify the system. These are usually external events, such as an incoming call. Your app will use CXProvider to report any out-of-band notifications to the system. When working with CallKit, there are two primary classes you’ll interact with: CXProvider and CXCallController. The diagram below shows all the key players: In this section, you’ll get more familiar with the CallKit architecture. By adopting CallKit, your app will be able to: You’ll expand this class further throughout the tutorial.ĬallKit is a framework that aims to improve the VoIP experience by allowing apps to integrate with the native phone UI.
CallManager currently maintains the list of ongoing calls in the app and has methods for adding or removing calls.The class exposes properties for identifying calls (such as its UUID, or handle) as well as lifecycle callbacks indicating when the user starts, answers or ends a call. There are two main classes worth a look before moving on: Those files are mostly responsible for setting up the UI and handling user interactions. Currently the app won’t do much, but you’ll notice that there are several source files in the starter project.