Enhance voice communication with Push to Talk

RSS for tag

Discuss the WWDC22 Session Enhance voice communication with Push to Talk

Posts under wwdc2022-10117 tag

15 Posts

Post

Replies

Boosts

Views

Activity

Push to talk Framework and Audio Session
I am receiving a push through "incomingPushResultForChannelManager" of Push to talk Framework and setting a remote participant through "pushResultForActiveRemoteParticipant" or setting a remote participant using "setActiveRemoteParticipant" directly in the PTT App without receiving a push. When the app establishes a remote participant on a channel, an Audio Session is started anew and will receive an active Audio Session. The problem is that the time to activate this Audio Session is not short. For this reason, there are many cases where the first part of the other party's voice passes without being played. Also, if the app is running in the foreground, even if it doesn't acquire a new audio session, it can play the voice through the app's own audio session. However, by restarting the Audio Session, the Audio Session is changed unnecessarily and the voice playback is delayed. Question. Can I set the Audio Session to not change when setting the remote participant's information? If this is not possible, please advise on a solution for the case where the audio session is activated after the voice starts to be received.
2
0
2.0k
Oct ’23
Source code for Push To Talk demo app?
I was just watching the Enhance voice communication with Push To Talk WWDC22 session video and was wondering (a few questions) -- (1) (when) will you be making the demo app available that was shown at the beginning of the video? (2) There was some detail given regarding the new APNs push type ("pushtotalk"), but it was unclear to me if that's something I need to handle manually, or if those will be sent automatically when I do channelManager.requestBeginTransmitting? (3) How does the audio data itself get routed around? Is that handled by the system between the requestBeginTransmitting and stopTransmitting calls? Or somehow part of the APNs payload? Or something we must handle? Thank you! thanks!!
6
1
3.9k
Oct ’23
I cannot Configure our audio session and begin recording
hi , trying to call begin transmission method by System UI, but I cannot wait for the framework to call this method  func channelManager(   _ channelManager: PTChannelManager,   didActivate audioSession: AVAudioSession ) If this method cannot callback, I cannot Configure our audio session and begin recording, I don’t know how to that?
1
0
1.3k
May ’23
pushtotalk is not a valid value for apns-push-type in Firebase cloud messaging
Hello, we are unable to use the ios push to talk framework using cloud messaging. it says that Error: Invalid [apns-push-type] set for apns platform. IOS manual says that the push type to be set to pushtotalk. but thsi s not allowed in messaging().send(message) const message = { notification: { title: 'test' }, apns: { headers: { 'apns-push-type': 'pushtotalk', 'apns-topic': xxx.xxx.xxx.voip-ptt', 'apns-priority' : '10', 'apns-expiration' : '0' }, payload: { aps: { 'mutable-content': 1 } }, fcm_options: { } }, webpush: { headers: { } }, topic: topicval
1
0
879
May ’23
PushToTalk: Issues with beginning transmission
Hi, trying to implement a simple PushToTalk app but I cannot seem to begin transmitting. When I start a transmission programmatically in my app in the foreground: self.channelManager.requestBeginTransmitting(channelUUID: channelUUID) This throws an error: Error Domain=com.apple.pushtotalk.channel Code=1 "(null)" Which seems to map to the appNotForeground error? https://developer.apple.com/documentation/pushtotalk/ptchannelerror/code When I try transmitting from the background, nothing happens at all. Any thoughts?
6
0
3.2k
Nov ’22
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
3
0
3k
Sep ’22
Is there configuration to allow PushToTalk to have priority over Telephony or Facetime calls?
Is there the ability through configuration to allow PushToTalk (PTT) to have priority over Telephony or Facetime calls if the user desires that? In a public safety focused PTT application there could be times where the PTT application may be more important than a telephone or Facetime call to a first responder. In the perfect world a responder would be able to manage both telephone and PTT calls at the same time. For example, put the telephony call on hold during the PTT call or work both at the same time. Working both at the same time might look something like this: route outbound audio to PTT while the PTT button is held and route audio to the phone call while the PTT button is not held down. Incoming PTT audio and phone or Facetime audio could be mixed or one played in the headset and the other played from the phones speaker. Thanks in advance for responding to this question.
1
0
1.9k
Aug ’22
Push to talk: how is the push token supposed to be used if its lifetime is ephemeral?
I don't understand how the push tokens are supposed to be used with push to talk given that their lifetime is ephemeral and they become invalid as soon as a channel is left. Suppose there is phone A and phone B, both with a PTT app installed on it. Then on phone A if the user launches the app and, for example, pushes a button to initiate a talk session with user B, then the app on phone A will join a channel and this will result in receivedEphemeralPushToken() getting called. Then if phone A sends that push token to the server, well then what next though? How is the user on phone B going to be informed that the user on phone A wants to talk to them. The server can't send a push to phone B using that token because that's the token for phone A. If the server has a token from phone B stored from previously, then the push isn't going to work because the documentation says the push token's lifetime is empemeral and will end as soon as the channel is left. So that channel for B's push token would have been left hours, or days or even months in the past. Summary: if user A wants to talk to user B, how does user B's app get notified user A want's to talk to them if the push tokens' lifetimes are all ephemeral?
1
1
1.3k
Aug ’22
PTT - PushToTalk - App Identifier Register
Hi there, I am trying to register for an App Identifier with the new PushToTalk Capability but getting the following message This request is forbidden for security reasons The selected team does not have a program membership that is eligible for this feature. If you need assistance, please contact Apple Developer Program Support. https://developer.apple.com/support We have enrolled for Annual Apple Developer Program Could you please help us in resolving this error.
2
0
1.5k
Jun ’22
New PushToTalk Framework - Demo Code
Please let us know whether any standards are being followed by New PushToTalk Framework. Existing PushKit Framework will still exist for voip PTT calls [On Devices running 15.x OS and below]. How does our application behave with respect to PushKit Framework when we compile/link against 16.x SDK and entitlements [ unrestricted.voip, unrestricted.voip-ptt ] . Our application minimum deployment target is 11.0 3. Is there a sample code which demonstrates the usage of API. Appreciate if you can send us a link/copy of the sample project 4. channelUUID - Is there any additional article/document on this? 5. As per document, we can be active on one single channel at any given time, Is it possible to just join multiple channels and not be active? 6. joinTheChannel - Apart from getting us a new Push Token , what exactly does this API do? 6 . (PTPushResult *)incomingPushResultForChannelManager:(PTChannelManager *)channelManager channelUUID:(NSUUID *)channelUUID pushPayload:(NSDictionary<NSString *,id> *)pushPayload; channelUUID part of incomingPush API refers to self channelUUID / remoteChannelUUID
2
1
2.4k
Jun ’22
Push to talk Framework and Audio Session
I am receiving a push through "incomingPushResultForChannelManager" of Push to talk Framework and setting a remote participant through "pushResultForActiveRemoteParticipant" or setting a remote participant using "setActiveRemoteParticipant" directly in the PTT App without receiving a push. When the app establishes a remote participant on a channel, an Audio Session is started anew and will receive an active Audio Session. The problem is that the time to activate this Audio Session is not short. For this reason, there are many cases where the first part of the other party's voice passes without being played. Also, if the app is running in the foreground, even if it doesn't acquire a new audio session, it can play the voice through the app's own audio session. However, by restarting the Audio Session, the Audio Session is changed unnecessarily and the voice playback is delayed. Question. Can I set the Audio Session to not change when setting the remote participant's information? If this is not possible, please advise on a solution for the case where the audio session is activated after the voice starts to be received.
Replies
2
Boosts
0
Views
2.0k
Activity
Oct ’23
Source code for Push To Talk demo app?
I was just watching the Enhance voice communication with Push To Talk WWDC22 session video and was wondering (a few questions) -- (1) (when) will you be making the demo app available that was shown at the beginning of the video? (2) There was some detail given regarding the new APNs push type ("pushtotalk"), but it was unclear to me if that's something I need to handle manually, or if those will be sent automatically when I do channelManager.requestBeginTransmitting? (3) How does the audio data itself get routed around? Is that handled by the system between the requestBeginTransmitting and stopTransmitting calls? Or somehow part of the APNs payload? Or something we must handle? Thank you! thanks!!
Replies
6
Boosts
1
Views
3.9k
Activity
Oct ’23
Enhance voice communication with Push to Talk
Hello, Do you recommend to use Push to Talk for Voip apps ?
Replies
1
Boosts
0
Views
1.3k
Activity
Oct ’23
PushToTalk Backend Requirements
I'm looking to see if someone could point me in the right direction in terms of understanding what's needed for to host a backend server for the new Push To Talk API. Additionally, I'm curious to know what type of latency times people are getting. We've ran a mumble server which unfortunately had a considerable amount of latency.
Replies
1
Boosts
1
Views
1.9k
Activity
May ’23
I cannot Configure our audio session and begin recording
hi , trying to call begin transmission method by System UI, but I cannot wait for the framework to call this method  func channelManager(   _ channelManager: PTChannelManager,   didActivate audioSession: AVAudioSession ) If this method cannot callback, I cannot Configure our audio session and begin recording, I don’t know how to that?
Replies
1
Boosts
0
Views
1.3k
Activity
May ’23
Push To Talk first recording bug
How to reproduce: Launch ptt app join channel call requestBeginTransmitting in delegate method didActivate audioSession prepare AVAudioRecorder and call record Error: AVAudioRecorder.record() returns false If I reinstantiate and run AVAudioRecorder.record() right away then it returns true. It happens only on first audio recording after app launch.
Replies
3
Boosts
0
Views
1.1k
Activity
May ’23
pushtotalk is not a valid value for apns-push-type in Firebase cloud messaging
Hello, we are unable to use the ios push to talk framework using cloud messaging. it says that Error: Invalid [apns-push-type] set for apns platform. IOS manual says that the push type to be set to pushtotalk. but thsi s not allowed in messaging().send(message) const message = { notification: { title: 'test' }, apns: { headers: { 'apns-push-type': 'pushtotalk', 'apns-topic': xxx.xxx.xxx.voip-ptt', 'apns-priority' : '10', 'apns-expiration' : '0' }, payload: { aps: { 'mutable-content': 1 } }, fcm_options: { } }, webpush: { headers: { } }, topic: topicval
Replies
1
Boosts
0
Views
879
Activity
May ’23
PushToTalk: Issues with beginning transmission
Hi, trying to implement a simple PushToTalk app but I cannot seem to begin transmitting. When I start a transmission programmatically in my app in the foreground: self.channelManager.requestBeginTransmitting(channelUUID: channelUUID) This throws an error: Error Domain=com.apple.pushtotalk.channel Code=1 "(null)" Which seems to map to the appNotForeground error? https://developer.apple.com/documentation/pushtotalk/ptchannelerror/code When I try transmitting from the background, nothing happens at all. Any thoughts?
Replies
6
Boosts
0
Views
3.2k
Activity
Nov ’22
Type 'ViewController' cannot conform to protocol 'PTChannelManagerDelegate' because it has requirements that cannot be satisfied
Is there a demo for Push To Talk?
Replies
1
Boosts
0
Views
1.8k
Activity
Sep ’22
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
3
Boosts
0
Views
3k
Activity
Sep ’22
Is there configuration to allow PushToTalk to have priority over Telephony or Facetime calls?
Is there the ability through configuration to allow PushToTalk (PTT) to have priority over Telephony or Facetime calls if the user desires that? In a public safety focused PTT application there could be times where the PTT application may be more important than a telephone or Facetime call to a first responder. In the perfect world a responder would be able to manage both telephone and PTT calls at the same time. For example, put the telephony call on hold during the PTT call or work both at the same time. Working both at the same time might look something like this: route outbound audio to PTT while the PTT button is held and route audio to the phone call while the PTT button is not held down. Incoming PTT audio and phone or Facetime audio could be mixed or one played in the headset and the other played from the phones speaker. Thanks in advance for responding to this question.
Replies
1
Boosts
0
Views
1.9k
Activity
Aug ’22
Push to talk: how is the push token supposed to be used if its lifetime is ephemeral?
I don't understand how the push tokens are supposed to be used with push to talk given that their lifetime is ephemeral and they become invalid as soon as a channel is left. Suppose there is phone A and phone B, both with a PTT app installed on it. Then on phone A if the user launches the app and, for example, pushes a button to initiate a talk session with user B, then the app on phone A will join a channel and this will result in receivedEphemeralPushToken() getting called. Then if phone A sends that push token to the server, well then what next though? How is the user on phone B going to be informed that the user on phone A wants to talk to them. The server can't send a push to phone B using that token because that's the token for phone A. If the server has a token from phone B stored from previously, then the push isn't going to work because the documentation says the push token's lifetime is empemeral and will end as soon as the channel is left. So that channel for B's push token would have been left hours, or days or even months in the past. Summary: if user A wants to talk to user B, how does user B's app get notified user A want's to talk to them if the push tokens' lifetimes are all ephemeral?
Replies
1
Boosts
1
Views
1.3k
Activity
Aug ’22
PushToTalk in background
When App is in background , it is suspended. And PushToTalk is shown in Status bar. When user click s on that, Application gets CPU. Which callback is called when PushToTalk on status bar is clicked.
Replies
1
Boosts
0
Views
968
Activity
Aug ’22
PTT - PushToTalk - App Identifier Register
Hi there, I am trying to register for an App Identifier with the new PushToTalk Capability but getting the following message This request is forbidden for security reasons The selected team does not have a program membership that is eligible for this feature. If you need assistance, please contact Apple Developer Program Support. https://developer.apple.com/support We have enrolled for Annual Apple Developer Program Could you please help us in resolving this error.
Replies
2
Boosts
0
Views
1.5k
Activity
Jun ’22
New PushToTalk Framework - Demo Code
Please let us know whether any standards are being followed by New PushToTalk Framework. Existing PushKit Framework will still exist for voip PTT calls [On Devices running 15.x OS and below]. How does our application behave with respect to PushKit Framework when we compile/link against 16.x SDK and entitlements [ unrestricted.voip, unrestricted.voip-ptt ] . Our application minimum deployment target is 11.0 3. Is there a sample code which demonstrates the usage of API. Appreciate if you can send us a link/copy of the sample project 4. channelUUID - Is there any additional article/document on this? 5. As per document, we can be active on one single channel at any given time, Is it possible to just join multiple channels and not be active? 6. joinTheChannel - Apart from getting us a new Push Token , what exactly does this API do? 6 . (PTPushResult *)incomingPushResultForChannelManager:(PTChannelManager *)channelManager channelUUID:(NSUUID *)channelUUID pushPayload:(NSDictionary<NSString *,id> *)pushPayload; channelUUID part of incomingPush API refers to self channelUUID / remoteChannelUUID
Replies
2
Boosts
1
Views
2.4k
Activity
Jun ’22