会议集成开发指南
集成
XSwitch 的会议功能非常强大灵活,可以满足各种不同的应用场景、支持各种集成和控制方式。
集成方案简介
下面是几种可能的集成方案,可以根据需要选择合适的方案。其中预约会议和临时会议差不多,都是以meeting
表示会议,它们都有相应的会议逻辑和相关的与会者数据。而原生会议是 XSwitch 底层的音视频会议功能,只提供音视频混音、混屏能力,相应的会议控制等。
预约会议
预约会议是 XSwitch 的基本功能,可以在 Web 界面上或通过 API 接口创建一个预约会议。预约会议会议号由系统自动生成。预约会议可以设置开始时间和结束时间,会议开始时间的当天都可以呼入会议。系统会自动记录参会人员相关数据(主叫号码、加入时间等)。
临时会议
有时候,需要临时召开一个会议,会议成员少,不需要复杂的管理功能,使用预约会议就显得比较复杂,这时候可以使用临时会议。
临时会议会议号由系统自动生成。默认情况下任何终端呼叫*86
即可创建一个临时会议,用户可以使用其他方式(如通过微信等)通知其它成员加入。系统会自动记录参会人员相关数据(主叫号码、加入时间等)。
原生会议
原生会议直接调用 XSwitch 底层的混音、混屏和控制能力,可以实现更复杂的会议功能。原生会议不会记录参会人员相关数据,需要开发者自己实现。
从另一方面讲,原生会议也是最简单的会议,只需要配置一条路由,选择一个会议模板。然后,有人拨打号码匹配到该路由就可以加入会议,所有人都可以进入,不需要授权。这种会议开会最简单,但不方便管理和数据统计。
会议名称(会议号),可以根据被叫号码或一定的规则生成。
这种方式用起来非常灵活,如果不需要 XSwitch 生成会议号、保留会议数据,可以考虑以这种方式集成。
预约会议
原生会议集成一般需要以下步骤:
- 创建预约会议
- 会议通知
- 用户通过 Web 界面或呼叫相应的电话号码加入会议
- 开会,开会期间可以进行各种管理
- 会后数据统计
会议参数
预约会议使用meeting
对象描述。
name
:会议名称start_time
:会议开始时间,格式为YYYY-MM-DD HH:MM:SS
,例如2018-01-01 12:00:00
。
相关 API
临时会议
临时会议与预约会议在底层逻辑一致,只是不需要预约,会议立即开始。
会议参数
相关 API
原生会议
预约会议和临时会议都有相关的逻辑,会议号的生成也使用内置的规则。有时候为了更方便灵活的集成,可以直接使用底层的原生会议实现。
会议参数
原生会议使用conference
对象。原生会议无须创建,第一个加入会议的人会自动创建并运行一个会议(conference
),最后一个人退出后会议结束并释放相关资源。
name
:会议名称。需要合法的标志符字符串,不能使用特殊字符,如@
等。合法的名称如:conference-abc-1234-example.com
。会议名称需要在会议进行期间唯一。但为了更好的排查问题及数据统计,建议使用全局唯一的会议名称,如使用一个 UUID。
相关 API
REST API
- URL:
/api/conferences
- 创建会议:
POST /api/conferences
,该功能实际上不需要调用,而且,即使调用也什么都不做。 - 结束会议:
DELETE /api/conferences/{name}
,结束会议并释放相关资源。
XCC API
XCC API 可以用于接收会议事件,也可以进行会议控制。