文档

支持

Vivox Core SDK

Vivox Core SDK

Initiate a channel join

How to initiate a channel join request in Vivox.
阅读时间1 分钟最后更新于 12 天前

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);. . .
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)); } }}