How to send PTT push for incomingServiceUpdatePush?

I was recently made aware of a relatively new method on PTChannelManagerDelegate that allows the backend infrastructure to update the PTT service on a device.

incomingServiceUpdatePush(channelManager:channelUUID:pushPayload:isHighPriority:remainingHighPriorityBudget:completion:)

I remember the person stated that there was a specific format that the payload must have, but I am unable to find any documentation about it.

Can somebody point me to documentation on how to send this type of push notification for incomingServiceUpdatePush or give me an example payload? I believe it uses the same PTT push token, but if the headers are different, then please specify those differences too. Thanks!

Answered by DTS Engineer in 843307022

Can somebody point me to documentation on how to send this type of push notification for incomingServiceUpdatePush or give me an example payload?

No, but please do file a bug about this and post the bug number back here, as this really should be in the public documentation. Having said that, you are in fact the second person who's ever asked about this (the first being the team who asked us to add this feature).

give me an example payload?

Here is the quick summary:

  • They are sent using the PTT token.

  • The push topic is "pushtotalk".

  • The push payload includes the key "ptt-push-type" with a value of "service-update".

Here is an example using curl:

curl -v \
   -d ‘{“aps”:{“ptt-push-type”:”service-update”,…}}’ \
   -H "apns-push-type: pushtotalk" \
   -H "apns-topic: <App bundle id>.voip-ptt” \
   -H "apns-priority: 10" \
   -H "apns-expiration: 0" \
   --http2 \
   --cert <The certificate key name>.pem \
https://api.sandbox.push.apple.com/3/device/<token>

Keep in mind that, as the documentation notes, service updates are budgeted* and delivery will stop if/when the app exceeds it's budge. Using lower priority can reduce that impact, allowing more service pushes to be sent. However, I would recommend treating these as a limited resource and only using them as a tool for critical operations where there isn't any other alternative.

*We're unlikely to document the specific of our budgeting behavior, as they could change at any time. However, the budget is currently ~1 high priority push every ~10-15+ minutes, with the budget resetting every ~60 minutes.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Accepted Answer

Can somebody point me to documentation on how to send this type of push notification for incomingServiceUpdatePush or give me an example payload?

No, but please do file a bug about this and post the bug number back here, as this really should be in the public documentation. Having said that, you are in fact the second person who's ever asked about this (the first being the team who asked us to add this feature).

give me an example payload?

Here is the quick summary:

  • They are sent using the PTT token.

  • The push topic is "pushtotalk".

  • The push payload includes the key "ptt-push-type" with a value of "service-update".

Here is an example using curl:

curl -v \
   -d ‘{“aps”:{“ptt-push-type”:”service-update”,…}}’ \
   -H "apns-push-type: pushtotalk" \
   -H "apns-topic: <App bundle id>.voip-ptt” \
   -H "apns-priority: 10" \
   -H "apns-expiration: 0" \
   --http2 \
   --cert <The certificate key name>.pem \
https://api.sandbox.push.apple.com/3/device/<token>

Keep in mind that, as the documentation notes, service updates are budgeted* and delivery will stop if/when the app exceeds it's budge. Using lower priority can reduce that impact, allowing more service pushes to be sent. However, I would recommend treating these as a limited resource and only using them as a tool for critical operations where there isn't any other alternative.

*We're unlikely to document the specific of our budgeting behavior, as they could change at any time. However, the budget is currently ~1 high priority push every ~10-15+ minutes, with the budget resetting every ~60 minutes.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Feedback suggestion FB17995826 created for documentation to be updated.

Perfect, thank you!

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

How to send PTT push for incomingServiceUpdatePush?
 
 
Q