
# 预约会议
**接口描述**
该接口用于预约会议。
**注意事项**
- 不在登录状态下，不应调用该接口。
- 会议开始时间必须晚于当前时间，会议时长应大于15分钟。
- 个人会议或者云会议室的时候要传入vmrId。
- 携带与会者入会的时候需要传入attendees。
- callback中的result返回会议详情信息（[ConfInfo类型说明]）
**方法定义**
```
/**
     * 预约会议
     * @param bookConfParam 预约会议参数
     * @param hwmCallback 结果回调
     */
   void bookConf(BookConfParam bookConfParam , HwmCallback<ConfInfo> hwmCallback);
```
**参数描述**
 表1BookConfParam参数说明 
| 参数                       | 是否必须 | 类型                     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| confSubject              | 是    | String                 | **参数解释：** 会议主题 **约束限制**： 不涉及 **取值范围**： 1-385个字符 **默认取值**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                            |
| startTimeStamp           | 是    | long                   | **参数解释：** 会议开始时间，UTC时间戳，精度秒 **约束限制**： 时间戳不能早于系统当前时间 **默认取值**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| duration                 | 是    | int                    | **参数解释：** 会议时长，单位分钟 **约束限制**： 不涉及 **取值范围**： 最小值15分钟，最大值1440分钟 **默认取值**： 服务端默认会议时长30分钟                                                                                                                                                                                                                                                                                                                                                                                                          |
| timeZone                 | 否    | int                    | **参数解释：** 时区码，用于发送会议通知 **约束限制**： 不涉及 **取值范围**： 详情参考[时区表](https://support.huaweicloud.com/api-meeting/meeting_21_0110.html) **默认取值**： 56（东八区）                                                                                                                                                                                                                                                                                                                                                   |
| confType                 | 是    | MeetingType            | **参数解释：** 会议类型 CONF_AUDIO(0, "语音会议") CONF_VIDEO(1, "视频会议") **约束限制**： 不涉及 **默认取值**： CONF_AUDIO                                                                                                                                                                                                                                                                                                                                                                                         |
| attendees                | 否    | List\<AttendeeModel\>  | **参数解释：** 成员列表，可选 **约束限制：** 不涉及 **默认取值**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| vmrIdFlag                | 否    | boolean                | **参数解释：** 预约会议是否使用云会议室ID **约束限制：** 不涉及 **默认取值：** false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| vmrId                    | 否    | String                 | **参数解释：** 个人会议或者云会议室ID **约束限制：** 创建个人会议或云会议室的时候传入，其它时候传入空 **取值范围：** 0-128个字符 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                               |
| isNeedConfPwd            | 否    | boolean                | **参数解释：** 是否需要会议来宾密码 **约束限制**： 仅对随机会议ID生效 **默认取值**： true                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| guestPwd                 | 否    | String                 | **参数解释：** 会议来宾密码 **约束限制**： 如果空则服务器随机生成。仅对随机会议ID生效 **取值范围**： 0-64个字符 **默认取值**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                                         |
| joinConfRestrictionType  | 否    | JoinConfPermissionType | **参数解释：** 允许入会范围限制 PERMIT_EVERYONE(0, "允许所有人入会") PERMIT_ENTERPRISE_USER(2, "仅允许企业内人员入会") PERMIT_INVITED_USER(3, "仅允许会议邀请人员入会") **约束限制：** 不涉及 **默认取值：** PERMIT_EVERYONE                                                                                                                                                                                                                                                                            |
| isRecordOn               | 否    | boolean                | **参数解释：** 会议录制功能是否开启 **约束限制：** 仅对云录制生效，客户端本地录制不生效 **默认取值：** false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| isAutoRecord             | 否    | boolean                | **参数解释：** 会议开始后是否自动开启录制，默认false。开启自动录制必须开启会议录制功能 **约束限制**： 仅对云录制生效，客户端本地录制不生效 **默认取值**： false                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| isSmsOn                  | 否    | boolean                | **参数解释：** 发送短信通知开关 **约束限制：** 保留字段，暂不提供短信通知能力 **默认取值：** false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| isMailOn                 | 否    | boolean                | **参数解释：** 发送邮件通知开关 **约束限制：** 企业配置里面需要开启，否则不生效 **默认取值：** false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| isEmailCalenderOn        | 否    | boolean                | **参数解释：** 发送邮件日历开关 **约束限制：** 企业配置里面需要开启，否则不生效 **默认取值：** false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| vmrIdType                | 否    | VmrIdType              | **参数解释：** VMR ID类型 FIXED_ID(0, "固定会议ID") RANDOM_ID(1, "随机会议ID") **约束限制：** 不涉及 **默认取值：** FIXED_ID                                                                                                                                                                                                                                                                                                                                                                                           |
| allowGuestStartConf      | 否    | boolean                | **参数解释：** 是否允许来宾提前启动会议 **约束限制：** - 仅针对随机会议ID的会议生效  - 固定会议ID的会议，请使用[修改云会议室信息](https://support.huaweicloud.com/sdkreference-meeting/meeting_22_0139.html)接口设置   **默认取值：** true                                                                                                                                                                                                                      |
| allowGuestStartConfTime  | 否    | int                    | **参数解释：** 允许来宾提前入会时间范围（单位：分钟） **约束限制**： - 仅针对随机会议ID的会议生效  - 固定会议ID的会议，不支持设置提前入会时间   **取值范围：** - 0 - 随时  - x - 提前x分钟启动会议   **默认取值：** 0 |
| isOpenWaitingRoom        | 否    | boolean                | **参数解释：** 等候室开启开关 **约束限制：** 需要等候室功能开通后才能生效 **默认取值：** false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| customInfo               | 否    | String                 | **参数解释：** 端侧自定义数据，服务器不感知业务 **约束限制**： 不涉及 **取值范围**： 0-64个字符 **默认取值**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                    |
| concurrentParticipants   | 否    | int                    | **参数解释：** 会议最大与会人数 **约束限制：** 不涉及 **取值范围：** - 0：无限制  - 大于0：会议最大与会人数   **默认取值：** 0                                                                                                                                                                                                                             |
| confResType              | 否    | ConfResType            | **参数解释：** 会议资源类型 CONF_RESTYPE_DEFAULT(0, "默认") CONF_RESTYPE_SHARE_VMR(3, "共享vmr") **约束限制：** 共享VMR需要传ConfResType.CONF_RESTYPE_SHARE_VMR 非共享VMR可不传此参数 **默认取值：** CONF_RESTYPE_DEFAULT                                                                                                                                                                                                                                                               |
| autoMuteMode             | 否    | AutoMuteType           | **参数解释：** 个人客户端入会是否自动静音 AUTO_MUTE_TYPE_DEFAULT(0, "默认") AUTO_MUTE_TYPE_MUTE(1, "静音") AUTO_MUTE_TYPE_UNMUTE(2, "非静音") **约束限制：** 不涉及 **默认取值：** AUTO_MUTE_TYPE_DEFAULT                                                                                                                                                                                                                                                                                |
| hardTerminalAutoMuteMode | 否    | AutoMuteType           | **参数解释：** 会议室设备入会是否自动静音 AUTO_MUTE_TYPE_DEFAULT(0, "默认") AUTO_MUTE_TYPE_MUTE(1, "静音") AUTO_MUTE_TYPE_UNMUTE(2, "非静音") **约束限制**： 不涉及 **默认取值**： AUTO_MUTE_TYPE_DEFAULT                                                                                                                                                                                                                                                                                     |
| attendeesExcludeSelf     | 否    | boolean                | **参数解释：** 预定的会议，与会者中是否不包含预定者 **约束限制**： 不涉及 **默认取值**： false（预订者在与会者中）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| defaultSummaryState      | 否    | SummaryState           | **参数解释：** 录制时，智能会议纪要的默认状态 SUMMARY_STATE_CLOSE(0, "会议纪要关闭") SUMMARY_STATE_OPEN(1, "会议纪要开启") **约束限制：** 仅企业配置支持智能会议纪要时生效（corpEnableSummary），参考[6.5.3.6-企业配置变更](https://support.huaweicloud.com/sdkreference-meeting/toctopics/zh-cn_topic_0000002331495312.html) **默认取值：** SUMMARY_STATE_CLOSE                                                                                                                                                                                           |
| autoPublishSummary       | 否    | boolean                | **参数解释：** 是否自动发布纪要（免人工审核） **约束限制**： 不涉及 **默认取值**： false                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
 表2AttendeeModel参数说明 
| 参数           | 是否必须 | 类型                                                                                                                                                                      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| number       | 是    | String                                                                                                                                                                  | **参数解释：** 被叫号码 **约束限制**： 如果填分配给账号的sip号码（如+99111244216210249）则呼叫该账号的App；如果填PSTN号码（如18700000000），则通过VoIP网关呼叫该号码，前提是该企业已开通PSTN呼叫权限。与thirdUserId二选一，账号密码鉴权时使用 **默认取值**： 不涉及                                                                                                                            |
| thirdUserId  | 是    | String                                                                                                                                                                  | **参数解释：** 第三方用户ID **约束限制**： 与number二选一，App ID鉴权时使用 **默认取值**： 不涉及                                                                                                                                                                                                                                               |
| name         | 是    | String                                                                                                                                                                  | **参数解释：** 名字 **约束限制**： 不涉及 **取值范围**： 0-96个字符 **默认取值**： 不涉及                                                                                                                                                         |
| isSelf       | 否    | boolean                                                                                                                                                                 | **参数解释：** 是否是用户自己 **约束限制**： 不涉及 **默认取值**： false                                                                                                                                                                                                                                             |
| isAutoInvite | 否    | boolean                                                                                                                                                                 | **参数解释：** 会议时间到了是否自动呼叫外邀 **约束限制**： 不涉及 **默认取值**： false                                                                                                                                                                                                                                                  |
| isMute       | 否    | boolean                                                                                                                                                                 | **参数解释：** 入会是否静音 **约束限制**： 不涉及 **默认取值**： false                                                                                                                                                                                                                                               |
| accountId    | 否    | String                                                                                                                                                                  | **参数解释：** 用户账号唯一ID，企业通讯录的id（会议详情时字段返回登录账号） **约束限制**： 不涉及 **默认取值**： 不涉及                                                                                                                                                                                                                      |
| type         | 否    | HwmAttendeeType                                                                                                                                                         | **参数解释：** 与会者类型（仅用于获取与会者列表使用） **约束限制**： 不涉及 **默认取值**： 不涉及                                                                                                                                                                                                                                  |
| email        | 否    | String                                                                                                                                                                  | **参数解释：** 电子邮箱地址，用于发送邮件通知 **约束限制**： 不涉及 **取值范围**： 0-256个字符 **默认取值**： 不涉及                                                                                                                                        |
| sms          | 否    | String                                                                                                                                                                  | **参数解释：** 短信通知手机号码，用于发送短信通知 **约束限制**： 不涉及 **取值范围**： 0-128个字符 **默认取值**： 不涉及                                                                                                                                |
| role         | 否    | ConfRole                                                                                                                                                                | **参数解释：** 会议角色 ATTENDEE(0, "普通与会者") HOST(1, "主持人") AUDIENCE(2, "观众") COHOST(3, "联席主持人") **约束限制**： 不涉及 **默认取值**： ATTENDEE |
| orgId        | 否    | String                                                                                                                                                                  | **参数解释：** 用户的企业ID, 用于识别是否是本企业账号 **约束限制**： 不涉及 **默认取值**： 不涉及                                                                                                                                                                                                                                     |
| isAnonymous  | 否    | boolean                                                                                                                                                                 | **参数解释：** 是否是匿名入会（仅用于获取与会者列表使用） **约束限制**： 不涉及 **默认取值**： 不涉及                                                                                                                                                                                                                                  |
| state        | 否    | [ConfAttendeeState](https://support.huaweicloud.com/sdkreference-meeting/toctopics/zh-cn_topic_0000001188170647.html#ZH-CN_TOPIC_0000001188170647__table19893111723210) | **参数解释：** 与会者状态（仅用于获取与会者列表使用） **约束限制**： 不涉及 **默认取值**： 不涉及                                                                                                                                                                                                                               |
   
 表3ConfInfo类型说明 
| 成员名称                | 类型                        | 描述                |
|:---|:---|:---|
| confSubject         | String                    | 会议主题              |
| confId              | String                    | 会议ID              |
| isOtherCorpConf     | boolean                   | 是否企业外会议           |
| vmrConferenceId     | String                    | 个人会议id            |
| confPwd             | String                    | 会议密码              |
| confAccessNum       | String                    | 会议接入号             |
| confChairPwd        | String                    | 会议主持人密码           |
| confGuestUri        | String                    | 会议来宾（普通用户）链接      |
| confStartTimeStamp  | String                    | 会议开始时间            |
| confEndTimeStamp    | String                    | 会议结束时间            |
| confScheduserName   | String                    | 会议创建者             |
| confOrgId           | String                    | 企业id              |
| audienceJoinUri     | String                    | 观众入会链接（网络研讨会）     |
| audienceJoinPwd     | String                    | 观众入会密码（网络研讨会）     |
| confType            | ConfType                  | 会议类型，区分普通会议和网络研讨会 |
| conferenceType      | ConferenceType            | 区分普通会议和周期会议       |
| cycleConfParam      | CycleConfParam            | 周期会议参数            |
| subConfSize         | int                       | 周期子会议数量           |
| subConfParam        | List\<SubCycleConfParam\> | 周期子会议参数           |
| selfConfRole        | ConfRole                  | 本人在会议中的角色         |
| isInBreakoutSubConf | boolean                   | 是否在分组讨论中          |
   
表4VmrIdType枚举说明 
| 枚举名称      | 枚举值 | 枚举说明       |
|:---|:---|:---|
| FIXED_ID  | 0   | VmrId是固定类型 |
| RANDOM_ID | 1   | VmrId是随机类型 |
   
表5ConfResType枚举说明 
| 枚举名称                   | 枚举值 | 枚举说明  |
|:---|:---|:---|
| CONF_RESTYPE_DEFAULT   | 0   | 默认    |
| CONF_RESTYPE_SHARE_VMR | 3   | 共享vmr |
   
**示例代码**
```
与会人列表List<AttendeeModel>的构造：
boolean needWithMember = true;
List<AttendeeModel> attendeeInfos = new ArrayList<>();
if (needWithMember) {
        //以下三种方式可选
String name = getName();
String number = getNumber();
String thirdAccountId = getThirdAccountId();
if (!TextUtils.isEmpty(thirdAccountId)) {
    attendeeInfos.add(AttendeeModel.buildAttendeeByThirdUserId(thirdUserId, name));
} else if (number.startsWith("+99")) {
    //sip 号码入会
    attendeeInfos.add(AttendeeModel.buildAttendeeBySipNumber(number, name));
} else {
    //电话号码入会（手机和座机）
    attendeeInfos.add(AttendeeModel.buildAttendeeByPhone(number, name));
}
}
构造通过appid登录时的与会者模型，其他模型可参考demo代码：
public static AttendeeModel buildAttendeeByThirdUserId(@NonNull String thirdUserId,
    String nickName) {
    AttendeeModel attendeeInfo = new AttendeeModel();
    attendeeInfo.setAppId(Foundation.getAppid());
    attendeeInfo.setThirdUserId(thirdUserId);
    attendeeInfo.setName(nickName);
    attendeeInfo.setIsAutoInvite(true);
    attendeeInfo.setIsMute(true);
    attendeeInfo.setRole(ConfRole.ATTENDEE);
    attendeeInfo.setType(HwmAttendeeType.ATTENDEE_TYPE_NORMAL);
    return attendeeInfo;
}
private HwmCallback<ConfInfo> completeHandler = new HwmCallback<ConfInfo>() {
@Override
public void onSuccess(ConfInfo result) {
dismissLoading();
DemoUtil.showToast("预约会议成功");
}
@Override
public void onFailed(int retCode, String desc) {
dismissLoading();
dismiss();
String err = ErrorMessageFactory.create(Utils.getApp(), retCode);
if (TextUtils.isEmpty(err)) {
err = Utils.getApp().getString(R.string.hwmconf_book_conf_fail);
}
DemoUtil.showToast("预约会议失败: " + retCode + ", desc:" + err);
}
};
BookConfParam bookConfParam = new BookConfParam()
.setConfSubject(getSubject())
.setStartTimeStamp(1743075947)
.setTimeZone(56)
.setDuration(60)
.setConfType(MeetingType.CONF_VIDEO)
.setVmrIdFlag(false)
.setVmrId("")
.setNeedConfPwd(true)
.setJoinConfRestrictionType(JoinConfPermissionType.PERMIT_EVERYONE)
.setRecordOn(true)
.setMailOn(true)
.setSmsOn(true)
.setEmailCalenderOn(true)
 
.setAttendees(attendeeInfos);
HWMBizSdk.getBizOpenApi().bookConf(bookConfParam, this.completeHandler);
```
