1 背景

OPPO实时音视频(OPPO Real-Time Communication ORTC),是我们推出一套低延时、高品质、跨平台的音视频互通解决方案,通过OPPO云服务器向开发者开放,提供多人音视频通话、实时监控、应急指挥调度、互通直播、IOT万物互融、云游戏等能力输出。以往的音视频通信技术大多是基于SIP/H323的实现方案,本文提供一种融合方案,实现RTC与SIP的互联互通,使得RTC能够很轻易的实现与PSTN、SIP Trunk的对接,同时传统的会议终端通过该方案也能轻易接入RTC系统。

2 ORTC简介


ORTC万物互连下的重要基础设施,解决了不同平台各色终端之间实时互连互通问题,为众多产品提供实时音视频通信能力,目前已上线及计划产品包括,小布视频通话,远程协助,小游戏语音互动,云游戏,互动直播,小布会议,虚拟人,IOT等。

依托OPPO云优质的节点资源,全网协同,动态智能路由,区域中级,就近接入,层级扇出,全球连接的特点,ORTC提供超低延时,超高并发,超高可用的音视频服务。

3 ORTC系统架构

ORTC是一款输出实时通信能力的PAAS云服务产品,总体架构包含媒体服务、信令服务、监控服务、接口服务、端侧接入SDK等。其中信令媒体是分离的,信令通过SLB和Redis实现分布式及智能调度。媒体整体采用SFU架构,支持级联,单个房间不同用户可以分布在多个媒体实例上。媒体支持合流录制,音视频流级联到MCU上,可以进一步实现合流后的录制、转分发。音视频传输上支持jitterbuffer、NACK、FIR、PLI, 音频支持AGC、AEC、NS,FEC处理上音频传输上下行均支持RED,视频上行支持ULPFEC。端侧SDK基于WebRTC的流程规范,所有的SDK均支持simulcast,支持实时字幕、语音激励。ORTC是在OPPO全球混合云这个强大底座平台基础上建立的一款高并发、低延时、跨平台、高可用的RTC服务平台。

4 SIP应用场景及架构

SIP的应用无处不在,无论是思科、华为、Polycom这些传统会议厂商,还是海康、大华、宇视这些监控厂商,我们都能找到SIP的影子,而基于SIP的产品在传统会议、监控等相关行业占据着很大一块市场。而5G及云服务的兴起,无疑会给传统行业注入新的活力,赋予其革新的动力,因为它不仅给传统行业大大降低成本,还会提升其效率及服务体验。举个例子,高速的监控如果上云存储上会节省一大笔的开销,而随时随地都能实时的看到监控画面并与之互动无疑也是监管部门及用户喜闻乐见的。这些能力都是RTC能够提供的,然而直接上RTC的话,无疑会给客户带去翻天覆地的改造,这也是大多数企业用户所不能接受的,他们乐见的是平滑的无缝的升级切换,而要做到这些就需要进行RTC与SIP的互联互通,并为之深度融合定制相应的解决方案。

RTC虽然是实时通信发展的必然,然后它也有依赖的靠山,那就是基础的网络设施,由于全球各地区,甚至同一地区的不同使用地点,不同人流量,网络信号都可能不同,造成基于纯数据网络的应用无法很好的服务,而这时候基于PSTN的普通电话网或PTT无线对讲机可能就展现出了其稳定可靠不掉线的特点,如果能把他们接入到RTC中无疑增强了RTC的抗弱网能力,拓展了其应用场景的范围,而这些网络及设备的接入也需要ORTC与SIP进行融通。

随着万物互联的深入,网络的触角延伸到了力所能及的智能设备,这也为RTC提供了更广阔的使用场景,这些设备平时可能对可靠性要求不高,偶尔掉线也能接受;或者说他们可能就没有直接接入互联网,接入的是独立的网络,比如智慧社区的门铃,老人的手环,儿童的手表等IOT设备,其对应紧急被叫端的APP可能不是实时在线状态,这时候要取得和他们的紧急联系就需要借助于SIP外呼PSTN/LTE网络的普通电话。

而以上这些都对RTC与SIP的融合提出了需求,而要想把RTC做强做大做成音视频通信的基础设施,同时能提供各种协议的接入能力也是对ORTC的基本要求。

在上面的架构中,借助于SIP网关及SIP媒体服务器,实现了RTC服务与外部基于标准SIP协议的PSTN网络或SIP中继的无缝衔接。

在ORTC与SIP的对接过程中,ORTC内部的架构是相对独立的,经过SIP网关处理后SIP协议将会实现与WebRTC信令协议的映射转换,媒体流则通过标准的RTP/RTCP进行传输控制,而接入的SIP终端,也将被伪装成一个虚拟的WebRTC Client入会。

虽然从架构上看,ORTC到SIP只需实现信令控制和媒体传输就大功告成了,然后在实施过程上,要考虑的实现细节还有很多,这其中包括转码、合流、安全传输、抗弱网特性、双流输出等。

5 ORTC-SIP 合流转码

ORTC作为一款通用的音视频通信解决方案,其必然要求具备支持各种类型音视频编解码的能力,其中包括了前沿的音视频编解码Lyra、AV1,而传统SIP会议则大多使用相对保守通用的编解码器,这就要求两者对接时具备非对称编解码的能力,而作为切入方,ORTC就要求具备处理这种非对称编码的转码功能。同时如果要直接替换第三方的服务,而只保留对方终端的话,则对方终端要看到的ORTC的合流输出,而不是现在基于SFU的多路输出,因此ORTC需具备合流(MCU)能力,即我们的ORTC的媒体不能再仅仅是SFU,要同时具备SFU+MCU的能力输出。

具体架构兼容的实施如上图所示,sip终端经过sip服务器后,将于ORTC提供的虚拟sip终端实现点对点的音视频通信,这样在两端各自与sip服务器完成背靠背的SDP协商之后,外部的媒体将转发至ORTC内部的媒体接收端,经过pipe输出至中心媒体节点后加入ORTC的智能调度分发进程,同时ORTC所有接入方的媒体数据,也将汇聚到MCU,经其合流后分发调度给sip server,sip server做进一步的加密处理后转发至sip终端。

同样,经过MCU合流后的数据,也能旁路输出,能够以直播形式融合CDN系统进行分发,同时也具备云端录制能力。

6 ORTC-SIP抗弱网及安全控制


作为全球化运营的通信解决方案,其所面临的接入网络的基础能力及使用场景可能千差万别,有些地方网络信号强,有些地方则较弱,有些地方可能拥堵较严重,这就要求我们的系统具备较强的抗弱网能力,而ORTC基于WebRTC规范实现的软件,天然具备了较强的抗弱网能力。作为后来者的SIP要想完美的接入进来,则必然要求其不仅具备ARQ、FEC、FIR、PLI这些必备的抗弱网特性,还要具备较完善的码率、帧率动态自适应能力。


作为一款商用的实时通信软件,保密无疑是其必备的属性,而ORTC基于wss+srtp的实现方案,给了用户全链路的信令及数据安全传输保障。而作为外来户的SIP服务,如果要完美的融入到ORTC上,则安全肯定也是必要条件。因此在信令接入上sip协议需要承载在TLS上,媒体数据要采用密级较高的SRTP传输,同时在服务部署上要做好相应的端口限制及防火墙防护。

7 ORTC-SIP 双流控制

对于视频会议、直播等场景,双流的呈现已成为音视频通信的必备技能。如何更好、更灵活的进行双流的切换及控制,也成为一项输出能力的重要指标。在ORTC与SIP的整个架构中,我们提供了基于BFCP的双流传输控制协议,很好的解决了多端双流之间的来回自由切换。

8 ORTC-SIP集群

随着业务的不断扩展与伸延,服务承载的并发也越来越大,而服务对象的特殊性,也要求系统具备较可靠的弹性扩缩容能力。服务高可靠可伸缩,涉及到的信令、sip、媒体、数据库服务均需支持集群及负载均衡。

ORTC内部借助与集群及智能路由已经实现了集群负载及服务的自动伸缩。而sip作为一个有状态的协议,要实现可靠的注册及呼叫上的负载均衡,则需要做不少工作。我们目前采用基于四层网络负载均衡外加内部服务桥接的方案,实现了端侧的均衡注册及业务分发,同时保障了在某台服务挂起时接入的sip终端自动切换至其他服务节点,不影响正常业务,提供了负载均衡能力的同时提高了软件的高可靠性。

9 展望

5G、AI技术的发展进一步推动了音视频技术的演进,并对RTC提出了更高的要求,更低的延时、更高的码率、帧率,给大规模的云上分析提供了可能,也反向拓宽了5G的应用场景,提升了AI的准确率,促进了云端AI的应用。

上图是一种采用视频流测量心率的方法,其原理是基于皮肤中血液的微弱变化从而引发其对可见光吸收强弱的变化,进而利用滤波及离散傅里叶变换计算出心率值。将其与ORTC结合,就可以实现远程会诊的实时心率检测。在工业及特殊行业领域结合5G及AI的应用场景还很多,而ORTC无疑将扮演越来越重要的基础通信角色,逐渐成为缺它不可的基础必备设施。

在目前ORTC+SIP架构基础上,我们可以进一步扩展形成ORTC+N的场景接入能力,融合更多的流媒体协议,聚合更多的媒体应用,使得我们的ORTC真正做到ALL IN ONE的基础通信能力平台。

10 引用

[1] 网络负载均衡

http://cloud.oppoer.me/docsCenter/product1652b497b87d3cd5b22f0cc91

作者简介

Sunny OPPO高级后端工程师

拥有10多年流媒体相关研发经验,先后参与并主导过IPTV、电视聊天软件、基于实时音视频监控的应急指挥调度平台、基于实时视频的多模态微表情研判系统、RTC视频会议等项目的研发。

获取更多精彩内容,请扫码关注[OPPO数智技术]公众号

ORTC与SIP融合通信服务架构相关推荐

  1. RTC 融合通信服务架构与场景应用 | 2021稀土开发者大会音视频专场

    导读: 5G 与 AI 技术推动音视频技术持续演进,RTC 技术在多个行业得到了充分应用,但各行业的业务有着不同的需求,因此就需要构建一套 RTC 融合通信服务系统,为产品的创新提供坚实的基础.本次分 ...

  2. Dialogic融合通信服务平台应用

    Dialogic CSP(基于原 Excel EXS 可编程交换平台的升级)是专业的电信级开放式融合通信服务平台,基于此平台的呼叫中心方案已经在国内三大运营商的现网中的增值业务平台,智能网业务平台有几 ...

  3. 面向未来的陆海空天融合通信网络架构

    [摘  要]为了实现全球化的无缝网络覆盖,陆.海.空.天四位一体化融合通信已成为未来6G通信的发展趋势.对陆海空天一体化通信的网络架构及对应的关键技术进行综合分析与设计,并进行一项平流层通信试验案例分 ...

  4. 融合通信(中移动)----微信的强力竞争者来了----阿冬专栏!!!

    融合通信(中移动)----微信的强力竞争者来了 ----兴趣了解内容 面对微信的垄断地位,三家运营商对于微信等OTT服务的态度有着明显的区别.中国联通是主动合作,2013年8月,中国联通广东公司与微信 ...

  5. 2022-2028年中国融合通信(UC) 行业市场运行格局及战略咨询研究报告

    报告类型:产业研究 报告格式:电子版.纸介版 出品单位:智研咨询-产业信息网 融合通信是指通信技术和信息技术的融合.通信技术类的业务是指传统电信网的各类业务,例如电话业务.短消信业务.会议电话.呼叫中 ...

  6. 网易云信 6 周年|以梦为马,谱写融合通信新篇章

    2021 年 10 月 13 日,网易智企旗下融合通信云服务专家--网易云信,迎来了成立 6 周年的里程碑. 在 6 年的发展历程中,网易云信乘风破浪,拾级而上. 6 年间,网易云信帮助 120 万企 ...

  7. “最佳融合通信创新应用平台”认证!2021 年度全球新经济卓越成就奖揭晓

    近日,由艾媒咨询集团(iiMedia Research)举办的"2021 全球未来科技大会暨年度全球新经济卓越成就奖颁奖典礼"在广州隆重召开. 现场正式揭晓"2021 全 ...

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

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

  9. 网易云信在融合通信场景下的探索和实践之 SIPGateway 服务架构

    本文作者:网易云信技术专家朱振昊.官仕富 1 背景 2020年初始,新冠疫情爆发,整体经济下行,却依然给部分领域带来了巨大的商机,尤其是在实时音视频领域,越来越多的企业选择了 RTC 云端会议的方式进 ...

最新文章

  1. java封装,继承和多态
  2. linux下signal()函数超详细介绍
  3. python英文高频句统计_使用Python 统计高频字数的方法
  4. ssl1341-Asteroids【最大匹配,最小点覆盖,图论】
  5. HTML--HTML对象的关于位置和大小的属性的图解
  6. 阿里云centos 7.6安装mysql_阿里云Centos7上安装MySQL教程
  7. python作用域排序_11道Python常见面试题,80%的人不会
  8. SLAM的一些基础知识
  9. 第一个scrum会议
  10. 盗梦空间http://acm.nyist.net/JudgeOnline/problem.php?pid=125
  11. 泰山游记:所为非风光,为历史尔
  12. 微信小程序模板订阅消息推送
  13. 一个字形容大数据_关于大数据,你应该知道的75个专业术语
  14. 仿真BPSK调制在AWGN信道下分别使用卷积码和未使用卷积码的性能对比,其中,卷积码的约束长度为7,生成多项式为[171,133],码率为1/2,译码分别采用硬判决译码和软判决译码
  15. 电商平台分析平台----需求六:实时统计之黑名单机制
  16. iOS 项目源码大全 github 国内外大神
  17. 百亿互刷宝php 站长,百度排名百亿互刷宝
  18. python网络编程初级总结(1)
  19. 幕课在线办公项目笔记——day2
  20. 【强化学习】《动手学强化学习》马尔可夫决策过程

热门文章

  1. go json字符串转换成结构体,json字符串数组转换成切片
  2. 全国青少年电子信息智能创新大赛(复赛)python·模拟一卷
  3. php 502 bad gateway,解决lnmp服务器环境访问php文件出现502 Bad Gateway错误问题
  4. 论向大佬提问问题的正确方式。
  5. jupyter的一些基础操作
  6. R软件学习笔记—Legend
  7. SystemClock
  8. JAVA类的继承 Teacher和Student
  9. OpenJudge 1.7.13
  10. TCP echo_server(C++)回射服务器实现以及问题记录