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?

Currently, the underlying PTT push token does not rotate, even after leaving and rejoining a channel. This is to improve reliability of the overall feature and simplify things.

However, when the user leaves the channel, the push token does become 'inactive', such that the server drops the pushes on the floor.

Upon joining a channel from your app in the foreground, the token reactivates.

So the term "ephemeral" here means that it's 'only active when a channel is connected', and not that it rotates.

Push to talk: how is the push token supposed to be used if its lifetime is ephemeral?
 
 
Q