本文作者:网易云信技术专家朱振昊、官仕富
1 背景
2020年初始,新冠疫情爆发,整体经济下行,却依然给部分领域带来了巨大的商机,尤其是在实时音视频领域,越来越多的企业选择了 RTC 云端会议的方式进行沟通和协作。虽然因为在过去的十几年里,传统视频会议的市场基础,有很多企业还在使用着诸如 Polycom、思科等提供的传统硬件会议系统(采用 PSTN/SIP 协议接入),短时间内 RTC 云端会议方式可能还无法完全取代硬件会议系统,但是在目前的市场环境下,融合通信肯定是越来越多企业倾向选择的一大需求。
2 硬件视频会议和 RTC 云端会议对比
我们先来看一下硬件视频会议跟 RTC 云端会议分别是如何通过哪些具体技术实现的,又分别有什么优缺点。
硬件视频会议一般采用 MCU 架构 (MCU:多人通讯架构之一,多点控制单元,特点是服务器将所有上行媒体流混成一路转给接收端),PSTN/SIP 标准(SIP 协议:Session Initiation Protocol 的简称,通信领域的协议标准)协议接入,其部署复杂,硬件成本昂贵,但是能够节省带宽和终端处理能力。
RTC 云端会议以网易会议为例,它采用的是 SFU 架构(SFU:多人通讯架构之一,选择转发单元,特点是服务器分别转发每一条订阅的上行流给接收端,而不做混流),私有信令接入,采用 NERTC(NERTC:网易云信自研的音视频通信方案) 音视频编码体系,实现较好的音视频效果体验,支持 Simulcast(Simulcast:多流发送,即允许同一终端在同一时刻发送不同分辨率档位的视频流)部署灵活,但是带宽占用较大及对终端处理能力要求较高。
那么如何实现硬件视频会议与 RTC 云端会议两者的互通,是当下一个迫切需要解决的问题。网易云信也在融合通信场景下进行了很多的探索与实践,探索出通过 SIPGateway(SIP 协议接入网关)的方式来实现融合通信,并在网易会议中应用。今天我们就来分享一下网易会议在融合通信场景下对 SIPGateway 服务端架构的实践。
3 SIPGateway
架构图
图为 SIPGateway 服务端的架构图,主要分为几个模块:
- SIP 协议接入模块:用来实现 SIP 用户的接入 ,支持 RTP/RTCP 协议;
- 云信 RTC 协议接入模块:用来实现云信 RTC 用户的接入,支持云信 RTC 私有协议;
- 会议管理模块:主要维护房间及参会者的状态、会议号管理等;
- 编解码模块:主要处理音视频编解码以及转码;
- MCU 模块:SIPGateway 实现了混音混屏的功能,由于 SIP 标准终端不支持 Simulcast 的能力,也不支持接收多流,故在 SIPGateway 上需要做混屏混音发送给 SIP 端;
- SFU 模块:支持纯转发模式或者根据语音激励来选择转发的模式;
使用 SIPGateway 服务端是如何实现云端会议的呢,我们通过两个具体的应用场景来看一下实际的应用情况。
实例应用场景
场景1:由网易会议 APP 发起会议,支持 SIP 终端加入网易会议。
如上图显示,当由网易会议 APP 发起会议时,网易会议会同步创建一个 SIP 会议短号,使用者在 SIP 终端输入短号后即可加入会议。
具体 SIP 登录流程不做过多阐述,可以参照 SIP 标准协议(本文末有详细协议链接)。
我们来看在这样的场景下,具体的媒体流转向如下:
- SIP 用户登录后,SIPGateway 同步创建房间并管理用户状态;
- 当用户加入会议时其为 SIP 用户,SIPGateway 会将这个 SIP 用户模拟成一个 RTC 用户后加入网易会议,这里走的是 NERTC 流程,与媒体服务器建立上行 RTCSession 后,即可进行推流,SIP 端的上行流在 SIPGateway 上进行 MCU 混屏混音的同时,也会复制一份发往媒体服务器,这样做的好处在于媒体服务不需要对 SIP 用户进行特殊处理,从而可以减少对它的侵入;
- 在 RTC 用户登录会议时,SIPGateway 将这个 RTC 用户模拟成一个 SIP 用户加入到网关上的房间里,同时与媒体服务器建立下行 RTCSession 进行收流,RTC 用户的媒体流经过混音混屏转发给 SIP 用户;
在这个流程中,需要对音视频进行编解码:
- 音频方面, PSTN/SIP 普遍使用 G.722或G.729 编解码,而 NERTC 体系中采用 OPUS 编解码,所以音频需要做转码;
- 视频方面,引入了 MCU 功能,过程对服务器的性能会带来一定影响,但整体性能符合预期;
最终呈现的画面布局如下图所示:
场景2:由传统视频会议发起会议,支持网易会议 APP 加入硬件视频会议
如图所示,具体的流程:当由传统视频会议发起会议时,会议管理预系统会创建硬件视频会议房间,RTC 用户输入硬件视频会议号,经过网易会议,系统会同步创建网易会议号以及 SIP 会议短号,并通知到 SIPGateway,SIPGateway 起到信令协议及 SIP 智能路由作用,让 RTC 用户与硬件视频会议媒体互通。
在这个过程中涉及到3个会议:硬件视频会议房间、网易会议房间、网关会议房间,具体的媒体流转向以及数据转发策略如下:
- 当硬件视频会议创建房间时,网易会议 APP 会拨打硬件视频会议号,同步创建网易会议房间与 SIPGateway SIP 会议短号;
- 创建 SIPGateway 房间后会在网关会议房间中进行融屏;
- 当用户加入会议时其为 RTC 用户,SIPGateway 将 RTC 用户模拟 SIP 用户加入网关会议房间,同时与媒体服务器建立下行 RTCSession 进行收流;
- SIPGateway 总体策略是通过巧妙的信令转换,将硬件视频会议上的所有用户模拟成一个 RTC 用户加入网易会议,而将所有 RTC 用户模拟成一个 SIP 用户加入到硬件视频会议中;
- SIPGateway 在视频画面推送上,根据能量选路策略,选择声音能量最大的那个 RTC 用户视频流,进行融屏发送到硬件视频;
- SIP 布局画面可由硬件视频会议会控设置,SIP 主会场、分会场切换,轮询而改变,并且也可选择性观看其中一路 RTC 或所有 RTC 参会成员画面;
- RTC 加入硬件视频会议场景,做到了真正的会议互联互通, SIP 端用户既可以加入硬件视频会议房间,还可以加入网易会议房间;
最终呈现的画面布局如下图所示:
_
以上为 SIPGateway 的架构图介绍以及两个应用场景的具体技术实现,下面我们看一下使用 SIPGateway 的主要特点以及支持的部署方式。
4 SIPGateway 特点以及部署
SIPGateway 的特点
使用 SIPGateway 主要有以下几个方面的特点:
灵活的呼入方式
- 支持 PSTN/SIP 端主动加入网易会议,网易会议创建会议的同时也为 SIP 终端分配了一个对应的 SIP 会议短号,SIP 用户只需要输入 SIP 会议短号即可加入网易会议;
- 支持邀请 PSTN/SIP 端加入网易会议,在会议进行中,主持人选择通讯录中的 SIP 终端,主动把他邀请入会;
- 支持网易会议 APP 加入到第三方视频会议系统;
全平台互通
- 支持与 iOS、安卓、PC、Mac 各个平台的互通;
- 支持 PSTN/SIP 终端接入;
MCU 级联
支持 SIPGateway MCU 与传统硬件视频会议 MCU 的级联,这种场景可以支持多画布的实现。
负载均衡
负载均衡模块会根据 SIPGateway 的实际 Load 情况分配合适的 SIPGateway,前提是同一个房间分配到同一台 SIPGateway 上。
高安全性
- IP 白名单:在 SIPGateway 的 Proxy 是代理 SIP 终端的入会请求,为了防止恶意攻击,我们针对租户设置 IP 白名单,防止非法 IP 访问;
- 区域隔离:不同的租户可以路由到同一 SIPGateway 上,也可以路由到专门的 SIPGateway 或集群;
- 对于网络安全性要求高的企业,SIP Proxy 部署在企业 DMZ 区,DMZ 区起到企业内网保护,防止内网攻击,又可与外网通信的作用;
高可用性
- SIPGateway 采用集群部署,当其中一台 SIPGateway 宕机了,不会影响其他用户的音视频通话;
- SIP Proxy 之间通过 Keep-Alive 保活,当一台宕机,会切换到另一台 Proxy, 不影响 SIP 通话状态与用户音视频通话,实现无感切换;
数据监控平台
- 数据平台:定时采集 SIP 用户的在线状态、流量状态、网络状态,当出现异常时,有助于及时定位分析问题;
- 监控平台: 自动监控服务器状态,服务出现异常时自动弹出报警,有助于及时解决服务异常问题;
SIPGateway 部署方式
在部署方式上,SIPGateway 采用容器化部署,支持公有云或者私有化的多种方式,灵活多变,满足不同场景下的需求。
5 结语
本文主要分享了在网易会议中使用 SIPGateway 实现融合通信场景,并通过两个实例应用场景,分析具体的媒体流转向以及数据转发策略。
随着应用场景越来越丰富,比如企业内部 APP 移动工作台,系统集成电话呼叫功能,智能硬件,诸如智能门禁,智能机器人等将会对全终端的互通能力提出更高的要求,网易云信在这条赛道的探索会将持续进行,尽力满足用户不同场景的需求,真正做到助力用户内生长。
文中提到的相关术语以及衍生阅读:
- MCU:多人通讯架构之一,多点控制单元,特点是服务器将所有上行媒体流混成一路转给接收端;
- SFU:多人通讯架构之一,选择转发单元,特点是服务器分别转发每一条订阅的上行流给接收端,而不做混流;
- SIP 协议:Session Initiation Protocol 的简称,通信领域的协议标准;
- RTCSession:网易云信的 RTC 流传输组件;
- Simulcast:多流发送,即允许同一终端在同一时刻发送不同分辨率档位的视频流;
- NERTC:网易云信自研的音视频通信方案;
- SIPGateway:SIP 协议接入网关;
想要了解更多,欢迎点击
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。