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