callkit

Orchestrate native VoIP calls with CallKit and PushKit in iOS apps.

Updated Apr 19, 2026
One-click install
npx skills add https://github.com/femitz/flyby --skill callkit-femitz
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: callkit
Source: https://github.com/femitz/flyby/tree/main/.agents/skills/callkit
Command: npx skills add https://github.com/femitz/flyby --skill callkit-femitz

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

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. Targets Swift 6.3 / iOS 26+.

Core Features & Use Cases

  • Incoming/outgoing call flows managed via CXProvider and CXCallController.
  • VoIP push registration and handling to trigger incoming calls.
  • Audio session coordination to ensure correct routing during calls.
  • Call Directory extension support for caller identification and blocking.

Quick Start

Configure CXProvider and CXCallController, enable VoIP background mode, and implement basic call handling to initiate testing.

Frequently Asked Questions about callkit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I handle incoming VoIP calls with CallKit and PushKit in iOS?

To handle incoming VoIP calls, register for VoIP pushes using PushKit and report them to a configured CXProvider via CXCallController. This ensures the native iOS call UI displays correctly when a push arrives.

What do I need to configure before implementing native VoIP calling flows?

Before implementing VoIP calling flows, you must enable the VoIP background mode and Push Notifications capability. You also need to configure a CXProvider and CXCallController to manage audio session coordination.

Can I integrate caller identification and blocking with CallKit?

Yes, you can integrate caller identification and blocking using Call Directory extensions. This feature works alongside CXProvider and CXCallController to identify or block incoming numbers in the native iOS phone UI.

How does audio session coordination work during a VoIP call on iOS?

Audio session coordination ensures correct audio routing during active VoIP calls. It is managed through CXProvider and CXCallController to prevent conflicts with other audio sources and maintain call stability.

What is the best way to manage outbound calling flows in a Swift iOS app?

The best way to manage outbound calling flows is by using CXCallController to initiate and control calls via CXProvider actions. This approach integrates outgoing calls directly with the native iOS calling interface.