预约会议
BookConf
接口描述
该接口用于预约会议。
注意事项
- 该接口在已登录状态下才能调用。
- 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。
- 调用该接口,与会者列表中需要添加本会场,并且将本会场设置为主持人身份。
- 回调函数中会返回预约成功后的会议详情,详见HwmConfDetail结构体表。如果参数内只有会议id有值则获取会议详情失败。
方法定义
1
|
HWM_SDK_AGENT_API hwmsdk::HwmErrCode BookConf(const HwmBookConfParam *param); |
回调函数
1
|
virtual void OnBookConfResult(hwmsdk::HwmErrCode ret, const char* reason, const HwmConfDetail* confDetail) {}; |
参数描述
参数 |
是否必须 |
类型 |
描述 |
---|---|---|---|
subject |
是 |
char[] |
会议主题。 |
startTime |
是 |
long long |
会议开始时间时间戳(utc时间),单位是秒。 |
duration |
是 |
int |
会议时长,单位分钟,最小值15分钟,最大值1440分钟。 |
confType |
否 |
会议类型。默认视频会议。 |
|
isNeedConfPwd |
否 |
bool |
是否需要密码。默认不需要密码。
说明:
仅对随机会议ID生效 |
isRecordOn |
否 |
bool |
录制会议开关。
说明:
仅对云录制生效,客户端本地录制不生效。 |
isAutoRecordOn |
否 |
bool |
会议自动录制开关。默认不开启。 开启会议自动录制开关,内部会默认支持录制会议,录制会议开关的打开与关闭并不影响。
说明:
仅对云录制生效,客户端本地录制不生效。 |
timeZone |
是 |
int |
时区码,请参考时区表。用于发送会议通知。 |
vmrFlag |
否 |
bool |
会议是否使用虚拟会议室。预约并发会议时,设置为false。(废弃) |
vmrId |
否 |
char[] |
云会议室唯一ID。预约并发会议时,设置为空字符串。 |
joinConfRestrictionType |
否 |
允许入会范围限制。默认所有用户。 |
|
isSmsOn |
否 |
bool |
发送短信通知开关。企业配置里面需要开启,否则不生效。 |
isMailOn |
否 |
bool |
发送邮件通知开关。 |
isEmailCalendarOn |
否 |
bool |
发送邮件日历开关。 |
attendees |
是 |
与会者列表。 |
|
attendeeLen |
是 |
unsigned int |
与会者列表长度。 |
vmrConfIdType |
否 |
云会议室的会议ID类型。 |
|
guestPwd |
否 |
char[] |
普通与会者密码,如果不填则来宾密码由服务端生成。
说明:
仅对随机ID会议生效。 |
isOpenWaitingRoom |
否 |
bool |
等候室开启开关。
说明:
需要等候室功能开通后才能生效。 |
allowGuestStartConf |
否 |
bool |
是否允许来宾提前启动会议。
说明:
|
allowGuestStartConfTime |
否 |
unsigned int |
允许来宾提前入会时间范围(单位:分钟): 0 - 随时 x - 提前x分钟启动会议
说明:
|
concurrentParticipants |
否 |
unsigned int |
会议方数,会议最大与会人数限制。 注:不填则不限制 |
customInfo |
否 |
char[] |
自定义扩展信息 |
confResType |
否 |
会议资源类型。 |
|
defaultSummaryState |
否 |
会议云录制是否包含纪要,初始值。 |
|
autoMuteMode |
否 |
来宾入会,软终端是否自动静音。 |
|
hardTerminalAutoMuteMode |
否 |
来宾入会,硬终端是否自动静音。 |
枚举值 |
描述 |
---|---|
RESTRICTION_CALL_IN_ALL |
所有用户。 |
RESTRICTION_CALL_IN_COMPANY |
企业内用户。 |
RESTRICTION_CALL_IN_INVITED |
被邀请用户。 |
参数 |
是否必须 |
类型 |
描述 |
---|---|---|---|
number |
是 |
char[] |
号码。如果填分配给账号的sip号码(如+99111244216210249)则呼叫该账号的App;如果填PSTN号码(如18700000000),则通过VoIP网关呼叫该号码,前提是该企业已开通PSTN呼叫权限。与thirdUserId二选一,账号密码鉴权时使用。 |
thirdUserId |
是 |
char[] |
第三方用户ID。与number二选一,App ID鉴权时使用。 |
name |
是 |
char[] |
与会者名称。 |
|
否 |
char[] |
电子邮箱地址,用于发送邮件通知。 |
sms |
否 |
char[] |
短信通知手机号码,用于发送短信通知。 |
isMute |
否 |
bool |
是否闭音。 |
isAutoInvite |
否 |
bool |
是否自动外邀。 |
role |
是 |
会议角色。 |
|
isAnonymous |
否 |
BOOL |
是否是匿名入会(仅用于获取与会者列表使用) |
callStatus |
否 |
与会者状态(仅用于获取与会者列表使用) |
|
orgId |
否 |
char[] |
用于识别是否是本企业账号(仅用于获取与会者列表使用) |
枚举值 |
描述 |
---|---|
HWM_VMR_CONF_ID_TYPE_FIXED |
云会议室的会议ID类型是固定类型。 |
HWM_VMR_CONF_ID_TYPE_RANDOM |
云会议室的会议ID类型是随机类型。 |
类型 |
描述 |
---|---|
HwmErrCode |
成功返回0,其他值表示失败。失败返回值见错误码参考。 |
字段 |
类型 |
描述 |
---|---|---|
confListInfo |
HwmConfListInfo |
会议信息,参见 表3。 |
vmrFlag |
bool |
是否是vmr会议。 |
vmrId |
char[] |
云会议室唯一ID。 |
isRecordOn |
bool |
是否有录制会议权限。 |
isAutoRecord |
bool |
是否开启自动录制会议 |
isGuestFreePwd |
bool |
是否需要来宾免密。 |
isMailOn |
bool |
是否发送邮件通知。 |
isSmsOn |
bool |
是否发送短信通知。 |
isEmailCalenderOn |
bool |
是否发送日历通知。 |
joinConfRestrictionType |
HwmJoinConfPermissionType |
会议准入设置 表3。 |
attendees |
HwmAttendeeInfo* |
与会者列表,字段信息参见 预约会议 中表述。 |
attendeeLen |
unsigned int |
与会者列表长度。 |
confServerType |
HwmConfServerType |
会议服务器类型 1:RTC or 0:MCU |
isOpenWaitingRoom |
bool |
是否开启等候室 |
示例代码
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 |
/** * 预约会议 */ int CdemoBookConfDlg::OnBnClickedBookConf() { hwmsdkagent::HwmBookConfParam data = {0}; strncpy_s(data.subject, GetConfSubject().c_str(), HWM_MAX_SUBJECT_LEN); // 此处应是utf-8编码字符串 data.confType = hwmsdkagent::HwmConfMediaType::HWM_VIDEO_AND_DATA; data.isNeedConfPwd = true; data.isAutoRecordOn = true; data.isRecordOn = true; data.startTime = 1598398920; //utc时间戳,单位秒,如果获取的时间是本地时间,需要转换成utc时间 data.duration = 30; //会议持续时长(分钟) data.timeZone = 56; //时区,56表示东八区 data.joinConfRestrictionType = hwmsdkagent::HwmJoinConfPermissionType::RESTRICTION_CALL_IN_ALL; std::vector<hwmsdkagent::HwmAttendeeInfo> attendeeList; //被邀与会者 hwmsdkagent::HwmAttendeeInfo attendeeInfo = { 0 }; strncpy_s(attendeeInfo.name, GetAttName().c_str(), HWM_MAX_USER_NAME_LEN); strncpy_s(attendeeInfo.number, GetAttNumber().c_str(), HWM_MAX_NUMBER_LEN); strncpy_s(attendeeInfo.email, GetAttEmail().c_str(), HWM_MAX_EMAIL_LEN); strncpy_s(attendeeInfo.sms, GetAttSms().c_str(), HWM_MAX_PHONE_NUM_LEN); strncpy_s(attendeeInfo.thirdUserId, GetAttUserId().c_str(), HWM_MAX_USER_ID_LEN); attendeeInfo.isMute = true; attendeeInfo.isAutoInvite = true; attendeeList.push_back(attendeeInfo); data.attendees = attendeeList.data(); data.attendeeLen = attendeeList.size(); data.isSmsOn = true; data.isMailOn = true; data.isEmailCalendarOn = true; return hwmsdkagent::BookConf(&data); } |