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

news2024/11/23 22:16:36

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/570877.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ESLint驼峰命名法规则校验关闭

目录 1、简单介绍ESLint1.1 ESLint是什么1.2 ESLint的好处1.3 ESLint的规范 2、 驼峰校验提示3、解决方案 1、简单介绍ESLint 1.1 ESLint是什么 ESLint 是一个代码检查工具,用来检查你的代码是否符合指定的规范 例如: 的前后必须有一个空格例如: 函数名后面必须…

郑州市元宇宙产业发展实施方案发布,中创助力元宇宙创新建设!

如果说2022年的“元宇宙”赛道,尚是以Meta为首,而今,政府也纷纷参与其中。 数据显示截至目前,国内已有至少30个地区(涉及10个省级行政区)颁布了元宇宙相关的支持性政策或征求意见稿,政策文件名中…

神策「数据闭环解决方案」重磅上线,3 大方向助推业务起飞

在通过数据驱动业务增长的落地实践中,企业大多面临以下困扰: 数据源多且杂乱,该如何从 0 开始积累数据助力业务决策? 如何借助数据的力量,洞察业务关键增长点? 如何提升运营效率?怎样提高用户的…

STM32——关于GPIO讲解及标准库应用(基础篇)

简介: STM32是一系列基于ARM Cortex-M内核的32位微控制器。该系列微控制器广泛应用于计算机、通讯、工业自动化、消费电子、汽车电子、医疗仪器及家庭电器等领域。该系列控制器具有高性能、低功耗、智能化等特点。其中,GPIO就是STM32控制器中的一…

Stack 栈的实现与应用

目录 1. 概念 2. 常用的栈的方法 2.1 方法 2.2 代码 3. 自己实现栈 3.1 构造MyStack 3.2 push() 3.3 ensureCapacity() 3.4 pop() 3.5 peek() 3.6 empty() 3.7 szie() 4. 栈的应用 1. 概念 栈(Stack)是一种数据结构&…

02_stack栈

1. Stack 栈是什么? 栈也叫栈内存,主管Java程序的运行,是在线程创建时创建,它的生命期是跟随线程的生命期,线程结束栈内存也就释放,对于栈来说不存在垃圾回收问题,只要线程一结束该栈就Over&…

LabVIEWCompactRIO 开发指南37 在第三方模拟器中执行

LabVIEWCompactRIO 开发指南37 在第三方模拟器中执行 如果需要验证时序和功能,在将LabVIEW FPGA VI编译到硬件之前,可以与三款第三方仿真器进行交互:MentorGraphicsModelSim(LabVIEW2013及更早版本)、MentorGraphics…

【MySQL】MySQL主从同步延迟原因与解决方案

文章目录 一、MySQL数据库主从同步延迟产生的原因二、关于DDL和DML三、主从延时排查方法四、解决方案3.1 解决从库复制延迟的问题:3.2 MySql数据库从库同步其他问题及解决方案 一、MySQL数据库主从同步延迟产生的原因 MySQL的主从复制都是单线程的操作,…

JS CSS 关于 Shadow dom 的用法

一、什么是 Shadow DOM 你是否好奇过,浏览器自带的元素的样式是如何实现的,例如 video、input ,又或者在某些网站中看到一些非浏览器自带且没见过的元素? 如果你打开 F12 查看定位该元素的信息,你会发现啥都没看到&am…

Spring Cloud Alibaba 完整使用及与各中间件集成

目录 前言 官方中文文档 使用版本 spring 中间件 使用到的组件与功能 环境安装 虚拟机 nexus nacos 集成过程 工程搭建 父工程搭建 子工程 服务集成 nacos 配置文件: 服务注册与发现-discovery 服务注册 启动 服务发现 测试 配置管理-config…

网络安全是一个好专业吗?

前言 网络安全作为一个专业领域,在当今数字时代正变得越发重要和关键。无论是企业还是个人,面对着越来越频繁的网络威胁和攻击,网络安全领域的专业人员扮演着至关重要的角色。那么,从一个资深网安工程师的角度来看,网…

nest context.switchToHttp().getRequest() 获取不到user

把你该死的Public注释掉,这玩意开了后不走JWT验证token,所以拿不到那该死的user。

pdf怎么合并在一起?软件操作更高效

PDF格式已经成为了许多文档和表格的首选格式。然而,当你需要合并多个PDF文件时,可能会遇到一些麻烦,在本篇文章中,我们将向您介绍一种简单易用的方法来合并PDF文件。 以下是可以用来合并PDF文件的软件: - PDF转换器&a…

当你在浏览器中输入 URL 时会发生什么?

下面的图解说明了步骤。 1.Bob 在浏览器中输入 URL 并按下 Enter。在这个例子中,URL 由 4 部分组成: 🔹 协议 - http://. 这告诉浏览器使用 HTTP 发送连接到服务器。 🔹 域名 - example.com. 这是站点的域名。 🔹 路径…

C++STL— priority_queue的使用与模拟实现

priority_queue的使用 priority_queue的介绍 优先级队列默认使用vector作为其底层存储数据的容器,在vector上又使用了堆算法将vector中的元素构造成堆的结构,因此priority_queue就是堆,所有需要用到堆的位置,都可以考虑使用prio…

极米十年巅峰之作极米Z7X,能带走的百吋大屏

近年来,随着人们娱乐消费的升级,家用投影仪消费市场不断扩大,增长速度也非常可观。据IDC最新发布的数据显示,2022年中国投影机市场总出货量505万台,同比增长7.4%。其中,智能投影机市场(搭载有OS…

ChatGPT:免费可用 ChatGPT 网页版(免登录、免注册、不限制使用次数)

一、什么是chatgpt ChatGPT是一种基于GPT-3(Generative Pre-trained Transformer 3)的聊天机器人。GPT-3是由OpenAI公司开发的自然语言处理模型,具有非常强的语言理解和生成能力。 ChatGPT使用了GPT-3的预训练模型,在此基础上进行了微调和优化&#xf…

机器学习:基于Apriori算法对中医病症辩证关联规则分析

系列文章目录 作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒关注…

【Linux】进程间通信的有关基础概念

在以前我们使用多进程时,我们一般都是让父子进程分别执行各自的代码,进程之间几乎没有通信,但是实际过程中,进程间的通信是十分重要的的一件事情,一个复杂的程序一般都是有多个进程相互通信,协调进行来完成…

重磅发布 |《2023年消费品企业数字化转型调研白皮书》

数字经济时代,数字化转型对于消费品企业越来越重要,已成为消费品企业增加经济效益、提升竞争力的重要策略之一。随着数字化转型进入深水区,越来越多涉及到商业模式、业务模式和产业链生态的创新变革开始出现,给消费品企业带来了一…