I have a question regarding the Vivox docs and their example code they use for server-side token generation (see below). Specifically, for the “claims” variable,
Is the “iss” entry the actual issuer id (like “12345-gamename_-67891-udash”, for example)?
What are the possible values for the “vxa” entry?
For the “f” and “t” entries, do I keep those same formats, and just replace username with the player’s name, and channelname with the channel name?
If I’m just logging in (not joining yet), what do I put fur the “t” entry (since I don’t have a channel name yet when logging in)?
Depending on what operation you are performing, some values are not needed. For example on the Example: Login token page you can see that “t” is not provided.
So the login method works, but the joining fails.
I followed exactly the formatting as detailed here: Join Token
What happens is that it starts connecting, and then immediately disconnects through my OnChannelSessionConnectionStateChanged event (as shown below). I then get this warning:
VivoxCore: Warning: req_sessiongroup_remove_session failed for 1001:Target Object Does Not Exist
Note that when I use ChannelSession.GetConnectToken(VIVOX_VOICE_TOKEN_KEY, TokenExpiration); (with a hard-coded key), joining is always successful
Also, I actually took the example in Join Token, ran it through my javascript server code, and it returned the exact token that the example prints. So the server code seems to work.
So why is joining failing?
Yes, the issue is what I thought. You are using a positional channel, but you are not including the positional parameters in the VAT. The value in the “t” must be identical to the channel ID.
For example, if your channel is: sip:confctl-d-12345-abcd_-56789-udash.testChannel!p-8100-2000-1.000-2@mtu1xp.vivox.com
then that is the value for the “t” parameter. If there is a difference of even 1 character, the channel is not the same as what you are joining and the VAT will not work.