
# 预约会议
#### bookConf
**接口描述**
该接口用于预约会议。
**注意事项**
1. 会议开始时间晚于当前时间。
2. 个人会议或者云会议室的时候要传入vmrId。
3. 携带与会者入会的时候需要传入attendee。
4. 开启自动录制会议时必须开启录制会议。
5. callback中的result返回会议详情信息（[HWMConfDetail](https://support.huaweicloud.com/sdkreference-meeting/ios_login_0023.html#ZH-CN_TOPIC_0276884985__table1714474365814)）。
**方法定义**
```
- (void)bookConf:(HWMOrderConfParam *_Nonnull)param callback:(_Nonnull HWMSDKCompleteHandler)callback;
```
**参数描述**
 表1HWMOrderConfParam参数说明 
| 参数                       | 是否必须 | 类型                                                                                                                                     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| confSubject              | 是    | NSString \*                                                                                                                            | **参数解释：** 会议主题。 **约束限制：** 不涉及。 **取值范围：** 0-385个字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                             |
| startTimeStamp           | 是    | NSTimeInterval                                                                                                                         | **参数解释：** 会议开始时间，UTC时间戳，精度秒。 **约束限制：** 时间戳不能早于系统当前时间。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| duration                 | 否    | NSUInteger                                                                                                                             | **参数解释：** 会议持续时长，单位分钟。 **约束限制：** 不涉及。 **取值范围：** 15-1440分钟。 **默认取值：** 不填时由服务端取默认会议时长30分钟。                                                                                                                                                                                                                                                                                                                                                                                                          |
| confType                 | 是    | [HWMOrderConfType]                                                                        | **参数解释：** 会议类型。 **约束限制：** 不涉及。 **默认取值：** OrderConfTypeAudio 音频会议。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| isNeedConfPwd            | 否    | BOOL                                                                                                                                   | **参数解释：** 是否需要来宾密码。 **约束限制：** 仅对随机会议ID生效。 **默认取值：** NO 不需要来宾密码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| guestPwd                 | 否    | NSSting \*                                                                                                                             | **参数解释：** 来宾密码。 **约束限制：** 如果空则服务器随机生成。仅对随机会议ID生效。 **取值范围**： 0-64个字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                |
| isRecordOn               | 否    | BOOL                                                                                                                                   | **参数解释：** 录制会议开关，字段即将废弃，不建议使用。 **约束限制：** 仅对云录制生效，客户端本地录制不生效。 **默认取值：** NO 不开启录制。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| isAutoRecord             | 否    | BOOL                                                                                                                                   | **参数解释：** 是否开启自动录制会议。 **约束限制：** 仅对云录制生效，客户端本地录制不生效。开启自动录制会议时必须开启录制会议。 **默认取值：** NO 不开启自动录制会议。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| timeZone                 | 否    | NSUInteger                                                                                                                             | **参数解释：** 时区。 **约束限制：** 不涉及。 **取值范围：** 详情参考[时区表](https://support.huaweicloud.com/api-meeting/meeting_21_0110.html)。 **默认取值：** 56-东八区。                                                                                                                                                                                                                                                                                                                                                             |
| vmrId                    | 否    | NSString \*                                                                                                                            | **参数解释：** 个人会议或者云会议室Id。 **约束限制：** 创建个人会议或云会议室的时候传入，其它时候传入空。 **取值范围：** 0-128个字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                    |
| vmrIdType                | 否    | [HWMVmrIdType]                                                                              | **参数解释：** VMR ID类型(固定/随机)。 **约束限制：** 不涉及。 **默认取值：** HWMVmrIdType 固定类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| callInRestrictionType    | 否    | [HWMJoinConfRestrictionType]                                                               | **参数解释：** 允许入会范围限制。 **约束限制：** 不涉及。 **默认取值：** HWMJoinConfRestrictionAll 所有用户。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| attendee                 | 否    | NSArray\<[HWMAttendeeInfo] \*\> \*                                                        | **参数解释：** 成员列表，可选。 **约束限制：** 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| isSmsOn                  | 否    | BOOL                                                                                                                                   | **参数解释：** 发送短信通知开关。 **约束限制：** 保留字段，暂不提供短信通知能力。 **默认取值：** NO 不发送短信通知。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| isMailOn                 | 否    | BOOL                                                                                                                                   | **参数解释：** 发送邮件通知开关，可选参数。 **约束限制：** 企业配置里面需要开启，否则不生效。 **默认取值：** NO 不发送邮件通知。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| isEmailCalenderOn        | 否    | BOOL                                                                                                                                   | **参数解释：** 发送邮件日历开关。 **约束限制：** 企业配置里面需要开启，否则不生效。 **默认取值：** NO 不发送邮件日历。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| allowGuestStartConf      | 否    | BOOL                                                                                                                                   | **参数解释：** 是否允许来宾提前启动会议。 **约束限制：** - 仅针对随机会议ID的会议生效。  - 固定会议ID的会议，请使用[修改云会议室信息](https://support.huaweicloud.com/sdkreference-meeting/ios_login_0026.html)接口设置。   **默认取值：** YES 允许来宾提前启动会议。                                                                                                                                                                                                                   |
| allowGuestStartConfTime  | 否    | NSInteger                                                                                                                              | **参数解释：** 允许来宾提前入会时间范围（单位：分钟）。 **约束限制**： - 仅针对随机会议ID的会议生效。  - 固定会议ID的会议，不支持设置提前入会时间。   **取值范围：** - 0 - 随时。  - x - 提前x分钟启动会议。   **默认取值：** 0 随时。 |
| isOpenWaitingRoom        | 否    | BOOL                                                                                                                                   | **参数解释：** 等候室开启开关。 **约束限制：** 需要等候室功能开通后才能生效。 **默认取值：** NO 不开启等候室。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| customInfo               | 否    | NSString \*                                                                                                                            | **参数解释：** 自定信息（会议详情、会中消息推送可以查看）。 **约束限制：** 不涉及。 **取值范围：** 0-64个字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                       |
| concurrentParticipants   | 否    | NSUInteger                                                                                                                             | **参数解释：** 会议方数，会议最大与会人数限制。 **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不填则不限制                                                                                                                                                                                                                                                                                                                                                                                                                           |
| autoMuteMode             | 否    | [HWMAutoMuteType](https://support.huaweicloud.com/sdkreference-meeting/ios_login_0016.html#ZH-CN_TOPIC_0269368365__table9264204813503) | **参数解释：** 个人客户端入会是否自动静音。 **约束限制：** 不涉及。 **默认取值：** HWMAutoMuteTypeDefault 与默认配置一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| hardTerminalAutoMuteMode | 否    | [HWMAutoMuteType](https://support.huaweicloud.com/sdkreference-meeting/ios_login_0016.html#ZH-CN_TOPIC_0269368365__table9264204813503) | **参数解释：** 会议室设备入会是否自动静音。 **约束限制：** 不涉及。 **默认取值：** HWMAutoMuteTypeDefault 与默认配置一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| confResType              | 否    | [HWMConfResType](https://support.huaweicloud.com/sdkreference-meeting/ios_login_0016.html#ZH-CN_TOPIC_0269368365__table15260163013102) | **参数解释：** 会议资源类型。 **约束限制：** 不涉及。 **默认取值：** HWMSDKConfRestypeDefault 默认。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| defaultSummaryState      | 否    | [HWMSummaryState](https://support.huaweicloud.com/sdkreference-meeting/ios_login_0016.html#ZH-CN_TOPIC_0269368365__table259529145512)  | **参数解释：** 会议云录制是否包含纪要，初始值。 **约束限制：** 仅企业配置支持智能会议纪要时生效（corpEnableSummary），参考[企业配置信息通知](https://support.huaweicloud.com/sdkreference-meeting/toctopics/zh-cn_topic_0000002364933149.html)。 **默认取值：** HWMSDKSummaryStateClose 会议纪要关闭。                                                                                                                                                                                                                                                                                                                                                 |
| autoPublishSummary       | 否    | BOOL                                                                                                                                   | **参数解释：** 是否自动发布纪要（免人工审核）。 **约束限制**： 不涉及。 **默认取值**： NO 不自动发布纪要。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| attendeesExcludeSelf     | 否    | BOOL                                                                                                                                   | **参数解释：** SDK预约会议是否去掉预定者。 **约束限制**： 不涉及。 **默认取值**： NO 携带预定者。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表2枚举HWMOrderConfType说明 
| 参数                 | 描述   |
|:---|:---|
| OrderConfTypeAudio | 音频会议 |
| OrderConfTypeVideo | 视频会议 |
   
 表3枚举HWMJoinConfRestrictionType说明 
| 参数                            | 值 | 说明    |
|:---|:--|:---|
| HWMJoinConfRestrictionAll     | 0 | 所有用户  |
| HWMJoinConfRestrictionCompany | 2 | 企业内用户 |
| HWMJoinConfRestrictionInvited | 3 | 被邀请用户 |
   
 表4HWMAttendeeInfo 参数说明 
| 参数          | 是否必传 | 类型                                                                                                                                                                         | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| number      | 否    | NSString \*                                                                                                                                                                | **参数解释：** 号码。 **约束限制**： 如果填分配给账号的sip号码（如+99111244216210249）则呼叫该账号的App；如果填PSTN号码（如18700000000），则通过VoIP网关呼叫该号码，前提是该企业已开通PSTN呼叫权限。与thirdUserId二选一，账号密码鉴权时使用。 **取值范围**： 0-128个字符。 **默认取值**： 不涉及。 |
| thirdUserId | 否    | NSString \*                                                                                                                                                                | **参数解释：** 第三方用户ID。 **约束限制**： 与number二选一，App ID鉴权时使用。 **取值范围**： 0-128个字符。 **默认取值**： 不涉及。                                                                                                                       |
| name        | 否    | NSString \*                                                                                                                                                                | **参数解释：** 与会者名称。 **约束限制**： 不涉及。 **取值范围**： 0-256个字符。 **默认取值**： 不涉及。                                                                                                                            |
| email       | 否    | NSString \*                                                                                                                                                                | **参数解释：** 电子邮箱地址，用于发送邮件通知。 **约束限制**： 不涉及。 **取值范围**： 0-256个字符。 **默认取值**： 不涉及。                                                                                                               |
| sms         | 否    | NSString \*                                                                                                                                                                | **参数解释：** 短信通知手机号码，用于发送短信通知。 **约束限制**： 不涉及。 **取值范围**： 0-128个字符。 **默认取值**： 不涉及。                                                                                                       |
| role        | 否    | [ConfRoleType]                                                                                                                | **参数解释：** 会议角色。 **约束限制**： 不涉及。 **默认取值**： ConfRoleTypeAttendee 普通与会者。                                                                                                                                                                                                   |
| accountId   | 否    | NSString \*                                                                                                                                                                | **参数解释：** 用户UUID。 **约束限制**： 不涉及。 **取值范围**： 0-128个字符。 **默认取值：** 不涉及。                                                                                                                    |
| userUuid    | 否    | NSString \*                                                                                                                                                                | **参数解释：** 在编辑会议时这个值由会议详情上报，默认是空字符串。                                                                                                                                                                                                                                                                                                                                                                                                           |
| isAnonymous | 否    | BOOL                                                                                                                                                                       | **参数解释：** 是否是匿名入会（仅用于获取与会者列表使用）。                                                                                                                                                                                                                                                                                                                                                                                                            |
| state       | 否    | [HWMConfAttendeeState](https://support.huaweicloud.com/sdkreference-meeting/toctopics/zh-cn_topic_0000001134894886.html#ZH-CN_TOPIC_0000001134894886__table16260141995815) | **参数解释：** 与会者状态（仅用于获取与会者列表使用）。                                                                                                                                                                                                                                                                                                                                                                                                              |
| orgId       | 否    | NSString \*                                                                                                                                                                | **参数解释：** 企业id。 **约束限制**： 不涉及。 **取值范围**： 0-32个字符。 **默认取值**： 不涉及。                                                                                                                           |
   
 表5枚举ConfRoleType说明 
| 参数                   | 说明    |
|:---|:---|
| ConfRoleTypeAttendee | 普通与会者 |
| ConfRoleTypeChairman | 主持人   |
| ConfRoleTypeAudience | 观众    |
| ConfRoleTypeCohost   | 联席主持人 |
   
 表6枚举HWMVmrIdType说明 
| 参数                 | 说明   |
|:---|:---|
| HWMVmrIdTypeFixed  | 固定类型 |
| HWMVmrIdTypeRandom | 随机类型 |
   
**示例代码**
```
/// 预约会议
- (void)bookConf {
    HWMOrderConfParam * param = [[HWMOrderConfParam alloc] init];
    param.confSubject = @"会议名称";
    param.startTimeStamp = 1598759580;
    param.duration = 15;
    param.confType = HWMConfTypeVideo;
    param.isNeedConfPwd = YES;
    param.isRecordOn = NO;
    param.timeZone = 56;
    param.vmrId = @"";
    param.callInRestrictionType = HWMCallRestrictionAll;
    [[HWMBizSdk getBizOpenApi] bookConf:param callback:^(NSError *_Nullable error, id _Nullable result) {
        if (error) {
            NSLog(@"预约会议失败:%@", error.localizedDescription);
        } else {
            NSLog(@"预约会议成功");
        }
    }];
}
```
