import { IConferenceInfo, IRecordPermission, IExportUserInfo, ILayout, IMediaConfig, IReqInfo, IEnterpriseConfig, LayoutAvatarType, TLayoutMap, InviteInfo, MEETING_DIRECTION, IVideoProfile, IMeetingControl, FocusViewAction } from '../../type/index'; import { default as Client } from '../client'; import { XYEnterpriseInfo, XYUicustomization } from './index.type'; declare class Meeting { private client; private logger; private action; private conferenceInfo; private recordPermission; private cloudRoomInfo; private layoutImageAvatarMap; private mediaConfig; private enterpriseConfig; private userInfo; private meetingControlInfo; private mmsSubtitle; constructor(client: Client); destroy(): void; /** * 通话字幕状态-是否可用 */ get isSubtitleEnabled(): boolean; getRecordPermission(): IRecordPermission; getLayoutImageAvatarMap(): Map; getEnterpriseMediaConfig(): IMediaConfig; getUserInfo(): IExportUserInfo | null; getConferenceInfo(): IConferenceInfo; getEnterpriseConfig(): IEnterpriseConfig; getLayoutAvatarType(): LayoutAvatarType; /** * 获取会控消息 * * @returns { IMeetingControl } 会控消息 */ getMeetingControlInfo(): IMeetingControl | null; /** * 清空已退会的终端头像 * * @param { string[] } rosterIds - rosterId列表 */ clearLayoutAvatar(rosterIds: string[]): void; /** * 设置会控消息 * * @param { IMeetingControl } info */ setMeetingControlInfo(info: IMeetingControl): void; /** * 登录用户信息和个人云会议室信息 * 如果confRoomOwnerList有值,则根据此属性判断是否是会议室owner * * @since 4.0.2 * @param { string } confRoomOwnerList - 会议室owner列表 */ handleUserInfo(confRoomOwnerList?: string): Promise; /** * 会议室信息,如号码、名称、类型、配置信息(是否有水印等) * TODO:思考问题,如何将此处转为链式调用 * * @public */ handleConferenceInfo(): Promise; /** * 更新并上报会议室信息 * * @param { Object } properties - 会议室信息 */ updateConferenceInfo(properties?: {}): void; /** * 录制权限获取 * * @public * @return { IRecordPermission } 录制权限 */ checkPermissionWithMeetingNumber(): Promise; /** * 录制存储空间检查 * * @param { string } recordingUrl * @return { IRecordPermission } 录制权限 */ checkStorageSpaceWithRecordingUrl(recordingUrl: string): Promise; /** * 获取个人云会议室信息,包含入会密码和个人云会议室号 */ getCloudMeetingRooms(): Promise; /** * 获取个人云会议配置 * 说明:2024/5/23农商行需求分区云调用,ones id: #364882 * 此接口获取两个个人云会议室配置开关,通过charge接口获取 */ getCloudMeetingRoomsConfig(): Promise; /** * 获取会议控制信息, 包含是否是主持人、是否需要会控密码 * */ handleMeetingControlInfo(): Promise; /** * 设置Layout头像 * 如果有自定义头像,无论oms配置什么,都显示自定义的图片头像 * 如果没有自定义头像,oms配置了人物头像,则显示人物头像,配置了名称头像,则显示名称头像(硬终端特殊) * * 硬终端设备,无论oms配置什么,都使用对应的人物图标 * * @param { ILayout } layout - 参会者Layout * @param { string } rosterId - 参会者唯一id */ setLayoutAvatar(layout: ILayout, rosterId: string): void; /** * 处理layout图像 * * @param { TLayoutMap } layoutListMap */ handleLayoutAvatar(layoutListMap: TLayoutMap): Promise; /** * 获取vcNumber真实的会议室信息 * * @param { string } vcNumber - 真实的会议号 * @param { string } confNumber - 呼叫传入的会议号 */ private getVCConfInfo; /** * 获取水印内容及范围 * * @private * @param { string } confAuxProperties - 水印配置信息 */ private getWatermarkContent; /** * 获取会议分享详情信息 * * TODO: 2022-10-27,携带meetingId的Info接口调用失败,原因是dcs(大数据当前服务)接口在入会后存在15s延迟,导致info返回403错误; * TODO:2022-10-27,此处使用inviteUrl地址,暂时不使用微信邀请链接地址,原因是会议号获取的微信邀请链接页面访问失效,需要提供MeetingId字段才行; * 2023-8-3 鉴于安全考虑,此接口需提供MeetingId字段; */ getMeetingInviteInfo(): Promise; /** * 通过会控设置焦点画面 * * @param { string } id - 指定切换到焦点画面的endpointId * @returns */ setMeetingFocusView(id: string, action: FocusViewAction): Promise; /** * 修改参会者名称,目前仅支持修改Local * * @param { string } newName - 新名称 */ rename(newName: string, callback?: () => void): Promise; /** * 企业配置信息 * * 1. 企业管理平台带宽配置 * 2. Web端请1080P能力配置 */ setEnterpriseMediaConfig(): Promise; /** * 配置上行分辨率配置 * * @param { MEETING_DIRECTION } direction - 配置上下行方向配置 */ processMediaConfig(direction: MEETING_DIRECTION): void; /** * 配置上行分辨率配置 * * @param { MEETING_DIRECTION } direction - 配置上下行方向配置 * @param { IVideoProfile } profile - 配置最大分辨率/帧率 */ processVideoProfileConfig(direction: MEETING_DIRECTION, profile: IVideoProfile): void; /** * 企业配置信息 * * 1. 头像配置 * 2. 禁用语音转写英文翻译 */ setEnterpriseBuffetConfig(): Promise; /** * 结束全体会议 */ endAllMeeting(): Promise; /** * 处理信令下发的等候室 * * @private * @param { IWaitingRoomProps } waitingRoomProps 等候室信息 */ private handleWaitingRoomInfo; /** * 未获取头像的layout * * @param { TLayoutMap } layoutListMap * @returns { ILayout[] } */ private getUnAvatarList; /** * 根据企业配置媒体能力,得到最终的请流参数 * * @param { IReqInfo[] } reqInfoList 请流列表数据 * @returns { IReqInfo[] } - 最终的请流列表 */ convertReqList(reqInfoList: IReqInfo[]): IReqInfo[]; /** * 处理云会议室属性消息 * * @param { Record } data - 云会议室属性消息 */ handleConferencePropertiesMessage(data: Record): void; /** * 获取管理平台角色相关权限,包含录制权限 * * @returns { Promise } - 企业信息 */ getUicustomization(): Promise; /** * 获取企业信息,包含企业信息配置title/icon、企业名称等 * * @returns { Promise } - 企业信息 */ getEnterpriseInfo(): Promise; /** * 校验入会敏感词 * * @param { string } displayName - 入会名称 * @returns */ checkSensitiveWord(displayName: string): Promise; /** * 处理通话字幕、转写状态变更事件 * * @param { Record } data - 通话字幕、转写状态变更事件 */ handleTranscriptionStatus(data: Record): void; } export default Meeting;