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

CallKit Documentation

Posts under CallKit tag

90 Posts
Sort by:
Post not yet marked as solved
12 Replies
15k Views
If the device is locked the provider callback for - (void)provider:(CXProvider *)provider didActivateAudioSession:(AVAudioSession *)audioSession is never called when trying to answer a call using CallKit (bug 28549610). This happens when the app state is backgrounded or force closed. However, if the device is not locked CallKit works perfectly in both app states. I've also noticed that any attempts to answer incoming calls after the initial "failure" (failure is in quotes because there are no errors given to my application) will succeed. To rule out exceptions, back audio unit/session management and anything my code may be doing wrong, I've disabled all my business logic and have still reproduced the issue.Has anyone run into similar issues?
Posted
by tpnpgo.
Last updated
.
Post marked as solved
1 Replies
2.1k Views
After updating to iOS 15, our app is no longer receiving voip notifications when in a not running (killed) state. However, voip notifications come through just fine if the app is in the foreground or background. This behavior is specific to iOS 15, as testing the same exact build on iOS 14 works in all 3 states: foreground, background, & killed. Looking through the device console, I see the following logs coming through when running the app on iOS 15: Killing VoIP app because it failed to post an incoming call in time VoIP app failed to post incoming call and then eventually: VoIP app no longer eligible to launch I'm aware about needing to report the call to CallKit immediately - this is what we're doing (i.e. it works fine on iOS 14). And after reviewing the PushKit & CallKit docs, I see no changes that would affect this. Also, I tested this with the Facebook Messenger app, and the same problem was happening; no voip received when the app is killed on iOS 15, but on iOS 14 it works fine. Anyone know what's going on here?
Posted Last updated
.
Post not yet marked as solved
0 Replies
165 Views
I am working on a Siri integration for a VoIP application. I've added values for both INAlternativeAppName and INAlternativeAppNamePronunciationHint under INAlternativeAppNames in the app target's info.plist. On iOS 14, the phrase "Call [number] using [alternate app name]" launches my app and initiates a VoIP call. on iOS 15, Siri responds with "I don't see an app for that. You'll need to download one." to the same phrase. Is this functionality broken in iOS 15? Here is INAlternativeAppName in my info.plist: <key>INAlternativeAppNames</key> <array> <dict> <key>INAlternativeAppName</key> <string>dialer</string> <key>INAlternativeAppNamePronunciationHint</key> <string>dial er</string> </dict> </array>
Posted Last updated
.
Post not yet marked as solved
4 Replies
289 Views
I set the project's background mode as above. I'm using the timer with the mic on. The timer currently works in the background, but the timer is paused during a phone call. Do you want to run a timer while on a call, but there is no way? I am using timer as below. playTimer = Timer.scheduledTimer(withTimeInterval: 0.03, repeats: true, block: { [weak self] _ in       self?.sendBuffer()     })
Posted Last updated
.
Post marked as solved
5 Replies
372 Views
I am looking for a way to integrate the emergency services on ios to a third-party app which is made with Flutter. So, instead of manually calling an emergency service by using a flutter package called url_launcher (which is able to send messages, phone calls, and emails), I would like to be able to use the phone's own built-in emergency sos feature instead. Example of Emergency Service (SOS) on IOS Use Emergency SOS on your iPhone - Apple Support When doing some research, I have found two forums on Apple Forums that are asking a similar question as to what I would want to do in my app: - https://developer.apple.com/forums/thread/689973 https://developer.apple.com/forums/thread/108996 I was also looking into Apple's on the SDKs they have available where I have found SDKs and information on : CallKit UIKit Any help/guidance would be greatly appreciated!
Posted
by jcoulombe.
Last updated
.
Post not yet marked as solved
0 Replies
148 Views
Hi All I recently found that wrong deactivate audio session event was received on app when user end Celluar call. Here is my step: App report to CallKit an incoming call and answer it. Device receive Celluar call, and user choose Hold/Accept. and app is notified by held action on Call Provider delegate. User end Celluar call. Expected : app is supposed to receive activate Audio session or unheld event Real result: app receive did deactivate event. which cause app to shut audio session. Can anyone correct on this scenario? Thanks,
Posted
by Jeff Lu.
Last updated
.
Post not yet marked as solved
0 Replies
200 Views
Hello, I wanted to know if other people had a problem with their VOIP application especially with their incoming call since Thursday,April, 7. Or if you are aware of any changes. Because before April 7, all our versions already in production and also on TestFlight, allowed us to send or refuse incoming calls. And since then, it's no longer possible to do that on the versions only downloaded on the AppStore and TestFlight. But on the other hand everything works perfectly when I debug on xCode. Of course I tested on different phone versions (7,8,Xs,11) and on different OS (13,14,15) Thanks in advance,
Posted
by kertel.
Last updated
.
Post not yet marked as solved
0 Replies
226 Views
I have an app which uses the Call Directory Extension to identify callers. It has been downloaded a few hundred times and a small percentage of users are reporting this error. They are logged in to the app but when they go to phone -> settings -> call blocking & identification they get one of two error messages. "An error occurred while attempting to enable app." "Failed to request data for app. You may try enabling the extension again and if the problem persists contact the application developer." I'm not sure how this could be an issue with the app because it works for the majority of users. Furthermore users still experience the error when I ask them to log in with a test account. One user even reported that they could enable it in settings but a little while later it will disable itself. I have seen similar posts where it's been suggested that the error may be due to bad data (out of order, duplicate contacts, etc) but this error shows before the app even begins to load the data. Does anyone know under what conditions this error popup shows? Many thanks
Posted
by lukevdp.
Last updated
.
Post not yet marked as solved
0 Replies
191 Views
Hi, I've been develop a React Native VoIP app powered by WebRTC and CallKit since last year. I'm having a latency problem with setting local description to RTCPeerConnection. My logic here is; after the call is answered via CallKit, then CallKit fires these two events performAnswerCallAction and didActivateAudioSession. Then I create RTCPeerConnection and call setLocalDescription with this SDP: { "sdp":"v=0 o=- 654351570947918441 2 IN IP4 127.0.0.1 s=- t=0 0 a=msid-semantic: WMS FA7E5E0A-101F-41F0-9B4A-3299D810A2C2 m=audio 9 RTP/SAVPF 9 8 0 101 c=IN IP4 0.0.0.0 a=rtcp:9 IN IP4 0.0.0.0 a=ice-ufrag:VC+j a=ice-pwd:QZpffFLu3LK/e2hxufOkPLiq a=ice-options:trickle renomination a=fingerprint:sha-256 27:82:8A:D3:51:40:74:89:39:CD:B9:8E:DF:A3:8A:F1:81:C1:55:B0:CA:71:38:EA:BF:F4:38:42:DB:45:17:BE a=setup:active a=mid:audio a=sendrecv a=rtcp-mux a=rtpmap:9 G722/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:101 telephone-event/8000 a=ssrc:1529435550 cname:rspdP8f1rP+aU3Qw a=ssrc:1529435550 msid:FA7E5E0A-101F-41F0-9B4A-3299D810A2C2 73C274FA-FC1D-4360-BFFA-A372C4EFCFAE a=ssrc:1529435550 mslabel:FA7E5E0A-101F-41F0-9B4A-3299D810A2C2 a=ssrc:1529435550 label:73C274FA-FC1D-4360-BFFA-A372C4EFCFAE ", "type":"answer" } My problem is; RTCPeerConnection.setLocalDescription(desc) takes about 2-2.5 seconds after audio session activated by CallKit. Otherwise, connection establishes as fast as expected (Of course I hear or convey no sound without CallKit). P.S: There is no connection problem or missing audio after connection is established. It just takes too long to connect to other peer.
Posted Last updated
.
Post not yet marked as solved
0 Replies
506 Views
Hello, I developer voip functionality for my clients app. It uses googles WebRTC sdk + callkit. The problem is when I put app into background (.voice and .voip modes enabled in pList) while on call I get red Recording status bar. My clients would like it to be Green like WhatsApp, Skype and native calls app. I can not find any documentation how it is done. All I found is some comments that say Red Recording bar is because I'm running AVAudioSession on .playAndRecord category ( .voiceChat mode) in background. Can anyone instruct me/point me to documentation/example on how can I enter In-Call background state with green status bar? Sincerely, Martynas
Posted Last updated
.
Post not yet marked as solved
0 Replies
153 Views
I'm facing the issue where when I accept an incoming call from the call kit screen it's not redirecting the app. The app is still active in the background, the call is connected but the issue is app is not opening due to which the user is not able to understand that he is connected to the call. Can you please provide me the solution that how can I launch the app when I press the accept button? https://drive.google.com/file/d/1azI4nhC9njjPOAGLSBGw34vYGxlmkXNy/view?usp=sharing
Posted Last updated
.
Post not yet marked as solved
0 Replies
159 Views
When I receive an incoming call, the call kit screen is getting dismissed automatically. Here is the link for the issue. https://drive.google.com/file/d/1b7jpBWiRXl7fRG4i2ktIM130UWGDB2ZT/view?usp=sharing
Posted Last updated
.
Post not yet marked as solved
0 Replies
179 Views
I'm seeing an issue with video calls where the green video dot reappears when the app is launched. But only if the device was locked when a voip call was answered. In my reportNewIncomingCallWithUUID I initially set .hasVideo to false, then a short time after I use reportCallWithUUID to update the call so .hasVideo is true. When the call ends I use CXEndCallAction which completes without any issues. This works fine when the device is unlocked. I get my VoIP push via pushkit, callkit shows an incoming call, my video call is running and everything appears to be closed down as expected. Relaunching the app does not show any green video dot. However when my device is iniitaly locked I get a different behavior. The code path is identical but after a video call the green dot reappears when the app is launched. When the app is not running there's no green dot on screen nor in the control center. But the green dot appears when I launch my app manually. I sure that I don't start the camera. What could I be missing?
Posted Last updated
.
Post not yet marked as solved
0 Replies
213 Views
Hello, I am currently working on feature which includes VoIP push notifications, CallKit and WebRTC. About issue: if user answers the call from iOS native call window faster than RTCPeerConnection has it's remote description set I am returning from func provider(_: perform:) and not fulfilling or failling the action. func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) {     if !didReceiveSipServerSdp {       didAnswerIncomingCall = true       return     }     answer { sdp in       self.janusSipChannel?.answerCall(destination: sipDestination, sdp: sdp)     }     action.fulfill() } I await for RTCPeerConnection to set it's remote description and then call let callController = CXCallController() let answerCallAction = CXAnswerCallAction(call: uuid) let transaction = CXTransaction(action: answerCallAction) callController.request(transaction) { error in     ... } Thats when I receive "Error requesting transaction: Error Domain=com.apple.CallKit.error.requesttransaction Code=6 "(null)"". Because of that I made changes to set timer for 1 sec in CXAnswerCallAction method to wait before fulfilling action if user is fast enough to answer call and internet connection is slow and RTCPeerConnection hasn't set its remote description. Is there any other options on this matter? Or is it impossible not to handle (action.fulfill() / action.fail()) received action and make same transaction again? Thank you in advance!
Posted
by DavidJan.
Last updated
.
Post not yet marked as solved
2 Replies
1k Views
Our app is used for multi person voice call. There is inexplicable hanging and background flash back on the mobile phone system version after ios15. It will appear after ios15. The current crash log is: OS Version: iPhone OS 15.3 (Build 19D50) Architecture: arm64e Report Version: 35 Data Source: Microstackshots Shared Cache: 66BD3798-5A09-3367-BFD4-23D74646167A slid base address 0x180244000, slide 0x244000 Command: XXXX Path: /private/var/containers/Bundle/Application/56608046-28A9-4304-AB21-D8BD53B726F8/XXXX.app/XXXX Identifier: com.XXXX.XXXX Version: 1.4.5 (52) Beta Identifier: 81FA4D3D-4189-45E4-9053-2DD141C6F600 Architecture: arm64 PID: 771 Event: cpu usage Action taken: Process killed CPU: 9 seconds cpu time over 38 seconds (24% cpu average), exceeding limit of 15% cpu over 60 seconds CPU limit: 9s Limit duration: 60s CPU used: 9s CPU duration: 38s Duration: 38.03s Duration Sampled: 36.79s Steps: 10 Hardware model: iPhone11,8 Active cpus: 6 HW page size: 16384 VM page size: 16384 Advisory levels: Battery -&gt; 3, User -&gt; 3, ThermalPressure -&gt; 0, Combined -&gt; 3 Free disk space: 63.56 GB/119.16 GB, low space threshold 150 MB Heaviest stack for the target process: 8 ??? (libsystem_pthread.dylib + 3744) [0x1f10b2ea0] 8 ??? (libsystem_pthread.dylib + 6564) [0x1f10b39a4] 4 ??? (&lt;801D7109-F70B-3156-8669-0309C97E8857&gt; + 724392) [0x106708da8] 3 ??? (&lt;801D7109-F70B-3156-8669-0309C97E8857&gt; + 718920) [0x106707848] 3 ??? (&lt;801D7109-F70B-3156-8669-0309C97E8857&gt; + 721660) [0x1067082fc] 3 ??? (&lt;801D7109-F70B-3156-8669-0309C97E8857&gt; + 711444) [0x106705b14] 2 ??? (libsystem_kernel.dylib + 8656) [0x1b7b7c1d0] Hang backstage and be killed in the backstage for a short time. How to solve it? will iOS kill my app for high CPU usage IN THE Background scene? Is the limit of exceeding 15% CPU in 60 seconds too low?And if so, is there a way to either disable that, or appeal for a higher CPU usage limit?
Posted
by Sam_V.
Last updated
.
Post not yet marked as solved
4 Replies
492 Views
I have two call directory extensions, each with InfoPlist.strings in en.lproj and nb.lproj directories. In these files I've defined CFBundleDisplayName for both locales. These names are displayed under Settings -> Phone -> Call Blocking & Identification. On iOS 12.2 the names are displayed correctly in both Norwegian and English. Testing on iOS 15.3 the English names are displayed even when device language is set to Norwegian. Worth noting: When updating the English versions of CFBundleDisplayName this is immediately reflected in Call Blocking & Identification page with Norwegian device language. As this feature requires a real device, I'm unable to test on iOS 13 and 14.
Posted Last updated
.
Post not yet marked as solved
0 Replies
172 Views
My client is developing security lock and would like to display a full screen alert when something happens to the lock. Only way I found possible to display such alert is using CallKit and display UI of incoming call. The logic would be - something happens to the lock, it sends info to BE -> BE sends VoIP push notification to app -> app displays incoming call UI (accepting or denying the call does nothing except hiding it) Will Apple even allow us to do this? I am familiar with critical notifications, but that's not what client wants.
Posted
by Pavel G.
Last updated
.
Post not yet marked as solved
0 Replies
226 Views
Hi! I have iphone 12 and am having a difficult time when someone calling me and can't hear or some small voice at least none . But unless need to click the speaker that's the time can hear him/her. I also follow up some advice and research some fix but those things nothing work.
Posted Last updated
.