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协议开发的。所以融合会议的未来一定是基于标准通信协议建立的一套完备的视频通信解决方案。