1. CallKit Overview

    1.1 What CallKit is

    1.2 Why apps use CallKit

    1.3 System call UI vs custom UI

  2. Core Components

    2.1 CXProvider

    2.2 CXProviderConfiguration

    2.3 CXCallController

    2.4 CXCallUpdate

  3. Incoming Calls

    3.1 Reporting an incoming call

    3.2 Accept call action

    3.3 Decline call action

  4. Outgoing Calls

    4.1 Starting an outgoing call

    4.2 CXStartCallAction

    4.3 CXTransaction

  5. Call Lifecycle

    5.1 Call started

    5.2 Call connected

    5.3 Call ended

  6. Audio Handling

    6.1 AVAudioSession configuration

    6.2 Activating audio session

    6.3 Deactivating audio session