← ClaudeAtlas

callkitlisted

Implement VoIP calling with CallKit and PushKit. Use when building incoming/outgoing call flows, registering for VoIP push notifications, configuring CXProvider and CXCallController, handling call actions, coordinating audio sessions, or creating Call Directory extensions for caller ID and call blocking.
thiennc-tesoglobal/ios-skills · ★ 3 · AI & Automation · score 66
Install: claude install-skill thiennc-tesoglobal/ios-skills
# CallKit Build VoIP calling features that integrate with the native iOS call UI using CallKit and PushKit. Covers incoming/outgoing call flows, VoIP push registration, audio session coordination, and call directory extensions. ## Contents - [Setup](#setup) - [Provider Configuration](#provider-configuration) - [Incoming Call Flow](#incoming-call-flow) - [Outgoing Call Flow](#outgoing-call-flow) - [PushKit VoIP Registration](#pushkit-voip-registration) - [Audio Session Coordination](#audio-session-coordination) - [Call Directory Extension and Manager](#call-directory-extension-and-manager) - [Common Mistakes](#common-mistakes) - [Review Checklist](#review-checklist) - [References](#references) ## Setup ### Project Configuration 1. Enable the **Voice over IP** background mode in Signing & Capabilities 2. Add the **Push Notifications** capability 3. For call directory extensions, add a **Call Directory Extension** target ### Key Types | Type | Role | |---|---| | `CXProvider` | Reports calls to the system, receives call actions | | `CXCallController` | Requests call actions (start, end, hold, mute) | | `CXCallUpdate` | Describes call metadata (caller name, video, handle) | | `CXProviderDelegate` | Handles system call actions and audio session events | | `PKPushRegistry` | Registers for and receives VoIP push notifications | | `PKVoIPPushMetadata` | iOS 26.4+ metadata that says whether a VoIP push must be reported | ## Provider Configuration Create a single `CXProvider`