创建会议
CreateConf
接口描述
该接口用于创建即时会议。
注意事项
- 该接口默认已将自己作为主持人加入会议,调用接口时,在与会者参数中不需要带上自己的信息。
- 若需要在创建会议的同时邀请其他与会者,需要传入其他与会者信息。若不需要,与会者信息和与会者个数可以为空。
- 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。
方法定义
1
|
HWM_SDK_AGENT_API hwmsdk::HwmErrCode CreateConf(HwmCreateConfInfo *createConfInfo, HwmConfAttendee *attendees, unsigned int count); |
回调函数
1
|
virtual void OnCreateConfResult(hwmsdk::HwmErrCode ret, const char* reason) {}; |
参数描述
参数 |
是否必须 |
类型 |
描述 |
---|---|---|---|
createConfInfo |
是 |
HwmCreateConfInfo |
会议信息。 |
attendees |
否 |
HwmConfAttendee |
与会者信息。若不需要带与会者,参数值可以为NULL。 |
count |
否 |
unsigned int |
与会者个数。若不需要带与会者,参数值可以为0。 |
参数 |
是否必须 |
类型 |
描述 |
---|---|---|---|
subject |
是 |
char[] |
会议主题。 |
mediaType |
是 |
HwmConfMediaType |
会议类型。 |
needPassword |
否 |
bool |
是否需要会议密码。
说明:
仅对随机会议ID生效 |
isAutoRecord |
否 |
bool |
是否开启自动录制会议。开启自动录制会议开关,内部会默认支持录制会议,录制会议开关的打开与关闭并不影响。
说明:
仅对云录制生效,客户端本地录制不生效。 |
allowRecord |
否 |
bool |
是否支持录制会议。
说明:
仅对云录制生效,客户端本地录制不生效。 |
callInRestriction |
否 |
HwmJoinConfPermissionType |
允许入会范围限制。默认所有用户。 |
vmrId |
否 |
char[] |
云会议室唯一ID。预约随机会议时,设置为空字符串。 |
vmrConfIdType |
否 |
HwmVmrConfIdType |
云会议室的会议ID类型 |
guestPwd |
否 |
char[] |
普通与会者密码,如果空则服务器随机生成
说明:
仅对随机会议ID生效 |
isOpenWaitingRoom |
否 |
bool |
等候室开启开关
说明:
需要等候室功能开通后才能生效 |
duration |
否 |
int |
会议时长,单位分钟,最小值15分钟,最大值1440分钟。 注:不填时由服务端取默认会议时长 |
concurrentParticipants |
否 |
unsigned int |
会议方数,会议最大与会人数限制。 注:不填则不限制 |
customInfo |
否 |
char[] |
自定义扩展信息 |
confResType |
否 |
HwmConfResType |
会议资源类型。 |
defaultSummaryState |
否 |
HwmSummaryState |
会议云录制是否包含纪要,初始值。 |
autoMuteMode |
否 |
HwmAutoMuteType |
来宾入会,软终端是否自动静音。 |
hardTerminalAutoMuteMode |
否 |
HwmAutoMuteType |
来宾入会,硬终端是否自动静音。 |
枚举值 |
描述 |
---|---|
RESTRICTION_CALL_IN_ALL |
所有用户。 |
RESTRICTION_CALL_IN_COMPANY |
企业内用户。 |
RESTRICTION_CALL_IN_INVITED |
被邀请用户。 |
参数 |
是否必须 |
类型 |
描述 |
---|---|---|---|
name |
是 |
char[] |
与会者名称。 |
number |
是 |
char[] |
号码。如果填分配给账号的sip号码(如+99111244216210249)则呼叫该账号的App;如果填PSTN号码(如18700000000),则通过VoIP网关呼叫该号码,前提是该企业已开通PSTN呼叫权限。与thirdUserId二选一,账号密码鉴权时使用。 |
thirdUserId |
是 |
char[] |
第三方用户ID。与number二选一,App ID鉴权时使用。 |
枚举值 |
描述 |
---|---|
HWM_VMR_CONF_ID_TYPE_FIXED |
云会议室的会议ID类型是固定类型。 |
HWM_VMR_CONF_ID_TYPE_RANDOM |
云会议室的会议ID类型是随机类型。 |
枚举值 |
描述 |
---|---|
AUTO_MUTE_TYPE_DEFAULT |
与默认配置一致。 |
AUTO_MUTE_TYPE_MUTE |
静音。 |
AUTO_MUTE_TYPE_UNMUTE |
非静音。 |
返回值
类型 |
描述 |
---|---|
HwmErrCode |
成功返回0,其他值表示失败。失败返回值见错误码参考。 |
示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
/** * 创建会议 */ int demoCreateConfWithAttendeeDlg::clickCreatConfWithAttendee() { int ret; hwmsdkagent::HwmCreateConfInfo data; memset(&data, 0, sizeof(hwmsdkagent::HwmCreateConfInfo)); //设置会议主题 strncpy_s(data.subject, GetMeetingSubjectStr().c_str(), HWM_MAX_SUBJECT_LEN); //设置会议类型 data.mediaType = hwmsdkagent::HWM_VIDEO_AND_DATA //设置会议是否需要来宾密码 data.needPassword = true; //设置会议呼入限制 data.callInRestriction = hwmsdkagent::RESTRICTION_CALL_IN_ALL; //设置vmrId,若创建随机会议,则vmrId为空 此处m_confIdTypeCombo排序是把随机会议放在首位 //因此vmrIdSelect > 0 为个人会议id与云会议室id场景 const auto vmrIdSelect = m_confIdTypeCombo.GetCurSel(); if (vmrIdSelect > 0 && vmrIdSelect - 1 < vmrList.size()) { strcpy_s(data.vmrId, HWM_MAX_VMR_CONF_ID_LEN, vmrList[vmrIdSelect - 1].vmrId); } //设置与会人 //获取与会人信息,实际使用是根据实际情况获取 CString tempCString; m_attendeesEdit.GetWindowText(tempCString); string tempString = CTools::UNICODE2UTF(tempCString); vector<string> list = CTools::split(tempString, ';'); vector<string> temp; int count = list.size(); int realCount = 0; if (count > 0) { //申请结构体内存 hwmsdkagent::HwmConfAttendee* participants; participants = (hwmsdkagent::HwmConfAttendee*)malloc(sizeof(hwmsdkagent::HwmConfAttendee) * count); if (participants == NULL) { return -1; } memset(participants, 0, sizeof(hwmsdkagent::HwmConfAttendee)*count); hwmsdkagent::HwmConfAttendee* participantsTemp = participants; for (int i = 0; i < count; i++) { temp = CTools::split(list[i], '-'); if (temp.size() == 2) { //name赋值 strncpy_s(participantsTemp->name, (char *)temp[0].c_str(), HWM_MAX_DISPLAY_NAME_LEN); //number赋值 strncpy_s(participantsTemp->number, (char *)temp[1].c_str(), HWM_MAX_NUMBER_LEN); //指针个数加1 realCount++; participantsTemp++; } } //调用SDK接口,创建会议 ret = hwmsdkagent::CreateConf(&data, participants, realCount); //释放内存空间 free(participants); participants = NULL; } else { //不携带与会人创建会议 ret = hwmsdkagent::CreateConf(&data, NULL, 0); } return ret; } |