会议集成开发指南

集成

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 可以用于接收会议事件,也可以进行会议控制。

综述