<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVSystemRouting",
  "identifier" : "/documentation/AVSystemRouting/AVSystemRoute-5s2um",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVSystemRouting"
    ],
    "preciseIdentifier" : "s:15AVSystemRouting0A5RouteC"
  },
  "title" : "AVSystemRoute"
}
-->

# AVSystemRoute

An active media route to a remote device that manages connection and communication for media playback and data exchange.

```
final class AVSystemRoute
```

## Overview

Use this object to control playback sessions, communicate with remote applications through data channels, and manage the lifecycle of remote connections.

The system route provides a high-level abstraction for routing media content to external devices
such as TVs, speakers, or other compatible endpoints. You can create multiple
sessions on a single route to manage different playback contexts or communication channels.

## Manage sessions

Create an [`AVSystemRouteSession`](/documentation/AVSystemRouting/AVSystemRouteSession-gp78) to initiate playback or communication with the remote device.

## Access the protocol identifier

The [`protocolType`](/documentation/AVSystemRouting/AVSystemRoute-5s2um/protocolType) property identifies the communication protocol used by the active route.

## Send and receive data

Use the [`routeDataChannel`](/documentation/AVSystemRouting/AVSystemRoute-5s2um/routeDataChannel) property to send and receive custom data with the extension
outside of any media session. This enables control messages, state synchronization, and
other bidirectional communication needs.

## Topics

### Classes

[`class DataChannel`](/documentation/AVSystemRouting/AVSystemRoute-5s2um/DataChannel)

An object that manages bidirectional data communication with a remote application.

### Instance Properties

[`var protocolType: UTType`](/documentation/AVSystemRouting/AVSystemRoute-5s2um/protocolType)

The communication protocol the active route uses.

[`var routeDataChannel: AVSystemRoute.DataChannel`](/documentation/AVSystemRouting/AVSystemRoute-5s2um/routeDataChannel)

A data channel for communicating with the extension outside of any media session.

[`var routeDisplayName: String`](/documentation/AVSystemRouting/AVSystemRoute-5s2um/routeDisplayName)

The user-facing display name of the remote device or route.

[`var routeSymbolName: String`](/documentation/AVSystemRouting/AVSystemRoute-5s2um/routeSymbolName)

The SF Symbol name representing the remote device or route.

### Instance Methods

[`func addSession(AVSystemRouteSession) -> Bool`](/documentation/AVSystemRouting/AVSystemRoute-5s2um/addSession(_:))

Adds a session to the active route.

[`func removeSession(AVSystemRouteSession)`](/documentation/AVSystemRouting/AVSystemRoute-5s2um/removeSession(_:))

Removes a session from the active route.

### Enumerations

[`enum LaunchMode`](/documentation/AVSystemRouting/AVSystemRoute-5s2um/LaunchMode)

The mode that determines how media playback launches on a remote device.

## Relationships

### Conforms To

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Sendable`](/documentation/Swift/Sendable)

---

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)