<!--
{
  "availability" : [
    "iOS: 27.1.0 -",
    "iPadOS: 27.1.0 -",
    "macCatalyst: -",
    "macOS: 27.1.0 -",
    "visionOS: 27.1.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "LiveCommunicationKit",
  "identifier" : "/documentation/LiveCommunicationKit/LiveAssistanceExtension",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "LiveCommunicationKit"
    ],
    "preciseIdentifier" : "s:20LiveCommunicationKit0A19AssistanceExtensionP"
  },
  "title" : "LiveAssistanceExtension"
}
-->

# LiveAssistanceExtension

The protocol you extend to provide live assistance services.

```
@MainActor protocol LiveAssistanceExtension : AppExtension
```

## Overview

To provide interpreter, captioning, or other services that work with FaceTime calls, create a container app that uses the [`LiveAssistance`](/documentation/LiveCommunicationKit/LiveAssistance) APIs, as well as an app extension that conforms to this protocol.

The extension performs most of the work involved in joining an assistance provider to a FaceTime call. When a person on a call chooses your app to provide assistance, the framework launches the extension and calls the [`prepareAssistanceRequest(_:)`](/documentation/LiveCommunicationKit/LiveAssistanceExtension/prepareAssistanceRequest(_:)) method. If your extension determines it has everything it needs — the person is signed in and has provided all needed information — it can retrieve a URL from the framework that the service provider uses to join the call. If the extension needs more information, it can return [`LiveAssistanceRequest.Response.requiresUserInput(reason:)`](/documentation/LiveCommunicationKit/LiveAssistanceRequest/Response/requiresUserInput(reason:)), which launches the container app to perform any remaining setup. When the container app is ready for the request to continue, it calls [`returnToCall(requestID:)`](/documentation/LiveCommunicationKit/LiveAssistance/returnToCall(requestID:)), which results in a call to the extension’s [`resumeRequest(_:)`](/documentation/LiveCommunicationKit/LiveAssistanceExtension/resumeRequest(_:)) method.

Each invocation of your extension runs in a fresh process context. This means you can’t rely on instance state persisting across calls to [`prepareAssistanceRequest(_:)`](/documentation/LiveCommunicationKit/LiveAssistanceExtension/prepareAssistanceRequest(_:)) and [`resumeRequest(_:)`](/documentation/LiveCommunicationKit/LiveAssistanceExtension/resumeRequest(_:)), since the framework may have killed the extension and relaunched it in the interim. Instead, persist cross-invocation state in the keychain or App Group defaults.

If the extension process crashes mid-invocation, the request fails immediately. The framework doesn’t re-invoke the handler in this scenario.

## Topics

### Handling a new request

[`func prepareAssistanceRequest(LiveAssistanceRequest) async throws -> LiveAssistanceRequest.Response`](/documentation/LiveCommunicationKit/LiveAssistanceExtension/prepareAssistanceRequest(_:))

Prepares to handle a fresh assistance request, in response to a call from the framework.

### Resuming a request

[`func resumeRequest(LiveAssistanceRequest) async throws -> LiveAssistanceRequest.Response`](/documentation/LiveCommunicationKit/LiveAssistanceExtension/resumeRequest(_:))

Resumes an assistance request, in response to a call from the framework.

### Working with supporting types

[`struct LiveAssistanceRequest`](/documentation/LiveCommunicationKit/LiveAssistanceRequest)

A pending interpreter request, sent from the framework to the extension.

[`enum LiveAssistanceRequestError`](/documentation/LiveCommunicationKit/LiveAssistanceRequestError)

An error thrown by a live assistance extension when handling a request.

[`protocol LiveAssistanceExtensionConfiguration`](/documentation/LiveCommunicationKit/LiveAssistanceExtensionConfiguration)

An interface type required to conform to the ExtensionFoundation framework protocols.

## Relationships

### Inherits From

[`AppExtension`](/documentation/ExtensionFoundation/AppExtension)

---

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)