<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "PushToTalk",
  "identifier" : "/documentation/PushToTalk",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "Push to Talk"
    ],
    "preciseIdentifier" : "PushToTalk"
  },
  "title" : "Push to Talk"
}
-->

# Push to Talk

Display the system user interface for your app’s Push to Talk services.

## Overview

The Push to Talk framework is a power-efficient, user-friendly, and privacy-focused API. It gives your apps the ability to provide user interface controls that allow your users to transmit audio from anywhere. It supplies an ephemeral Apple Push Notification service token so the system can wake your app in the background to handle incoming audio while a session is ongoing.

> Note:
> Push to Talk services aren’t available to compatible iPad and iPhone apps running in visionOS.

## Topics

### Essentials

[Creating a Push to Talk app](/documentation/PushToTalk/creating-a-push-to-talk-app)

Build a walkie-talkie style app with system user interface controls.

[`PTChannelManager`](/documentation/PushToTalk/PTChannelManager)

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

### Channel management

[`PTChannelManagerDelegate`](/documentation/PushToTalk/PTChannelManagerDelegate)

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

[`PTTransmissionMode`](/documentation/PushToTalk/PTTransmissionMode)

Identifies the type of audio transmission modes.

[`PTServiceStatus`](/documentation/PushToTalk/PTServiceStatus)

Identifies the type that indicates the status of the service.

[`PTChannelJoinReason`](/documentation/PushToTalk/PTChannelJoinReason)

Identifies the type that indicates the join reason.

[`PTChannelLeaveReason`](/documentation/PushToTalk/PTChannelLeaveReason)

Identifies the type that indicates the leave reason.

[`PTChannelTransmitRequestSource`](/documentation/PushToTalk/PTChannelTransmitRequestSource)

Identifies the type that indicates the transmission request source.

### Channel restoration

[`PTChannelDescriptor`](/documentation/PushToTalk/PTChannelDescriptor)

An object that describes a channel.

[`PTChannelRestorationDelegate`](/documentation/PushToTalk/PTChannelRestorationDelegate)

A type that represents the channel restoration behavior.

### Channel participants

[`PTParticipant`](/documentation/PushToTalk/PTParticipant)

An object that represents a participant.

### Push notification results

[`PTPushResult`](/documentation/PushToTalk/PTPushResult)

An object that represents a push result.

### Push to Talk errors

[`PTChannelError`](/documentation/PushToTalk/PTChannelError-swift.struct)

A structure that represents a channel error.

[`PTChannelError.Code`](/documentation/PushToTalk/PTChannelError-swift.struct/Code)

Error codes for channel operations.

[`PTInstantiationError`](/documentation/PushToTalk/PTInstantiationError-swift.struct)

A structure that represents an instantiation error.

[`PTInstantiationError.Code`](/documentation/PushToTalk/PTInstantiationError-swift.struct/Code)

Error codes for instantiation operations.

[`PTChannelErrorDomain`](/documentation/PushToTalk/PTChannelErrorDomain)

A string representation of the channel error domain.

[`PTInstantiationErrorDomain`](/documentation/PushToTalk/PTInstantiationErrorDomain)

A string representation of the instantiation error domain.



---

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)