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