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

# LiveAssistance

A namespace to collect APIs for use by container apps that provide live assistance services.

```
enum LiveAssistance
```

## 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 the [`LiveAssistanceExtension`](/documentation/LiveCommunicationKit/LiveAssistanceExtension) protocol.

When a participant in a FaceTime calls wants to use live assistance services, they primarily interact with the app extension. If the extension needs further information to set up the service, it launches the app by returning [`LiveAssistanceRequest.Response.requiresUserInput(reason:)`](/documentation/LiveCommunicationKit/LiveAssistanceRequest/Response/requiresUserInput(reason:)) to the request from the framework. This response causes the system to launch the container app, which uses the APIs in this type.

### Handling app launch

To prepare your container app, start by adding `com.apple.conversation-accessibility.container-app-launch` to the `NSUserActivityTypes` in your app’s information property list. This allows the framework to launch your app when the extension needs the person using the app to sign in or provide other information.

The framework launches your app with <doc://com.apple.documentation/documentation/SwiftUI/View/onContinueUserActivity(_:perform:)> (SwiftUI) or <doc://com.apple.documentation/documentation/UIKit/UIApplicationDelegate/application(_:continue:restorationHandler:)> (UIKit). Inspect the <doc://com.apple.documentation/documentation/Foundation/NSUserActivity> to verify that the activity type is [`containerAppLaunchActivityType`](/documentation/LiveCommunicationKit/LiveAssistance/containerAppLaunchActivityType). If so, retrieve the launch reason and the request identifier from the <doc://com.apple.documentation/documentation/Foundation/NSUserActivity/userInfo>. The launch reason indicates whether the extension needs the app to authenticate the person requesting the service, or if they need to perform some other configuration or approval. Once your app resolves that, you use the request identifier and call [`returnToCall(requestID:)`](/documentation/LiveCommunicationKit/LiveAssistance/returnToCall(requestID:)) to resume or relaunch the extension and continue setting up the live assistance service.

The following example shows how a SwiftUI container app would handle being launched in response to a request from its app extension. It retrieves the request identifier and launch reason from the <doc://com.apple.documentation/documentation/Foundation/NSUserActivity>, and then calls an asynchronous `myHandleAccessibilityLaunch(requestID:reason:)` method to handle any needed login or configuration and then resume the request.

```swift
var body: some Scene {
    WindowGroup {
        ContentView()
            .onContinueUserActivity(LiveAssistance.containerAppLaunchActivityType) { activity in
                guard
                    let requestID = activity.userInfo?[LiveAssistance.containerAppLaunchRequestIDKey] as? /// UUID,
                    let rawReason = activity.userInfo?[LiveAssistance.containerAppLaunchReasonKey] as? /// String,
                    let reason = LiveAssistanceLaunchReason(rawValue: rawReason)
                else { return }
                Task { await myHandleAccessibilityLaunch(requestID: requestID, reason: reason) }
            }
    }
}
```

## Topics

### Identifying the app extension

[`static let extensionPointName: String`](/documentation/LiveCommunicationKit/LiveAssistance/extensionPointName)

The extension point identifier.

### Responding to a container app launch

[`static let containerAppLaunchActivityType: String`](/documentation/LiveCommunicationKit/LiveAssistance/containerAppLaunchActivityType)

The user activity type sent to the container app.

[`static let containerAppLaunchRequestIDKey: String`](/documentation/LiveCommunicationKit/LiveAssistance/containerAppLaunchRequestIDKey)

A key the container app uses to retrieve a unique identifier for the live assistance request.

[`static let containerAppLaunchReasonKey: String`](/documentation/LiveCommunicationKit/LiveAssistance/containerAppLaunchReasonKey)

A key the container app uses to retrieve the reason the app extension requested the framework to launch the container app.

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

A type that indicates why the live assistance extension needs to launch its container app.

### Returning to a call

[`static func returnToCall(requestID: UUID)`](/documentation/LiveCommunicationKit/LiveAssistance/returnToCall(requestID:))

Requests that framework return to the FaceTime call, in order to resume the live assistance request.



---

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)