更新时间:2024-09-13 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[]

会议主题。

startTime

long long

会议开始时间时间戳(utc时间),单位是秒。

duration

int

会议时长,单位分钟,最小值15分钟,最大值1440分钟。

confType

HwmConfMediaType

会议类型。默认视频会议。

isNeedConfPwd

bool

是否需要密码。默认不需要密码。

说明:

仅对随机会议ID生效

isRecordOn

bool

录制会议开关。

说明:

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

isAutoRecordOn

bool

会议自动录制开关。默认不开启。

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

说明:

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

timeZone

int

时区码,请参考时区表。用于发送会议通知。

vmrFlag

bool

会议是否使用虚拟会议室。预约并发会议时,设置为false。(废弃)

vmrId

char[]

云会议室唯一ID。预约并发会议时,设置为空字符串。

joinConfRestrictionType

HwmJoinConfPermissionType

允许入会范围限制。默认所有用户。

isSmsOn

bool

发送短信通知开关。企业配置里面需要开启,否则不生效。

isMailOn

bool

发送邮件通知开关。

isEmailCalendarOn

bool

发送邮件日历开关。

attendees

HwmAttendeeInfo*

与会者列表。

attendeeLen

unsigned int

与会者列表长度。

vmrConfIdType

HwmVmrConfIdType

云会议室的会议ID类型。

guestPwd

char[]

普通与会者密码,如果不填则来宾密码由服务端生成。

说明:

仅对随机ID会议生效。

isOpenWaitingRoom

bool

等候室开启开关。

说明:

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

allowGuestStartConf

bool

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

说明:

allowGuestStartConfTime

unsigned int

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

0 - 随时

x - 提前x分钟启动会议

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

concurrentParticipants

unsigned int

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

注:不填则不限制

customInfo

char[]

自定义扩展信息

confResType

HwmConfResType

会议资源类型。

defaultSummaryState

HwmSummaryState

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

autoMuteMode

HwmAutoMuteType

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

hardTerminalAutoMuteMode

HwmAutoMuteType

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

表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二选一,账号密码鉴权时使用。

thirdUserId

char[]

第三方用户ID。与number二选一,App ID鉴权时使用。

name

char[]

与会者名称。

email

char[]

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

sms

char[]

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

isMute

bool

是否闭音。

isAutoInvite

bool

是否自动外邀。

role

HwmConfRole

会议角色。

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