PTT - Server & Security

Hi there,

from the video I have the impression that a local push to talk server is required in order to let the participants of the PTT service connect and use the service. Is that correct? If so, are there any requirements to set this up?

Generally I have not seen any information about security settings.

Can it be prevented that "outsiders" cannot connect to channels and listen to the audio messages? Furthermore, can you elaborate on potential usage of e.g. per app VPN connectivity to further enhance security?

Is it possible to maintain a catalog of actively channels so that users can "hop" from one channel to another one?

From the video I understand that an app can only join a single channel at a time. Is there modification possible to allow users to listen to multiple channels ? Clearly users should only be able to send one audio message to one channel, but it is a under stable use case to support listening to multiple channels.

Thanks Marco

Replies

The Push to Talk API is extraordinarily flexible.

It's designed to allow you to re-use components you may already have from a foreground push to talk experience, or components from a VoIP calling app.

You bring your own, custom infrastructure:

  1. Internet-connected push to talk server
  2. Your choice of networking APIs and protocols (so long as you can send pushes to APNS to wake the device for incoming audio.) We recommend using QUIC to provide low latency when sending and receiving encrypted audio packets.
  3. End-to-end encryption and transport-level encryption and related security protocols.
  4. Implementation for playing and recording audio. (You'll configure your own AVAudioSession that the system activates/deactivates, and likely use AVAudioEngine, just as you would in a VoIP calling app.)

PushToTalk.framework primarily helps your app and the system notify each other about major lifecycle events (such as transmit and receive) in the background and display them in the system user interface.

It makes it easy to conserve battery life by using the APNS push token to launch/wake your app for incoming audio events, so that the phone sleeps when audio is not playing.

With regards to multiple channels, we currently only support one channel in the system user interface. It is technically possible to "multiplex" multiple channels into one if you need to receive audio across multiple channels. However, it's critical that your users have a clear understanding of what channel they will transmit on. (i.e. you wouldn't want them to accidentally say something to the wrong group of people...)

  • Also, the Push to Talk system user interface provides a tappable shortcut to open your app into the foreground, so that users can configure which channel to transmit/receive on.

Add a Comment

Hi Marco,

I wanted to see if you were bale to make any headway in this area?

Were you able to successfully set a PPT server? What solution did you use? Were you to allow users to listen to multiple channels at once?

Any help would be greatly appreciated.

Thanks, Justin

Hi

thanks for the reply

I am now able to join a channel, record an audio, but am not sure how to trigger the didEndTransmitting call, i.e. what needs to happen after recording (and transmitting the audio file to the server backend)?

thanks Marco