Skip to main content
skill CX Codex

callkit — Claude Code skill: VoIP calls with CallKit

Teaches an agent to build VoIP calling into an iOS app: the system call screen, PushKit registration, audio sessions, and a caller ID extension.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add dpearson2699/swift-ios-skills --skill callkit -a claude-code
Open on GitHub

What callkit does

This skill covers VoIP calls that surface in the iOS call screen rather than a hand-built one. It goes through the provider and call controller objects, both call directions, registering for VoIP pushes with PushKit, tying the audio session to call actions, and a Call Directory extension for caller ID and number blocking.

Sections follow the work order: project capabilities, provider configuration, incoming and outgoing flows, push registration, audio, the directory extension. Samples are Swift and assume one shared CXProvider kept alive for the app's lifetime. A table for iOS 26.4+ explains PKVoIPPushMetadata.mustReport: a true value means the call has to be announced before the push handler returns, a false value means no announcement is needed. There is also a common-mistakes section and a review checklist.

Three project settings come first: the Voice over IP background mode, the Push Notifications capability, and a separate Call Directory Extension target if blocking is planned. Skipping the announcement of a required call gets the app terminated, and repeated misses can cut off VoIP push delivery.

What it helps with

  • show an incoming VoIP call in the native call screen
  • register for VoIP pushes and pass the token to your server
  • place an outgoing call through the call controller
  • tie the audio session to answer and end actions
  • label callers and block numbers with a directory extension

Example prompts for the agent

  • Set up VoIP push registration with PKPushRegistry and send the token to my backend.
  • Walk me through reporting an incoming call, then fulfil CXAnswerCallAction once the server connection is up.
  • Check my CXProviderDelegate against the common mistakes section.

How to install callkit

1Skills CLI (Vercel)

npx skills add dpearson2699/swift-ios-skills --skill callkit -a claude-code

2Manually: put the files in place

~/.claude/skills/callkit/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/callkit/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about callkit

How do I install callkit in Claude Code?

Run npx skills add dpearson2699/swift-ios-skills --skill callkit -a claude-code; the skill file lands at ~/.claude/skills/callkit/SKILL.md.

What does callkit do?

It guides an agent through CallKit and PushKit code for an iOS app: the provider, the call controller, handling user actions, audio, and a directory extension for caller ID and blocking.

What happens if I don't report an incoming call before the push handler returns?

The system terminates the app. Repeated misses may also stop VoIP pushes from being delivered.

Similar skills

Everything for Mobile →

From the same set86

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor