Documentation

​
​

Development

User Acquisition

Monetization

Industry

Vivox Core SDK

Vivox Core SDK

Vivox
​
​
Vivox Core SDK
  • Overview
  • Before you begin
  • Get started
  • Release notes
  • Developer Guide
    • Client SDK basics
    • Channels
      • Channel name criteria
      • Channel types
      • Echo channels
      • Positional channels
      • Volume differences
      • Channel identifiers for large scale games
      • Participant events
      • Channel webhooks
      • Join a channel
        • Request capture device access
        • Initiate a channel join
      • Leave a channel
      • Kick a user from a channel
      • Manage session groups
      • Audio injection
      • Methods for setting audio levels
      • Derumbler
      • Automatic connection recovery
    • Presence management
    • Messaging
    • Manage audio
    • Couch co-op
    • Android app development
    • iOS app development
    • macOS app development
    • Windows app development
    • Real-time recording
    • Speech-to-text audio transcription
    • Text-to-speech
    • Troubleshooting
  • Reference
  • Privacy overview
  1. Vivox Core SDK documentation

Initiate a channel join

How to initiate a channel join request in Vivox.
Read time 2 minutes
Last updated 8 months ago

The following code displays an example of how to initiate a channel join:
. . .vx_req_sessiongroup_add_session *req;vx_req_sessiongroup_add_session_create(&req);req->sessiongroup_handle = vx_strdup("sg1");req->session_handle = vx_strdup("mychannel");req->uri = vx_strdup("sip:confctl-g-issuer.mychannel@mt1s.vivox.com");req->account_handle = vx_strdup("sip:.issuer.playerName@mt1s.vivox.com");req->connect_audio = 1;req->connect_text = 1;req->access_token = vx_strdup(_the_access_token_generated_by_the_game_server);vx_issue_request3(&req->base, &request_count);. . .
Note
The
vx_resp_sessiongroup_add_session
message does not indicate that the user has successfully joined the channel.
The game must process two types of event messages:
vx_evt_media_stream_updated
and
vx_evt_text_stream_updated
. The Vivox SDK posts these messages when there are changes in the connectivity to the audio or text portions of the session.
The following code displays an example of how to handle these events:
void HandleMediaStreamUpdatedEvent(vx_evt_media_stream_updated *evt){ if (evt->state == session_media_connected) { printf("Audio Connected to %s\n", evt->session_handle); } else if(evt->state == session_media_disconnected) { if (evt->status_code == 0) { printf("Audio Disconnected from %s\n", evt->session_handle); } else { printf("Audio Disconnected from %s, error %d:%s\n", evt->session_handle,evt->status_code, vx_get_error_string(evt->status_code)); } }}void HandleTextStreamUpdatedEvent(vx_evt_text_stream_updated *evt){ if (evt->state == session_text_connected) { printf("Text Connected to %s\n", evt->session_handle); } else if (evt->state == session_text_disconnected) { if (evt->status_code == 0) { printf("Text Disconnected from %s\n", evt->session_handle); } else { printf("Text Disconnected from %s, error %d:%s\n", evt->session_handle,evt->status_code, vx_get_error_string(evt->status_code)); } }}
Note
These events might be generated in response to messages from the Vivox network (for example, when a user is forcibly removed from a channel by the game server).

Copyright © 2026 Unity Technologies
LegalPrivacy PolicyCookiesDocumentation Terms of UseDo Not Sell or Share My Personal InformationYour Privacy Choices (Cookie Settings)

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S and elsewhere (more info here). Other names or brands are trademarks of their respective owners.

Some pages are machine-translated for convenience, and may contain inaccuracies. In the event of conflicting information, the English version is authoritative.


    Report a problem with this page