<!--
{
  "documentType" : "article",
  "framework" : "SiriKit",
  "identifier" : "/documentation/SiriKit/voip-calling",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "VoIP Calling"
}
-->

# VoIP Calling

Initiate calls and search the user’s call history.

## Discussion

With the VoIP domain, users can ask Siri to initiate audio and video calls or search for calls already received by your app. Your Intents app extension validates the intent parameters, but doesn’t place calls or perform searches directly. Instead, SiriKit expects you to hand off control to your app, which is responsible for displaying the search results and managing calls.

> Important:
> It’s strongly recommended that you use CallKit to initiate and manage your app’s calls. CallKit lets you integrate your calling services with the system, making it easier for users to receive and manage calls from your app and other calling apps. If you don’t support CallKit, Siri launches your app so it can begin the call.

## Topics

### Starting a Call

[`INStartCallIntentHandling`](/documentation/Intents/INStartCallIntentHandling)

An interface that handles requests to start audio and video calls.

[`INStartCallIntent`](/documentation/Intents/INStartCallIntent)

A request to start an audio or video call with one or more users.

[`INStartCallIntentResponse`](/documentation/Intents/INStartCallIntentResponse)

Your app’s response to a start call intent.

[`INStartCallCallRecordToCallBackUnsupportedReason`](/documentation/Intents/INStartCallCallRecordToCallBackUnsupportedReason)

A reason why your app can’t use a record to call a person back.

### Answering a Call

[`INAnswerCallIntent`](/documentation/Intents/INAnswerCallIntent)

[`INAnswerCallIntentResponse`](/documentation/Intents/INAnswerCallIntentResponse)

[`INAnswerCallIntentHandling`](/documentation/Intents/INAnswerCallIntentHandling)

[`INAnswerCallIntentResponseCode`](/documentation/Intents/INAnswerCallIntentResponseCode)

### Describing a Call

[`INCallRecord`](/documentation/Intents/INCallRecord)

The details about a call handled by your app.

[`INCallGroup`](/documentation/Intents/INCallGroup)

The details of a group call handled by your app.

[`INCallRecordFilter`](/documentation/Intents/INCallRecordFilter)

Filters a user specifies to redial a call.

[`INCallRecordType`](/documentation/Intents/INCallRecordType)

Constants describing the type of the call.

[`INCallRecordTypeOptions`](/documentation/Intents/INCallRecordTypeOptions)

Constants describing the types of calls to include during a search.

[`INCallDestinationType`](/documentation/Intents/INCallDestinationType)

Constants describing the destination of a call.

### Ending a Call

[`INHangUpCallIntent`](/documentation/Intents/INHangUpCallIntent)

[`INHangUpCallIntentResponse`](/documentation/Intents/INHangUpCallIntentResponse)

[`INHangUpCallIntentHandling`](/documentation/Intents/INHangUpCallIntentHandling)

[`INHangUpCallIntentResponseCode`](/documentation/Intents/INHangUpCallIntentResponseCode)

### Resolution Results

[`INCallRecordResolutionResult`](/documentation/Intents/INCallRecordResolutionResult)

A resolution result for the details of a call.

[`INCallRecordTypeResolutionResult`](/documentation/Intents/INCallRecordTypeResolutionResult)

A resolution result for the types of calls that your app handled.

[`INCallDestinationTypeResolutionResult`](/documentation/Intents/INCallDestinationTypeResolutionResult)

A resolution result for the destination type of a call.

[`INCallCapabilityResolutionResult`](/documentation/Intents/INCallCapabilityResolutionResult)

A resolution result for the call capability for the call.

[`INCallRecordTypeOptionsResolutionResult`](/documentation/Intents/INCallRecordTypeOptionsResolutionResult)

A resolution result for the call types to include in a search.

[`INStartCallContactResolutionResult`](/documentation/Intents/INStartCallContactResolutionResult)

A resolution result for the contact for the call.

[`INStartCallCallCapabilityResolutionResult`](/documentation/Intents/INStartCallCallCapabilityResolutionResult)

A resolution result for the call capability for the call.

[`INStartCallCallRecordToCallBackResolutionResult`](/documentation/Intents/INStartCallCallRecordToCallBackResolutionResult)

A resolution result for the redial capabilities of a missed call.

### Sharing the User’s Focus Status

[`INShareFocusStatusIntentHandling`](/documentation/Intents/INShareFocusStatusIntentHandling)

A set of methods an object implements to process intents that share the user’s focus status.

[`INShareFocusStatusIntent`](/documentation/Intents/INShareFocusStatusIntent)

An object that indicates the user’s focus status is changing.

[`INShareFocusStatusIntentResponse`](/documentation/Intents/INShareFocusStatusIntentResponse)

Your app’s response to an intent that shares the user’s focus status.

[`INFocusStatus`](/documentation/Intents/INFocusStatus)

The user’s preference for receiving notifications.

[`INFocusStatusCenter`](/documentation/Intents/INFocusStatusCenter)

An object that maintains the user’s current focus status and your app’s ability to access it.

[`INFocusStatusAuthorizationStatus`](/documentation/Intents/INFocusStatusAuthorizationStatus)

A constant that indicates whether your app has authorization to access the user’s focus status.

[`INShareFocusStatusIntentResponseCode`](/documentation/Intents/INShareFocusStatusIntentResponseCode)

A constant that indicates your app’s ability to handle an intent to share the user’s focus status.

### Specifying Search Options

[`INCallCapabilityOptions`](/documentation/Intents/INCallCapabilityOptions)

Constants indicating the capabilities of the call.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)