Call Kit behaviors depending on lock state of the device.

Call Kit behaviors depending on lock state of the device.


I am working a new iOS VOIP app and while an experienced iOS developer, I have not done VOIP in the past so a lot of this is new to me. I’m looking for clarification as to differences in how CallKit handles an incoming call depending on the lock state of the device and confirmation as to the reasoning behind it.


My Assumption Based on Observation


If my phone is locked and an incoming call is being handled by CallKit (as via my experience using WWDC’s Speakerbox demo) the user will see a system “Incoming Call” view with a “Slide to answer” widget. Upon sliding they will have an active audio connection with the caller and the UI will change to a view I’d call the “Active Call” view. This view presents a button to visit the app and potentially a video button if the app has advertised this as a video call. When the user taps the app or video button they are made to authenticate using a passcode or TouchID. Once authenticated they are brought to the app.


The behavior for an incoming call with an unlocked phone is much different. Instead of the “Incoming Call” view with the slider, we now have two buttons: Accept or Decline. Upon tapping Accept the user is directed immediately to the VOIP app – skipping the system provided “Active Call” view.


Questions


Should I assume the primary reason CallKit responses with the system “Active Call” view instead of my own app on a locked iOS device is for security concerns? It’s a conclusion we’ve come up with based on other behaviors but I have yet to see Apple document it with any detail.


If I had an app that was primary considered a video conferencing app, is there any way to better enter the video call experience in a locked device scenario? It would seem not – BUT then I look at FaceTime, and when my device is receiving a FaceTime call the Incoming Call view actually shows my active front facing camera and then immediately takes me to a FaceTime experience (regardless if the device is locked or not). I assume these behaviors are a special case only available to FaceTime but I welcome feedback to point me in the right direction.


I notice that when I accept a call on an unlocked phone on Speakerbox there is a slightly jarring display of the active call view right before my app is brought to the front. Is this something I can help avoid in my own code?

Post not yet marked as solved Up vote post of zorn Down vote post of zorn
5.6k views

Replies

I have the same question, in order to improve user experience with the apps, I think there's someway to trigger user unlock screen and to the experience the app directly

I am facing the exact same issues right now, I'm surprised there is zero documentation on this or even more people wondering how to do this.

Facing this as well. Making an app that is just video calls (get PushKit VoIP notification -> show incoming call with CallKit -> open app to video chat) and wondering if it's possible to always take the user into the app. Also wondering if it's possible to show the FaceTime-style UI when receiving a call.

I have exactly the same question. I wonder if anyone found a solution to skip the "Active Call" screen when answering on the lock screen.

I have the same problem did anyone figure this out?

Same question here, Did someone figured it out and can be a nice soul ?