业务场景
在线音视频会议、1 对 1 视频通话应用的场景(类似微信的视频通话功能)下,需要实现视频呼叫的功能。目前阿里云的音视频通信产品需要通话双方约定加入同一个频道号才能互相通话,本文将给出一个借助消息服务实现视频呼叫的方案。
业务流程
下图所展示的基于消息服务(自建或云服务)和音视频通信 RTC 实现一次音视频通话会议的调用流程,其中灰色部分为您的自建开发程序或AppServer服务,蓝色部分是消息服务(自建或云服务)、橙色是音视频通信 RTC服务。
该场景中用户 A 将邀请用户 B 加入音视频会议,具体流程如下所述:
- 终端 App 的某个用户 A 发起呼叫请求,通过发送消息将请求传递到消息服务端,消息经过消息服务路由到业务方自行开发的AppServer,AppServer验证通过后返回本次通话用户A和用户B的加入频道相关参数。
- 用户A收到加入频道相关参数后,调用RTC的客户端接口加入音视频通话频道中
- 消息服务主动将用户B的加入频道相关参数发送给用户B的客户端
- 用户B接受邀请后,通过步骤3中的入会信息调用RTC的客户端接口加入音视频通话频道中
基于上述设计思路,可以使用消息服务实现其他自定义流程,例如销毁会议、中途拉人入会、禁言等操作。消息服务在音视频会议场景中充当了信令传输的角色。
注意事项
- 方案中的消息服务需要业务方自行实现,或者也可以使用第三方的即时通信服务
- 需要保证AppServer返回的A和B用户的入会信息中频道号一样