<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -",
    "macCatalyst: 16.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PushToTalk",
  "identifier" : "/documentation/PushToTalk/PTChannelManagerDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Push to Talk"
    ],
    "preciseIdentifier" : "c:objc(pl)PTChannelManagerDelegate"
  },
  "title" : "PTChannelManagerDelegate"
}
-->

# PTChannelManagerDelegate

A type that represents your life cycle of a channel manager.

```
protocol PTChannelManagerDelegate : NSObjectProtocol
```

## Topics

### Beginning or ending transmission

[`func channelManager(PTChannelManager, channelUUID: UUID, didBeginTransmittingFrom: PTChannelTransmitRequestSource)`](/documentation/PushToTalk/PTChannelManagerDelegate/channelManager(_:channelUUID:didBeginTransmittingFrom:))

Tells the observer that transmission began.

[`func channelManager(PTChannelManager, channelUUID: UUID, didEndTransmittingFrom: PTChannelTransmitRequestSource)`](/documentation/PushToTalk/PTChannelManagerDelegate/channelManager(_:channelUUID:didEndTransmittingFrom:))

Tells the observer that transmission ended.

[`func channelManager(PTChannelManager, failedToBeginTransmittingInChannel: UUID, error: any Error)`](/documentation/PushToTalk/PTChannelManagerDelegate/channelManager(_:failedToBeginTransmittingInChannel:error:))

Tells the observer that transmission failed to begin.

[`func channelManager(PTChannelManager, failedToStopTransmittingInChannel: UUID, error: any Error)`](/documentation/PushToTalk/PTChannelManagerDelegate/channelManager(_:failedToStopTransmittingInChannel:error:))

Tells the observer that transmission failed to stop.

[`func incomingServiceUpdatePush(channelManager: PTChannelManager, channelUUID: UUID, pushPayload: [String : Any], isHighPriority: Bool, remainingHighPriorityBudget: Int, completion: () -> Void)`](/documentation/PushToTalk/PTChannelManagerDelegate/incomingServiceUpdatePush(channelManager:channelUUID:pushPayload:isHighPriority:remainingHighPriorityBudget:completion:))

Extracts the service update data from the notification’s payload to perform the relevant task for that data.

### Activating and deactivating the audio session

[`func channelManager(PTChannelManager, didActivate: AVAudioSession)`](/documentation/PushToTalk/PTChannelManagerDelegate/channelManager(_:didActivate:))

Tells the observer the audio session activated.

[`func channelManager(PTChannelManager, didDeactivate: AVAudioSession)`](/documentation/PushToTalk/PTChannelManagerDelegate/channelManager(_:didDeactivate:))

Tells the observer the audio session deactivated.

### Joining and leaving a channel

[`func channelManager(PTChannelManager, didJoinChannel: UUID, reason: PTChannelJoinReason)`](/documentation/PushToTalk/PTChannelManagerDelegate/channelManager(_:didJoinChannel:reason:))

Tells the observer that the app successfully joined a Push to Talk channel.

[`func channelManager(PTChannelManager, didLeaveChannel: UUID, reason: PTChannelLeaveReason)`](/documentation/PushToTalk/PTChannelManagerDelegate/channelManager(_:didLeaveChannel:reason:))

Tells the observer that the app left a Push to Talk channel.

[`func channelManager(PTChannelManager, failedToJoinChannel: UUID, error: any Error)`](/documentation/PushToTalk/PTChannelManagerDelegate/channelManager(_:failedToJoinChannel:error:))

Tells the observer that the app failed to join a Push to Talk channel.

[`func channelManager(PTChannelManager, failedToLeaveChannel: UUID, error: any Error)`](/documentation/PushToTalk/PTChannelManagerDelegate/channelManager(_:failedToLeaveChannel:error:))

Tells the observer that the app failed to leave a Push to Talk channel.

### Getting a push token

[`func channelManager(PTChannelManager, receivedEphemeralPushToken: Data)`](/documentation/PushToTalk/PTChannelManagerDelegate/channelManager(_:receivedEphemeralPushToken:))

Tells the observer that the app received a push token after you create a channel manager.

### Handling the push result

[`func incomingPushResult(channelManager: PTChannelManager, channelUUID: UUID, pushPayload: [String : Any]) -> PTPushResult`](/documentation/PushToTalk/PTChannelManagerDelegate/incomingPushResult(channelManager:channelUUID:pushPayload:))

Tells the observer that the app has a push available to handle.

## Relationships

### Inherits From

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

---

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)