What problem does it solve?
Provides clear, production-minded guidance to integrate VoIP calling with the iOS system UI so incoming and outgoing calls are reliably reported, managed, and presented by CallKit while coordinating PushKit notifications and audio sessions.
Core Features & Use Cases
- Configure and retain a single CXProvider and CXCallController for app lifetime.
- Report incoming calls from VoIP pushes and implement CXProviderDelegate to handle answer, end, hold, and mute actions.
- Start outgoing calls via CXStartCallAction and report connecting/connected timestamps.
- Register and refresh VoIP tokens with PKPushRegistry and forward them to your server.
- Coordinate AVAudioSession activation/deactivation with provider callbacks and avoid starting audio before activation.
- Implement Call Directory extensions for caller ID and blocking with incremental updates.
- Includes a review checklist and common mistakes to prevent app termination, missed pushes, and audio glitches.
Quick Start
Report an incoming VoIP push by sending the push payload to your call manager so it generates a UUID, builds a CXCallUpdate with the caller handle and localized name, and calls reportNewIncomingCall before the PushKit handler completes.