预约会议
接口描述
该接口用于预约会议。
注意事项
- 不在登录状态下,不应调用该接口。
- 会议开始时间必须晚于当前时间,会议时长应大于15分钟。
- 个人会议或者云会议室的时候要传入vmrId。
- 携带与会者入会的时候需要传入attendees。
- callback中的result返回会议详情信息(ConfInfo类型说明)
方法定义
1 2 3 4 5 6 |
/** * 预约会议 * @param bookConfParam 预约会议参数 * @param hwmCallback 结果回调 */ void bookConf(BookConfParam bookConfParam , HwmCallback<ConfInfo> hwmCallback); |
参数描述
参数 |
是否必须 |
类型 |
描述 |
---|---|---|---|
confSubject |
是 |
String |
参数解释: 会议主题 约束限制: 不涉及 取值范围: 1-385个字符 默认取值: 不涉及 |
startTimeStamp |
是 |
long |
参数解释: 会议开始时间,UTC时间戳,精度秒 约束限制: 时间戳不能早于系统当前时间 默认取值: 不涉及 |
duration |
是 |
int |
参数解释: 会议时长,单位分钟 约束限制: 不涉及 取值范围: 最小值15分钟,最大值1440分钟 默认取值: 服务端默认会议时长30分钟 |
timeZone |
否 |
int |
参数解释: 时区码,用于发送会议通知 约束限制: 不涉及 取值范围: 详情参考时区表 默认取值: 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 |
参数解释: 是否允许来宾提前启动会议 约束限制:
默认取值: true |
allowGuestStartConfTime |
否 |
int |
参数解释: 允许来宾提前入会时间范围(单位:分钟) 约束限制:
取值范围:
默认取值: 0 |
isOpenWaitingRoom |
否 |
boolean |
参数解释: 等候室开启开关 约束限制: 需要等候室功能开通后才能生效 默认取值: false |
customInfo |
否 |
String |
参数解释: 端侧自定义数据,服务器不感知业务 约束限制: 不涉及 取值范围: 0-64个字符 默认取值: 不涉及 |
concurrentParticipants |
否 |
int |
参数解释: 会议最大与会人数 约束限制: 不涉及 取值范围:
默认取值: 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-企业配置变更 默认取值: SUMMARY_STATE_CLOSE |
autoPublishSummary |
否 |
boolean |
参数解释: 是否自动发布纪要(免人工审核) 约束限制: 不涉及 默认取值: false |
参数 |
是否必须 |
类型 |
描述 |
---|---|---|---|
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 |
参数解释: 与会者类型(仅用于获取与会者列表使用) 约束限制: 不涉及 默认取值: 不涉及 |
|
否 |
String |
参数解释: 电子邮箱地址,用于发送邮件通知 约束限制: 不涉及 取值范围: 0-256个字符 默认取值: 不涉及 |
sms |
否 |
String |
参数解释: 短信通知手机号码,用于发送短信通知 约束限制: 不涉及 取值范围: 0-128个字符 默认取值: 不涉及 |
role |
否 |
ConfRole |
参数解释: 会议角色 ATTENDEE(0, "普通与会者") HOST(1, "主持人") AUDIENCE(2, "观众") COHOST(3, "联席主持人") 约束限制: 不涉及 默认取值: ATTENDEE |
orgId |
否 |
String |
参数解释: 用户的企业ID, 用于识别是否是本企业账号 约束限制: 不涉及 默认取值: 不涉及 |
isAnonymous |
否 |
boolean |
参数解释: 是否是匿名入会(仅用于获取与会者列表使用) 约束限制: 不涉及 默认取值: 不涉及 |
state |
否 |
参数解释: 与会者状态(仅用于获取与会者列表使用) 约束限制: 不涉及 默认取值: 不涉及 |
成员名称 |
类型 |
描述 |
---|---|---|
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 |
是否在分组讨论中 |
枚举名称 |
枚举值 |
枚举说明 |
---|---|---|
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);