本文作者:网易云信技术专家朱振昊、官仕富

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 协议接入网关;

想要了解更多,欢迎点击

网易云信在融合通信场景下的探索和实践之 SIPGateway 服务架构相关推荐

  1. 技术实践 | 网易云信在融合通信场景下的探索和实践之 RTMPGateway 服务架构

    导读:随着各个行业的互联网化进程不断演进,融合通信在越来越多的场景中得到应用,例如金融场景的视频面签.医疗场景的远程会诊.企业协作场景的多人视频会议等. 文|本森 网易云信资深音视频服务端开发工程师 ...

  2. 娱乐社交,玩票大的!网易云信“2021融合通信开发者大赛”正式收官!

     引 言 每一位开发者,都是改变世界的坚实力量 每一处创新,都是在向下个时代一往无前地迈进 5月29日,2021年网易MCtalk泛娱乐科技峰会在京召开.峰会现场,由网易云信主办的首届"娱乐 ...

  3. 发展五年后,网易云信冲击融合通信头把交椅

    文 | 曾响铃 来源 | 科技向令说(xiangling0815) 与移动互联网一同走向繁荣的,还有已经成为行业基础设施.几乎各种应用必备的云通信服务,催生出包括腾讯云IM.网易云信.融云.环信等在内 ...

  4. 网易云信携手“瑶台”,打造元宇宙商业化实践标杆案例

    在软硬件技术空间发展的背景下,人们对于互联网玩法的畅想逐步由创造虚拟空间向现实世界与虚拟空间融合迈进. 甚至在刚刚过去的 10 月,Facebook 创始人马克·扎克伯格将"脸书" ...

  5. SDN在低带宽战术通信场景下的应用

    [摘  要]SDN具有转控分离的架构特点,骨干网具有带宽资源大.链路稳定的优势,SDN在骨干网中的应用研究案例较多,但由于接入网先天性带宽较低的不足,SDN在低带宽战术通信方面的研究还较少.主要研究在 ...

  6. 【工业智能】人工智能之于工业,应当是融入者而非颠覆者;记一场工业场景下的AI技术实践

    2018年1月13日,由极客邦科技InfoQ中国主办的AICon全球人工智能与机器学习技术大会在北京国际会议中心召开.此次大会以"助力人工智能落地"为主题,汇聚了国内外知名企业和顶 ...

  7. 京东购物在微信等场景下的算法应用实践

    本文根据京东微信手Q业务部马老师在京东\u0026amp;DataFun Talk算法架构系列活动中所分享的<京东购物在微信等场景下的算法应用实践>编辑整理而成,在未改变原意的基础上稍做修 ...

  8. 分享实录 | 单人开发场景下的测试环境实践

    在软件研发过程中,"测试环境"是部署最频繁.也是开发者使用最频繁的一种运行环境,稳定而易用的测试环境能够极大提高开发者的工作效率和幸福感.为更好的将阿里巴巴在测试环境管理方面的实践 ...

  9. 全域调度:云边协同在视频场景下的探索实践

    随着多媒体业务越来越多的涌现,每个业务都有不同的差异性特征.各大视频云厂商遇到的最大挑战是如何打造多媒体分发网络,使用最低成本为多业务提供最优质网络体验.本次分享邀请到了华为云算法专家--杨昌鹏老师, ...

最新文章

  1. 网页加载报错——URL网页连接错误
  2. win10管理员已阻止你运行此应用”解决方法
  3. kotlin学习之类委托(八)
  4. 阿里数据库内核月报:2017年04月
  5. 最好用的手机端C/C++语言编程软件, 不要说没电脑就不学编程了!
  6. php返回上一层的函数6,[PHP]实用函数6第1/2页
  7. php 正则匹配收货地址,PHP简单实现正则匹配省市区的方法
  8. NUll is null like
  9. 【6】python生成数据曲线平滑处理——(Savitzky-Golay 滤波器、convolve滑动平均滤波)方法介绍,推荐玩强化学习的小伙伴收藏
  10. 友盟分享 qq没有存储权限 分享失败
  11. [译]GitHub应对1.28宕机事故的前前后后
  12. 在单面打印机上使用WPS实现手工双面打印
  13. eclips无法查看源码
  14. Android获取系统相册图片选中地址,获取手机中的所有图片地址自定义相册
  15. 奥扬科技IPO被终止注册:年营收8亿 苏伟持有67.5%股权
  16. 自然连接(NATURAL JOIN)
  17. STM32用IIC实现EEPROM的读写
  18. android源生Browser分析---APP层基本架构
  19. UG导出CAD图纸的方法
  20. 讨论 | AR 远程协同和传统音视频通话有什么区别?

热门文章

  1. QGridLayout::addWidget 的使用
  2. 对稀疏矩阵进行归一化
  3. 仿QQ空间说说TextView内容显示、收起
  4. Android面试题-机型适配之痛,例如三星、小米、华为、魅族系统问题处理方式
  5. 有两个瓶子一个瓶承5升水一个瓶子成3升水,那怎么可以成四升水呢
  6. mysql 查看僵死的进程_如何查看并杀死僵死进程
  7. 微信自动化,可以不可以?发送关键字邀请你加入群聊
  8. 软件测试 文档 系列,Web_软件测试_Checklist_应用系列-全集(1-7部分).docx
  9. 南大学报 计算机科学 哪个好,南大核心学报比较好中的期刊
  10. C++中获取日期函数gmtime和localtime区别