---
title: PTChannelManager
framework: pushtotalk
role: symbol
role_heading: Class
path: pushtotalk/ptchannelmanager
---

# PTChannelManager

An object that represents a push-to-talk channel manager.

## Declaration

```swift
class PTChannelManager
```

## Mentioned in

Creating a Push to Talk app

## Overview

Overview You must create a channel manager upon launching your app, otherwise the system tears down channels and their ability to receive push notifications. By providing a PTChannelRestorationDelegate, an app can rejoin or leave a previously active channel the system knows about. Once the channel resoration process completes, the system provides a PTChannelManager instance. // Create a channel manager instance.     channelManager = try await PTChannelManager.channelManager(delegate: self,                                                            restorationDelegate: self) Multiple calls to channelManager(delegate:restorationDelegate:completionHandler:) result in the system returning the same shared instance, so store the channel manager in an instance variable.

## Topics

### Creating a channel manager

- [channelManager(delegate:restorationDelegate:completionHandler:)](pushtotalk/ptchannelmanager/channelmanager(delegate:restorationdelegate:completionhandler:).md)

### Inspecting the channel manager

- [activeChannelUUID](pushtotalk/ptchannelmanager/activechanneluuid.md)

### Joining and leaving a channel

- [requestJoinChannel(channelUUID:descriptor:)](pushtotalk/ptchannelmanager/requestjoinchannel(channeluuid:descriptor:).md)
- [leaveChannel(channelUUID:)](pushtotalk/ptchannelmanager/leavechannel(channeluuid:).md)

### Setting the transmission mode

- [setTransmissionMode(_:channelUUID:completionHandler:)](pushtotalk/ptchannelmanager/settransmissionmode(_:channeluuid:completionhandler:).md)

### Starting and stopping transmission

- [requestBeginTransmitting(channelUUID:)](pushtotalk/ptchannelmanager/requestbegintransmitting(channeluuid:).md)
- [stopTransmitting(channelUUID:)](pushtotalk/ptchannelmanager/stoptransmitting(channeluuid:).md)
- [setAccessoryButtonEventsEnabled(_:channelUUID:completionHandler:)](pushtotalk/ptchannelmanager/setaccessorybuttoneventsenabled(_:channeluuid:completionhandler:).md)

### Setting participants

- [setActiveRemoteParticipant(_:channelUUID:completionHandler:)](pushtotalk/ptchannelmanager/setactiveremoteparticipant(_:channeluuid:completionhandler:).md)

### Setting the channel descriptor

- [setChannelDescriptor(_:channelUUID:completionHandler:)](pushtotalk/ptchannelmanager/setchanneldescriptor(_:channeluuid:completionhandler:).md)

### Setting the service status

- [setServiceStatus(_:channelUUID:completionHandler:)](pushtotalk/ptchannelmanager/setservicestatus(_:channeluuid:completionhandler:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Essentials

- [Creating a Push to Talk app](pushtotalk/creating-a-push-to-talk-app.md)
