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

  1. Pair and connect AirPods.
  2. Lock the iPhone.
  3. Start music playback (e.g. Apple Music).
  4. Place the phone face down (or cover Face ID sensors so attention isn’t available).
  5. 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.

Answered by DTS Engineer in 856929022

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.

So, the first two questions to ask with any CallKit behavior issues are:

  1. Is it happening in Phone.app?

  2. Is it happening in Speakerbox?

If the answer is "yes" to both (and I suspect it is), then you're probably dealing with system-wide CallKit behavior which you don't really have any control over. Note that if the answer to "#2" is "No", then you should figure out what Speakerbox is doing and "do that".

In the particular case, I suspect what you're hitting is the longstanding Siri behavior described here:

Use Siri even when iPhone is covered or facing down: When you set up Siri, “Hey Siri” activates Siri only when your iPhone faces up. To change this, turn on Always Listen for “Hey Siri.”

I believe the behavior of requiring user unlock is there to minimize the possibility of the user inadvertently triggering calls and is a compromise over ignoring the request entirely.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

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.

So, the first two questions to ask with any CallKit behavior issues are:

  1. Is it happening in Phone.app?

  2. Is it happening in Speakerbox?

If the answer is "yes" to both (and I suspect it is), then you're probably dealing with system-wide CallKit behavior which you don't really have any control over. Note that if the answer to "#2" is "No", then you should figure out what Speakerbox is doing and "do that".

In the particular case, I suspect what you're hitting is the longstanding Siri behavior described here:

Use Siri even when iPhone is covered or facing down: When you set up Siri, “Hey Siri” activates Siri only when your iPhone faces up. To change this, turn on Always Listen for “Hey Siri.”

I believe the behavior of requiring user unlock is there to minimize the possibility of the user inadvertently triggering calls and is a compromise over ignoring the request entirely.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

INStartCallIntent requires unlock when device is face down with AirPods
 
 
Q