In my VoIP application, users can start a VoIP call with Siri. In my app extension, I have a class conforming to INStartCallIntentHandling
, which resolves the contacts, call destination, and call capability of the intent. When the user attempts to start a VoIP call while the device is locked, my app extension is called, and Siri launches my app, starting the VoIP call while the device is still locked. According to the documentation, adding INStartCallIntent
to the IntentsRestrictedWhileProtectedDataUnavailable
key of my extension's Info.plist
should require the user to unlock the device before Siri launches my app and passes it the user activity. This is not working, and I haven't found any way to enforce this behavior. I downloaded Google Voice and WhatsApp, and they require the user to unlock the device when starting a VoIP call with Siri from a locked device. Is there something more I need to do? Here is my Info.plist
:
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>IntentsRestrictedWhileLocked</key>
<array/>
<key>IntentsRestrictedWhileProtectedDataUnavailable</key>
<array>
<string>OpenDialerTabAudioIntent</string>
<string>OpenDialerTabVideoIntent</string>
<string>OpenFaxTabIntent</string>
<string>OpenNewsfeedTabIntent</string>
<string>OpenSearchTabIntent</string>
<string>INStartCallIntent</string>
</array>
<key>IntentsSupported</key>
<array>
<string>OpenDialerTabAudioIntent</string>
<string>OpenDialerTabVideoIntent</string>
<string>OpenFaxTabIntent</string>
<string>OpenNewsfeedTabIntent</string>
<string>OpenSearchTabIntent</string>
<string>INStartCallIntent</string>
</array>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.intents-service</string>
<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).IntentHandler</string>
</dict>
I've read that WhatsApp isn't using CallKit
, but I don't know if that is true. Any Help would be appreciated.