更新时间:2025-06-30 GMT+08:00
分享

预约会议

BookConf

接口描述

该接口用于预约会议。

注意事项

  1. 该接口在已登录状态下才能调用。
  2. 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。
  3. 调用该接口,与会者列表中需要添加本会场,并且将本会场设置为主持人身份。
  4. 回调函数中会返回预约成功后的会议详情,详见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) {};

参数描述

表1 结构体HwmBookConfParam参数说明

参数

是否必须

类型

描述

subject

char[]

参数解释:

会议主题。

约束限制

不涉及

取值范围

0-385个字符

默认取值

不涉及

startTimeStamp

long long

参数解释:

会议开始时间,UTC时间戳,精度秒。

约束限制

时间戳不能早于系统当前时间

取值范围

不涉及

默认取值

不涉及

duration

int

参数解释:

会议时长,单位分钟。

约束限制

不涉及

取值范围

最小值15分钟,最大值1440分钟。

默认取值

不填时由服务端取默认会议时长30分钟

confType

HwmConfMediaType

参数解释:

会议类型。

约束限制

不涉及

默认取值

HWM_AUDIO_AND_DATA 音频数据会议

isNeedConfPwd

bool

参数解释:

是否需要会议密码。

约束限制

仅对随机会议ID生效

默认取值

不需要会议密码

isRecordOn

bool

参数解释:

录制会议开关。

约束限制

仅对云录制生效,客户端本地录制不生效。

默认取值

不开启录制

isAutoRecordOn

bool

参数解释:

是否开启自动录制会议。开启自动录制会议开关,内部会默认支持录制会议,录制会议开关的打开与关闭并不影响。

约束限制

仅对云录制生效,客户端本地录制不生效。

默认取值

不开启自动录制会议。

timeZone

int

参数解释:

时区码,用于发送会议通知。

约束限制

不涉及

取值范围

请参考时区表

默认取值

56 北京时间

vmrFlag

bool

参数解释:

会议是否使用虚拟会议室。

约束限制

预约并发会议时,设置为false。(废弃)

默认取值

不使用虚拟会议室。

vmrId

char[]

参数解释:

云会议室唯一ID。

约束限制

预约并发会议时,设置为空字符串。

取值范围

0-128个字符

默认取值

不涉及

joinConfRestrictionType

HwmJoinConfPermissionType

参数解释:

允许入会范围限制。

约束限制

不涉及

默认取值

RESTRICTION_CALL_IN_ALL 所有用户

isSmsOn

bool

参数解释:

短信通知能力。

约束限制

保留字段,暂不提供短信通知能力

默认取值

不开启短信通知能力。

isMailOn

bool

参数解释:

发送邮件通知开关。

约束限制

不涉及

默认取值

不发送邮件通知。

isEmailCalendarOn

bool

参数解释:

发送邮件日历开关。

约束限制

不涉及

默认取值

不发送邮件日历。

attendees

HwmAttendeeInfo*

参数解释:

与会者列表。

约束限制

不涉及

默认取值

不涉及

attendeeLen

unsigned int

参数解释:

与会者列表长度。

约束限制

不涉及

取值范围

最小值15分钟,最大值1440分钟。

默认取值

不填时由服务端取默认会议时长30分钟

vmrConfIdType

HwmVmrConfIdType

参数解释:

云会议室的会议ID类型。

约束限制

不涉及

默认取值

HWM_VMR_CONF_ID_TYPE_FIXED 固定类型

guestPwd

char[]

参数解释:

普通与会者密码。

约束限制

如果空则服务器随机生成。仅对随机会议ID生效。

取值范围

0-64个字符

默认取值

不涉及

isOpenWaitingRoom

bool

参数解释:

等候室开启开关。

约束限制

需要等候室功能开通后才能生效。

默认取值

不开启等候室。

allowGuestStartConf

bool

参数解释:

是否允许来宾提前启动会议。

约束限制

默认取值

不允许来宾提前启动会议。

allowGuestStartConfTime

unsigned int

参数解释:

允许来宾提前入会时间范围(单位:分钟)。

约束限制

  • 仅针对随机会议ID的会议生效。
  • 固定会议ID的会议,不支持设置提前入会时间。

取值范围

0 - 随时

x - 提前x分钟启动会议

默认取值

0

concurrentParticipants

unsigned int

参数解释:

会议方数,会议最大与会人数限制。

约束限制

不涉及

取值范围

不涉及

默认取值

不填则不限制

customInfo

char[]

参数解释:

自定义扩展信息

约束限制

不涉及

取值范围

0-64个字符

默认取值

不涉及

confResType

HwmConfResType

参数解释:

会议资源类型。

约束限制

不涉及

默认取值

HWM_CONF_RESTYPE_DEFAULT 默认

defaultSummaryState

HwmSummaryState

参数解释:

会议云录制是否包含纪要,初始值。

约束限制

仅企业配置支持智能会议纪要时生效(corpEnableSummary),参考表1

默认取值

SUMMARY_STATE_CLOSE 会议纪要关闭

autoMuteMode

HwmAutoMuteType

参数解释:

来宾入会,软终端是否自动静音。

约束限制

不涉及

默认取值

AUTO_MUTE_TYPE_DEFAULT 与默认配置一致

hardTerminalAutoMuteMode

HwmAutoMuteType

参数解释:

来宾入会,硬终端是否自动静音。

约束限制

不涉及

默认取值

AUTO_MUTE_TYPE_DEFAULT 与默认配置一致

autoPublishSummary

bool

参数解释:

是否自动发布纪要(免人工审核)。

约束限制

不涉及

默认取值

不自动发布纪要

表2 枚举HwmConfMediaType说明

枚举值

描述

HWM_AUDIO_AND_DATA

音频数据会议。

HWM_VIDEO_AND_DATA

视频数据会议。

表3 枚举HwmJoinConfPermissionType说明

枚举值

描述

RESTRICTION_CALL_IN_ALL

所有用户。

RESTRICTION_CALL_IN_COMPANY

企业内用户。

RESTRICTION_CALL_IN_INVITED

被邀请用户。

表4 结构体HwmAttendeeInfo参数说明

参数

是否必须

类型

描述

number

char[]

参数解释:

号码。

约束限制

如果填分配给账号的sip号码(如+99111244216210249)则呼叫该账号的App;如果填PSTN号码(如18700000000),则通过VoIP网关呼叫该号码,前提是该企业已开通PSTN呼叫权限。与thirdUserId二选一,账号密码鉴权时使用。

取值范围

0-128个字符

默认取值

不涉及

thirdUserId

char[]

参数解释:

第三方用户ID。

约束限制

与number二选一,App ID鉴权时使用。

取值范围

0-128个字符

默认取值

不涉及

name

char[]

参数解释:

与会者名称。

约束限制

不涉及

取值范围

0-256个字符

默认取值

不涉及

email

char[]

参数解释:

电子邮箱地址,用于发送邮件通知。

约束限制

不涉及

取值范围

0-256个字符

默认取值

不涉及

sms

char[]

参数解释:

短信通知手机号码,用于发送短信通知。

约束限制

不涉及

取值范围

0-128个字符

默认取值

不涉及

isMute

bool

参数解释:

是否闭音。

约束限制

不涉及

默认取值

不静音

isAutoInvite

bool

参数解释:

是否自动外邀。

约束限制

不涉及

默认取值

不自动外邀

role

HwmConfRole

参数解释:

会议角色。

约束限制

不涉及

默认取值

HWM_CONF_ROLE_ATTENDEE 普通与会者

isAnonymous

bool

参数解释:

是否是匿名入会(仅用于获取与会者列表使用)

callStatus

ConfAttendeeState

参数解释:

与会者状态(仅用于获取与会者列表使用)

orgId

char[]

参数解释:

用于识别是否是本企业账号(仅用于获取与会者列表使用)

表5 会议成员角色HwmConfRole枚举值

枚举值

描述

HWM_CONF_ROLE_ATTENDEE

普通与会者。

HWM_CONF_ROLE_CHAIRMAN

主持人。

表6 枚举HwmVmrConfIdType说明

枚举值

描述

HWM_VMR_CONF_ID_TYPE_FIXED

云会议室的会议ID类型是固定类型。

HWM_VMR_CONF_ID_TYPE_RANDOM

云会议室的会议ID类型是随机类型。

表7 返回值

类型

描述

HwmErrCode

成功返回0,其他值表示失败。失败返回值见错误码参考

表8 结构体HwmConfDetail字段名

字段

类型

描述

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

相关文档