Display the system-calling UI for your app’s VoIP services and coordinate your calling services with other apps and the system using CallKit.

Posts under CallKit tag

157 Posts

Post

Replies

Boosts

Views

Activity

CallKit and PushToTalk related changes in iOS 26
Starting in iOS 26, two notable changes have been made to CallKit, LiveCommunicationKit, and the PushToTalk framework: As a diagnostic aid, we're introducing new dialogs to warn apps of voip push related issue, for example when they fail to report a call or when when voip push delivery stops. The specific details of that behavior are still being determined and are likely to change over time, however, the critical point here is that these alerts are only intended to help developers debug and improve their app. Because of that, they're specifically tied to development and TestFlight signed builds, so the alert dialogs will not appear for customers running app store builds. The existing termination/crashes will still occur, but the new warning alerts will not appear. As PushToTalk developers have previously been warned, the last unrestricted PushKit entitlement ("com.apple.developer.pushkit.unrestricted-voip.ptt") has been disabled in the iOS 26 SDK. ALL apps that link against the iOS 26 SDK which receive a voip push through PushKit and which fail to report a call to CallKit will be now be terminated by the system, as the API contract has long specified. __ Kevin Elliott DTS Engineer, CoreOS/Hardware
0
0
383
Jun ’25
Callkit call blocking problem
We tested call blocking on iOS 26 and noticed something strange: the call will not be blocked if an outgoing call was made to its number before. Nevertheless, it will be blocked if we delete the outgoing call record from the Phone.app Recents. This behavior looks like a bug and is unexpected when using our application. Was this a planned callkit change in iOS 26? Is it possible to get the correct call blocking behavior back? We set blocking rules with addBlockingEntry(withNextSequentialPhoneNumber:) and this problem is not present in iOS 18 and earlier. Thank you in advance
5
1
207
1d
CallKit Call Blocking Not Working
I have also tested this on iOS 26 (Beta 9 and above), and the CallKit call blocking functionality is not working. Numbers that should be blocked still ring through. Caller Identification continues to function as expected, but blocking entries (addBlockingEntry) are ignored.
4
1
146
2d
CallKit speaker problem
I’m developing a VoIP app that uses Linphone and CallKit. Everything works as expected until the user enables the speaker on the native CallKit screen. After that, all subsequent calls start with the speaker already on. Even if I call AVAudioSession.sharedInstance().overrideOutputAudioPort(.none), it gets overridden when the call starts (when Linphone begins playing the ringtone). I tested this behavior in WhatsApp, and it seems to work correctly there.
1
0
146
4d
CallKit answer screen video button
Hello, currently working on messenger with audio/video calls feature. Have found strange behavior, on some devices after accepting call via Lock Screen video button appears to be disabled. Tested on wwdc Speakerbox sample, same code iPhone 15 Pro (iOS 17.4.1) - video button disabled iPhone 14 (iOS 17.6.1) - video button active Here is my, configuration with supportVideo activated static let providerConfiguration: CXProviderConfiguration = { let configuration = CXProviderConfiguration() configuration.supportsVideo = true configuration.maximumCallGroups = 1 configuration.maximumCallsPerCallGroup = 1 configuration.supportedHandleTypes = [.generic] return configuration }() What can be the reason of this behavior? Thanks
1
0
53
4d
Issues with Push Notifications and Call Implementation in Flutter App on iOS (Debug Works, Production/TestFlight Fails)
Hello Developers, I am currently developing a Flutter application where I am implementing both push notifications (for messages) and VoIP call notifications. The implementation works perfectly fine on Android. However, I am facing issues specifically on iOS in the following scenarios: Terminated State: When the app is terminated on iOS, neither call notifications nor message notifications are received. In the background state, things partially work, but in the terminated state, nothing comes through. Debug vs Production: In Debug mode, everything works as expected (both message and call notifications). Once I release the app to TestFlight (Production), the notifications completely stop working: Message notifications are not delivered at all. Call notifications also fail to appear in terminated state. Configuration Details: I have already configured APNs with .p8 key in Firebase. The required capabilities (Push Notifications, Background Modes → Remote notifications, VoIP, etc.) are enabled in Xcode. I also updated the AppDelegate.swift / Notification handling code for production environment. Despite these steps, the same issue persists in production/TestFlight. It seems like the issue is specifically related to production environment handling on iOS, since everything works in debug. My Question: What could be causing push notifications and call notifications to not work in the terminated state on iOS, especially in production/TestFlight builds? Are there additional configuration steps required for APNs, VoIP, or background handling in production that differ from debug mode? Any guidance or similar experiences would be really helpful. Thanks in advance for your support.
2
0
47
1w
[iOS 26 beta 9] App is moving to Background when user rejected the GSM cellular call.
We have an application WAVE PTT(Push to talk) and Application is in foreground state, When a user receives a cellular call and it is in the "ringing" state and application receives a VoIP APNS(video call) which is reported to CallKit. User rejects the Cellular call from CallKit UI, application Video call is also getting rejected (separate feedback - 19017978) and Here the issue is observed that an Application moved to background(OS26 beta 9). Issue is not observed in iOS 18 and older versions. Frequency : 1 out of 3. Please refer the sysdiagnose logs in below reported feedback ID. Feedback Ticket ID: 20187309 Syslogs Snippet reference: default 2025-09-10 12:30:06.991950 +0530 WAVE PTX 0x10e078100 - ApplicationStateTracker: UISceneDidEnterBackground
1
0
71
1w
[iOS 26] [CallKit] [SDK 26] Application got crashed while App was Inactive
The crash log, an IPS file, indicates a crash occurred at a specific time, with the exception backtrace pointing to _terminateAppIfThereAreUnhandledVoIPPushes. However, cross-reference with the SysDiagnose logs, there is no corresponding process or activity for the application at the reported crash time. The app was not active, nor was it woken up by any event. IPS file and SysDiagnose logs have been attached in the Feedback. Feedback - FB20044587
3
0
91
1w
[iOS 26][SDK 26] Application never received providerDidBegin(_:) delegate
Observed few times that providerDidBegin(_:) delegate never called for the complete app session after app init(as part of this CXProvider registered) which was built with SDK 26 and running on iOS 26. This issue observed multiple times with our testing. Since there is no providerDidBegin:, client is marking CallKit as not ready and never report any calls for VoIP APNS and ended up in app crash due to "[PKPushRegistry _terminateAppIfThereAreUnhandledVoIPPushes]" Please refer for sysdiagnose logs : FB19778306
7
0
115
1w
INStartCallIntent requires unlock when device is face down with AirPods
When my Intents extension resolves an INStartCallIntent and returns .continueInApp while the device is locked, the call does not proceed unless the user unlocks the device. After unlocking, the app receives the NSUserActivity and CallKit proceeds normally. My expectation is that the native CallKit outgoing UI should appear and the call should start without requiring unlock — especially when using AirPods, where attention is not available. Steps to Reproduce Pair and connect AirPods. Lock the iPhone. Start music playback (e.g. Apple Music). Place the phone face down (or cover Face ID sensors so attention isn’t available). Say: “Hey Siri, call Tommy with DiscoMonday(My app name).” Observed Behavior Music mutes briefly. Siri says “Calling Tommy with DiscoMonday.” Lock screen shows “Require Face ID / passcode.” After several seconds, music resumes. The app is not launched, no NSUserActivity is delivered, and no CXStartCallAction occurs. With the phone face up, the same phrase launches the app, triggers CXStartCallAction, and the call proceeds via CallKit after faceID. Expected Behavior From the lock screen, Siri should hand off INStartCallIntent to the app, which immediately requests CXStartCallAction and drives the CallKit UI (reportOutgoingCall(...startedConnectingAt:) → ...connectedAt:), without requiring device unlock, regardless of orientation or attention availability when AirPods are connected.
1
0
116
2w
Video button on CallKit UI is disabled for Video VoIP call, only on notch devices.
We've observed an issue where the video button on the CallKit UI is disabled during Video VoIP calls. This issue appears to be specific to notch devices running SDK 26 and iOS 26 beta 7, specifically on iPhone 11. We have not seen this behavior on devices with Dynamic Island or on older iOS versions. For further details, please refer to the attached video and sysdiagnose file. : FB19827793 Our experimentation suggests this issue is exclusively present on non-Dynamic Island devices with iOS 26 beta.
3
0
129
2w
Extension AppIcon (Call Directory) not showing (But home icon ok!)
The home AppIcon appears as it should but in settings I get the generic icon. I tried: giving the extension its own assets and AppIcon asset. giving the main app assets 2 targets, itself AND the extension setting AppIcon appearances to "none" and iOS "all sizes" and providing 29pt and the other sizes. Adding to info.plist and specifying "CFBundleIconFiles" Yes, nuked derived data, switched off phone, everything. Starting with just the standard 1024×1024 AppIcon (expecting Xcode to auto-generate all slices, including 29pt for Settings). It didn’t — Settings still shows the generic gear. Question: What should I do to make the extension’s icon show up in Settings? Environment • Xcode: 16.4 (16F6) • iOS: 18.5 (device) • Targets: iOS app + Call Directory extension • App icon pipeline: asset catalog (single-size initially, now legacy grid)
1
0
170
2w
CallKit does not activate audio session with higher probability after upgrading to iOS 18.4.1
Hi, We've noticed that this issue occurs more frequently after upgrading to iOS 18.4.1 and can result in one-way audio. Our app uses CallKit with WebRTC to establish VoIP connections. However, on iOS 18.4.1, CallKit no longer triggers: func provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession) We're currently comparing the occurrence rate across different iOS versions to better understand the impact. Could you please help analyze the root cause of this issue?
17
0
490
2w
Live Caller ID Lookup - Error on Refresh PIR Parameters
Hello. I've implemented the Live Caller ID Lookup feature in my app, but sometimes I get a weird error. When I call LiveCallerIDLookupManager.shared.refreshPIRParameters(...) from my app, it sometimes throws an error: Error Domain=com.apple.CipherML Code=1100 "Unable to query status due to errors: The resource could not be loaded because the App Transport Security policy requires the use of a secure connection." UserInfo={NSLocalizedDescription=Unable to query status due to errors: The resource could not be loaded because the App Transport Security policy requires the use of a secure connection., NSUnderlyingError=0x118f65740 {Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection." UserInfo={NSLocalizedDescription=The resource could not be loaded because the App Transport Security policy requires the use of a secure connection., NSErrorFailingURLKey=http://www.example.com/config}}} What does this error mean? And where did the example.com part come from? What should I do to get rid of this error? My Service URL is hardcoded in the Live Caller ID Lookup Extension of my app and it is definitely not example.com.
1
0
74
3w
Eligibility for Default Dialer Capability in EU
Hello, I noticed the new entitlement in iOS 26 under LiveCommunicationKit: Preparing your app to be the default dialer app. My question is about eligibility: If a developer account is registered in the EU, can any app add the Default Dialer capability, or is it restricted only to apps that provide real calling/communication functionality (e.g., WhatsApp, Telegram, Skype)? If granted, does this capability allow the app to make/receive cellular calls and access call history, or is it limited only to VoIP-style scenarios through CallKit integration? What are the minimum functionalities required to support this feature (e.g., having a dial pad, call history screen, etc.)? Why must the developer account be registered in the EU to use this entitlement? Thanks in advance for the clarification!
1
0
39
3w
Default dialer abilities & limitations
I've been trying to understand what kind of UX is available if my app is using the default-dialer capability. I have found https://developer.apple.com/documentation/livecommunicationkit/preparing-your-app-to-be-the-default-dialer-app and I am in the EU. On android I built the UX I want and it's quite neat, so now I'm trying to work. out what I can get on iOS. Because the product is kind of worthless with just android. I have built a simple dialer ux with a numberpad, contact lookup etc. Then when the user presses the Call button does it have to pop up the system prompt "Call number"? Does it have to swap over to the system ui for the actual call? So there's no way to show information about the call, during the call? Or am I using the frameworks incorrectly? I am very new to iOS development. TrueCaller and others show validation, but as I understand it they pre-fetch all the data, I can't do that.
1
0
94
3w
Call Blocking (CallKit) not working on iOS 26 Public Beta
Call blocking using a third-party CallKit app is not longer working with the latest iOS 26 Public Beta (23A5297m). We've tried several different Call Blocking apps (that used to work fine on iOS 18.5) and their call blocking functionality is not working anymore. All calls pass through and the phone rings on those "blocked" numbers. We got several user complaints about our app that is not working on iOS 26 Public Beta. We've filed 2 bug reports with Feedback Assistant: FB19140680 FB19140594 Please fix this issue in the next Beta versions of iOS 26 to have a stable iOS 26 release in the future. Thank you in advance.
25
0
776
3w
[iOS 26] For call reported in lockscreen, after updating the CXCallUpdate for an active callkit reported call with reportCallWithUUID:updated:. The display namer in the callkit UI is not getting updated.
For call reported in lockscreen, after updating the CXCallUpdate for an active callkit reported call with reportCallWithUUID:updated:. The display namer in the callkit UI is not getting updated. This issue exists from iOS 18 and later. Issue is always seen. Feedback updated with iOS 26 beta logs: FB13969440
1
0
99
3w
CallKit UI with speaker button is not functional - Only speaker mode is enabled
An issue with the CallKit UI, specifically regarding the functionality of the speaker button. When a user initiates a video call with CallKit and then, using the existing CallKit session, initiates an audio call, there are no issues with CallKit or the audio. However, if the user terminates the video call from the CallKit UI, the active CallKit session ends. To resume the ongoing audio call, we report a new CallKit call upon the end call trigger. While there are no issues with this reporting, the CallKit UI does not provide an audio route for the built-in receiver, and the speaker button remains unresponsive. IPA was build on SDK 18 and running on iOS beta 26. Issue is NOT seen with SDK18 and running iOS 18.x or lower devices. Feedback - FB18855566
7
0
157
Aug ’25