写点什么

技术分享| 融合会议协议大解密

作者:anyRTC开发者
  • 2023-05-26
    上海
  • 本文字数:2711 字

    阅读完需:约 9 分钟

anyRTC 的融合会议解决方案中,支持 H.323 协议、SIP 协议、GB28181 国标协议、私有协议等等,实际在跟客户沟通时,我们常会被问到到底是 SIP 还是 H.323 好?客户前期已经建设了视频会议系统,有 H.323 的、有腾讯会议/Zoom 这种互联网会议的,如何做互通?本文就使用不同协议的系统如何互通,及视频会议领域控制协议的发展、演进趋势做个深入的探讨。


说到视频会议,不得不先说一下 H.323 协议,很多人对于这个协议可能不太熟悉,因为 H.323 诞生于上世纪 90 年代后期,可能比现在的年轻开发者的年龄都要大很多,H.323 协议被设计用于分组交换网络上的多媒体通信,简而言之,是 VoIP 通信协议的鼻祖。标准由 ITU(国际电信联盟)制定,ITU 的文章和标准不像 IETF 的 RFC 那么友好和开放,也不太容易从网上免费获得,而 H.323 的协议过程较之 SIP 要复杂的多,这里我通过和 SIP 的协议过程类比的方式,让大家简单又快速的熟悉他。

一,H.323 介绍

H.323 定义的主要组件有:网守(GK:Gatekeeper)、网关(Gateway)、终端(Terminal)和多点控制单元(Multipoint Control Unit)。终端(Terminal)就相当于 SIP 中的 UA(User Agent),而网守(GK)本质上是一个集成服务,主要功能包括:终端认证、地址解析、带宽管理和路由控制等,就相当于 SIP server,不同的是 SIP 将前述这些功能分配到不同的 SIP Server 来执行:SIP Proxy Server, SIP Redirect Server 和 SIP Registrar(在实际的技术实现上,往往集成在一个网元实体上),而这个 GK 则是兼具了这所有的功能。网关顾名思义就是处理和其他协议的翻译和互通。多点控制单元就我们常说的视频会议中的 MCU,MCU 的称谓来源于 H.323 协议,H.323 在视频会议领域的历史地位可见一斑。


H.323 协议过程


H.323 定义了一组协议族,核心协议是 H.225 和 H.245。让我们来看一个典型的 H.323 呼叫流程吧。



首先是终端和 GK 之间的 H.225 RAS 消息(Registration、Admission、Status),用于终端的向 GK 注册,呼叫接纳控制及状态查询。类似于 SIP 流程中的 UA 向 SIP Proxy 进行 SIP register 和注册刷新,用于终端注册及状态查询,商用实现中 SIP Proxy 通常都会启用的呼叫接纳控制(CAC:Call Admission Control)。


终端完成注册了,呼叫也被 GK 成功接纳了,接着就是 H.225 呼叫控制流程,SETUP 携带主被叫的地址,GK 根据被叫地址信息将呼叫路由至被叫,被叫回送 CONNECT 消息,携带 H.245 控制信道的传输层地址(IP 地址+端口号)。听起来是不是有点像 SIP INVITE 和 200 OK,所不同的是,SIP INVITE/200 OK/ACK 的过程不但完成了呼叫选路,同时通过 message body 中的 SDP 协议完成了媒体能力的协商,而 H.225 的过程只完成了呼叫选路,并建立起 H.245 媒体控制信道,媒体协商的事情交给 H.245 去做。


媒体能力描述。SIP 采用 SDP 协议来对主被叫之间的媒体能力进行描述和协商,而 H.323 则采用 H.245 协议来实现媒体能力的描述和协商。H.245 协议分为三个过程:媒体能力交换、主从确定和建立媒体信道。媒体能力交换(Terminal Capability Set),H.323 终端以数据库表的形式携带其媒体能力和优先级(可选能力集:alternative Capability Set),以及同时处理多种媒体能力的可能的组合(同时能力:Simultaneous Capabilities),例如使用某种视频编解码的时候,允许同时使用的某(几)种音频编解码;主从确定(Master Slave Determination)用于解决呼叫控制信道冲突,尤其在多点视频会议中确定哪个是 MCU;这之后就是建立媒体信道(Open Logical Channel),可以由通信双方逐个建立由本端到对端的单向信道,也可以一次建立双向信道,至此完成媒体通道的建立。听起来是不是有点类似 SIP 协议过程中的 SDP 协商?但是不同于 SDP 的 offer-answer mode,H.323 媒体协商过程要复杂得多,当然功能也更强大,不仅可以协商音视频的能力,而且还可以协商音视频的组合能力,不仅可以建立双向对称信道,还可以建立非对称信道,即发送和接收可以使用不同的编解码。那媒体信道建立之后,就可以开始媒体的交互了,媒体流跑的也是 RTP 流。另外,H.245 中还有两个很有用的命令,分别是 Flow Control 和 Fast Update,用于收端发现丢包后,通知发送端降速和重传指定的媒体报文。

二,H.323 和 SIP 协议对比

SIP(Session Initiation Protocol,会话发起协议)是由 IETF(Interne 工程任务组)提出的 IP 电话信令协议。正像其名字所隐含的那样,SIP 用于发起会话,它能控制多个参与者参加的多媒体会话的建立和终结,并能动态调整和修改会话属性,如会话带宽要求、传输的媒体类型(语音、视频和数据等)、媒体的编解码格式、对组播和单播的支持等,主要应用于互联网。


H.323 标准由 ITU(国际电信联盟)制定,是一个标标准准的通信协议。H.323 协议处处体现出对于传统 PSTN 的继承,例如采用 E.164 号码格式进行寻址。终端侧发送被叫号码,H.323 除了支持整体发码(EnBlock,和 SIP UA 一样,终端侧号码收全了一次性发出去),也可以支持边收边发,这也是典型的传统 PSTN 的特征。



目前为止 H.323 协议仍然是不同厂家间的视频会议系统要做互通的首选协议,因为 H.323 协议定义严谨,异厂家互通性好,可扩展性差,很少有厂家在 H.323 的协议上做扩展,但是除了个别厂家,行业里面都知道,这里就不点名了。


编码方式上,H.323 采用 ASN.1 二进制编码,效率高、消息短,但可读性差;SIP 协议采用纯文本编码,扩展性强,对于开发者和使用者都非常友好。当然你可以说用 Wireshark 这类的抓包软件 H.323 和 SIP 都能够解读,但是如果你是从服务器上直接 TCP Dump 下来的文件,SIP 的文本格式可以直接读,H.323 那就是看天书了。传输层协议方面,H.323 除了 RAS 消息用 UDP 传输,其他 H.225 和 H.245 消息用的是 TCP,SIP 协议可以选用 UDP 或 TCP。


关于媒体协商的能力,H.323 的确比 SIP 强大和完善。主要是因为当年视频终端的 CPU、GPU 的计算能力不如现今强大,而高性能的编解码又带来更多的终端 CPU 资源消耗,通讯双方若使用不同配置的视频终端,音视频编解码的能力相差很大,媒体协商过程非常关键,H.245 协议提供的完善的媒体协商能力在当时是非常有意义的。而现今随着芯片的计算能力指数级的跃进,哪怕是最入门级的视频终端对于现今主流的音视频编解码都能够支持,媒体协商也变得简单多了。

三,总结

事物总是向着融合的方向发展,H.323 为了简化协议过程,进而缩短呼叫接续的复杂度和时延,H.323 引入了快速协议机制(fast start),将呼叫控制的过程和媒体信道建立的过程融合在一起,就像 SIP INVITE 和 200 OK 中同时携带 SDP 完成媒体协商及建立媒体信道一样。而 SIP 写的可扩展性让他在通信的各个领域都大显身手,国标 GB.28181 就是基于 SIP 协议建立的一套监控协议,而我们常用的 FaceTime、VoLTE 等视频聊天软件,也是基于 SIP 协议开发的。所以融合会议的未来一定是基于标准通信协议建立的一套完备的视频通信解决方案。



发布于: 2023-05-26阅读数: 25
用户头像

实时交互,万物互联! 2020-08-10 加入

实时交互,万物互联,全球实时互动云服务商领跑者!

评论

发布
暂无评论
技术分享| 融合会议协议大解密_音视频_anyRTC开发者_InfoQ写作社区