主頁(yè) > 服務(wù)與支持 > 開(kāi)發(fā)平臺(tái) > 客戶端SDK參考 > Windows Native SDK > 會(huì)議 會(huì)議管理
更新時(shí)間:2019-11-20
描述
用戶創(chuàng)建預(yù)約會(huì)議。
前提條件
業(yè)務(wù)流程
//c code TSDK_RESULT ret; ret = tsdk_book_conference(bookConfInfo); if (TSDK_SUCCESS != ret) { LOG_D_CALL_ERROR("book conf failed. result=%#x", ret); return -1; } return TSDK_SUCCESS; |
如果會(huì)議成功預(yù)約,其他用戶可以通過(guò)“查詢會(huì)議列表”或其他第三方方式獲取該會(huì)議的信息:
//c code case TSDK_E_CONF_EVT_BOOK_CONF_RESULT: { LOG_D_CALL_INFO("book conf result"); break; } |
注意事項(xiàng)
無(wú)。
描述
用戶創(chuàng)建立即會(huì)議。
立即會(huì)議創(chuàng)建成功后,用戶的SIP號(hào)碼自動(dòng)入會(huì),用戶作為會(huì)議主席召集其他與會(huì)者加入會(huì)議。
前提條件:
業(yè)務(wù)流程
在創(chuàng)建即時(shí)會(huì)議時(shí),會(huì)議方數(shù)(size)、會(huì)議類(lèi)型(conf_type),媒體類(lèi)型(conf_media_type)和與會(huì)者信息(attendee_num&attendee_list)必選,其他參數(shù)可選;
//c code TSDK_RESULT ret; ret = tsdk_book_conference(bookConfInfo); if (TSDK_SUCCESS != ret) { LOG_D_CALL_ERROR("book conf failed. result=%#x", ret); return -1; } return TSDK_SUCCESS; |
//c code case TSDK_E_CONF_EVT_BOOK_CONF_RESULT: { LOG_D_CALL_INFO("book conf result"); break; } |
//c code case TSDK_E_CONF_EVT_JOIN_CONF_RESULT: { if (TSDK_SUCCESS == param2) { CHECK_POINTER(data); TSDK_S_JOIN_CONF_IND_INFO* pResult = (TSDK_S_JOIN_CONF_IND_INFO*)data; TSDK_S_JOIN_CONF_IND_INFO* notifyInfo = new TSDK_S_JOIN_CONF_IND_INF memset(notifyInfo, 0, sizeof(TSDK_S_JOIN_CONF_IND_INFO)); memcpy_s(notifyInfo, sizeof(TSDK_S_JOIN_CONF_IND_INFO), pResult, sizeof(TSDK_S_JOIN_CONF_IND_INFO)); ::PostMessage(maindlg->GetSafeHwnd(), WM_CONF_CTRL_JOIN_RESULT, (WPARAM)notifyInfo, (LPARAM)param1); } else { maindlg->MessageBox(_T("join conf failed!")); } break; } |
代碼示例詳見(jiàn)“更新會(huì)議狀態(tài)信息和與會(huì)者列表”描述。
//c code case TSDK_E_CONF_EVT_GET_DATACONF_PARAM_RESULT: { if (TSDK_SUCCESS != param2) { maindlg->MessageBox(_T("get data conf param failed!")); } else { ::PostMessage(maindlg->GetSafeHwnd(), WM_CONF_CTRL_GET_DATA_CONF_PARAM, (WPARAM)param1, NULL); } break; } |
//c code TSDK_RESULT ret; ret = tsdk_join_data_conference(confHandle); if (TSDK_SUCCESS != ret) { LOG_D_CALL_ERROR("join data conf failed. result=%#x", ret); return -1; } return TSDK_SUCCESS; |
在加入數(shù)據(jù)會(huì)議后,會(huì)向UI上報(bào)會(huì)議信息及狀態(tài)更新事件TSDK_E_CONF_EVT_INFO_AND_STATUS_UPDATE,UI刷新會(huì)議成員列表和會(huì)議信息。
//c code TSDK_RESULT ret; ret = tsdk_join_data_conference(confHandle); if (TSDK_SUCCESS != ret) { LOG_D_CALL_ERROR("join data conf failed. result=%#x", ret); return -1; } return TSDK_SUCCESS; |
注意事項(xiàng)
無(wú)。
描述
用戶查詢自己“創(chuàng)建”的和“待參加”的預(yù)約會(huì)議信息。
前提條件:
業(yè)務(wù)流程
1、會(huì)議權(quán)限(conf_right)用于指定要查詢的會(huì)議權(quán)限類(lèi)型,包含查詢創(chuàng)建的會(huì)議、待參加的會(huì)議或創(chuàng)建和待參加的會(huì)議,可選填;
2、請(qǐng)求會(huì)議列表頁(yè)索引(page_index),取值從1開(kāi)始,建議與應(yīng)用程序與會(huì)議列表的頁(yè)簽對(duì)應(yīng),必須要有明確值;
3、會(huì)議列表每頁(yè)的會(huì)議個(gè)數(shù)(page_size),建議與應(yīng)用程序會(huì)議列表個(gè)數(shù)相同,必須要有明確值。
4、返回來(lái)的時(shí)間為UTC時(shí)間,UI進(jìn)行頁(yè)面呈現(xiàn)之前需要將UTC時(shí)間轉(zhuǎn)換為本地時(shí)間。
//c code TSDK_RESULT ret; ret = tsdk_query_conference_list(arg); if (TSDK_SUCCESS != ret) { LOG_D_CALL_ERROR("get conf list failed. result=%#x", ret); return -1; } return TSDK_SUCCESS; |
1、查詢會(huì)議列表只返回會(huì)議的概要信息,如需查詢會(huì)議詳情(包括與會(huì)者信息),需要“查詢會(huì)議詳情”;
2、會(huì)議的主席密碼需要“查詢會(huì)議詳情”獲取。
//c code case TSDK_E_CONF_EVT_QUERY_CONF_LIST_RESULT: { if (TSDK_SUCCESS == param1) { CHECK_POINTER(data); TSDK_S_CONF_LIST_INFO* pResult = (TSDK_S_CONF_LIST_INFO*)data; TSDK_UINT32 currentConfNum = pResult->current_count; if (currentConfNum > 0) { TSDK_S_CONF_BASE_INFO* notifyInfo = new TSDK_S_CONF_BASE_INFO[currentConfNum]; memset(notifyInfo, 0, sizeof(TSDK_S_CONF_BASE_INFO)*currentConfNum); for (unsigned int i = 0; i < currentConfNum; i++) { notifyInfo[i].size = pResult->conf_info_list[i].size; strncpy_s(notifyInfo[i].conf_id, TSDK_D_MAX_CONF_ID_LEN + 1, pResult->conf_info_list[i].conf_id, _TRUNCATE); strncpy_s(notifyInfo[i].subject, TSDK_D_MAX_SUBJECT_LEN + 1, pResult->conf_info_list[i].subject, _TRUNCATE); strncpy_s(notifyInfo[i].access_number, TSDK_D_MAX_NUMBER_LEN + 1, pResult->conf_info_list[i].access_number, _TRUNCATE); strncpy_s(notifyInfo[i].chairman_pwd, TSDK_D_MAX_CONF_PASSWORD_LEN + 1, pResult->conf_info_list[i].chairman_pwd, _TRUNCATE); strncpy_s(notifyInfo[i].guest_pwd, TSDK_D_MAX_CONF_PASSWORD_LEN + 1, pResult->conf_info_list[i].guest_pwd, _TRUNCATE); strncpy_s(notifyInfo[i].start_time, TSDK_D_MAX_TIME_FORMATE_LEN + 1, pResult->conf_info_list[i].start_time, _TRUNCATE); strncpy_s(notifyInfo[i].end_time, TSDK_D_MAX_TIME_FORMATE_LEN + 1, pResult->conf_info_list[i].end_time, _TRUNCATE); notifyInfo[i].conf_media_type = pResult->conf_info_list[i].conf_media_type; notifyInfo[i].conf_state = (TSDK_E_CONF_STATE)pResult->conf_info_list[i].conf_state; strncpy_s(notifyInfo[i].scheduser_account, TSDK_D_MAX_ACCOUNT_LEN + 1, pResult->conf_info_list[i].scheduser_account, _TRUNCATE); strncpy_s(notifyInfo[i].scheduser_name, TSDK_D_MAX_DISPLAY_NAME_LEN + 1, pResult->conf_info_list[i].scheduser_name, _TRUNCATE); } CDemoMeetingDlg* mettingDlg = maindlg->GetDemoMeetingDlg(); CHECK_POINTER(mettingDlg); ::PostMessage(mettingDlg->GetSafeHwnd(), WM_CONF_CTRL_GET_CONF_LIST_RESULT, (WPARAM)notifyInfo, (LPARAM)currentConfNum); } } else { maindlg->MessageBox(_T("get conf list failed!")); } break; } |
注意事項(xiàng)
無(wú)。
描述
用戶查詢指定會(huì)議的詳細(xì)信息。
前提條件:
業(yè)務(wù)流程
請(qǐng)求消息結(jié)構(gòu)TSDK_S_QUERY_CONF_DETAIL_REQ中,
//c code TSDK_RESULT ret; ret = tsdk_query_conference_detail(arg); if (TSDK_SUCCESS != ret) { LOG_D_CALL_ERROR("query conference detail failed. result=%#x", ret); return -1; } return TSDK_SUCCESS; |
//c code case TSDK_E_CONF_EVT_QUERY_CONF_DETAIL_RESULT: { if (TSDK_SUCCESS == param1) { CHECK_POINTER(data); TSDK_S_CONF_DETAIL_INFO* pResult = (TSDK_S_CONF_DETAIL_INFO*)data; TSDK_S_CONF_DETAIL_INFO* notifyInfo = new TSDK_S_CONF_DETAIL_INFO; memset(notifyInfo, 0, sizeof(TSDK_S_CONF_DETAIL_INFO)); memcpy_s(notifyInfo, sizeof(TSDK_S_CONF_DETAIL_INFO), pResult, sizeof(TSDK_S_CONF_DETAIL_INFO)); CDemoMeetingDlg* mettingDlg = maindlg->GetDemoMeetingDlg(); CHECK_POINTER(mettingDlg); ::PostMessage(mettingDlg->GetSafeHwnd(), WM_CONF_CTRL_GET_CONF_INFO_RESULT, (WPARAM)notifyInfo, NULL); } else { maindlg->MessageBox(_T("get conf detail failed!")); } break; } |
注意事項(xiàng)
無(wú)。