startCall
An intent schema that starts a call to a person, handle, or named group.
Declaration
var startCall: some AppSchemaIntent { get }Discussion
To make your app’s actions available to Apple Intelligence, conform your AppIntent to a schema that describes your action to the system. If your app’s functionality aligns with the phone domain and one of your app’s actions matches the startCall schema, you can generate the properties and protocol conformance the schema requires for your intent implementation with the @AppIntent( .phone.startCall) Swift macro. To make your app work with Siri, see Apple Intelligence and Siri AI.
The following example shows an intent that conforms to the startCall schema:
@AppIntent(schema: .phone.startCall)
struct StartCallIntent: AudioRecordingIntent, AudioStartingIntent {
var destination: <#CallDestination#>
var audioVisualMode: <#CallAVMode#>
func perform() async throws -> some IntentResult {
<#code#>
}
}Define a @UnionValue enumeration for the destination parameter, as in the following example, by typing the first few characters of phone_destination in Xcode and selecting it from the code-completion suggestions.
@UnionValue
enum CallDestination {
case person(<#PhonePerson#>)
case people([<#PhonePerson#>])
case group(<#CallGroup#>)
}The schema supports the following system experiences:
Siri
Shortcuts
For more information about the App Intents framework and the experiences it supports, see Getting started with the App Intents framework.