科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道路由交换基于H.323和SIP协议的视频会议网关设计

基于H.323和SIP协议的视频会议网关设计

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文针对支持多协议的视频会议系统的设计和实现,分析了目前在可视通信领域的两大主流协议H.323和SIP的特点和差异,给出了解决H.323和SIP之间的协议转换的网关设计方案。

作者:Vlan9.com 来源:Vlan9.com 2008年5月7日

关键字: SIP sip协议

  • 评论
  • 分享微博
  • 分享邮件

1  引言

随着宽带网络的不断发展和普及,人们对视频通讯的需求也越来越大。在视频通讯领域起主导地位的两大协议包括:由ITU-U(InternationalTelecommunicationsUnion– Telecommunication Standardization Sector,国际电信联盟电信标准部)推荐的H.323协议和由IETF(Internet Engineering Task Force, 因特网工程任务组)推荐的SIP协议(Session Initiation Protocol, 会话发起协议),由于这两个协议产生的时代背景、现有的发展状况和协议本身的特点等诸多不同的特性,决定了它们将会在视频通讯领域中长期的并存,形成相互竞争,相互补充的格局。

因此,在可视通讯当中一项重要的工作就是要解决H.323和SIP之间的协议转换,即采用这两种协议的可视终端和设备的互连互通的问题。而视频会议系统是可视通讯中的重要应用,在设计视频会议系统时,采用网关设计实现不同网络之间的集成。H.323协议族中采用多点控制单元(MCU)来控制和管理会议系统,它由多点控制器(MC)和多点处理器(MP)组成,并运用集中、分散和混合三种不同的方法来实现会议的多点控制和管理。而在SIP协议中,则通过会话通告协议(SAP)和会话描述协议(SDP)来建立多方会议。两者在机制上存在一定的差别,所以要实现互通就需要视频会议网关的支持。

2  H.323协议和SIP协议的特性分析

2.1H.323协议

H.323协议的主体已日渐稳定,并且它的基本框架已被广泛的采用,它定义了四种基本功能单元:用户终端、网关(Gateway)、网守(Gatekeeper)和多点控制单元(MCU)。用户终端能和其它的H.323实体进行实时的、双向的语音和视频通信,它能够实现以下的功能:

(1)信令和控制:支持H.245协议,能够实现通道建立和能力协商;支持Q.931协议,能够实现呼叫信令通道;支持RAS协议,能够实现与网守的通信;

(2)实时通信:支持RTP/RTCP协议;

(3)编解码:支持各种主流音频和视频的编解码功能。

网关提供了一种电路交换网络(SCN)和包交换网络的连接途径,它在不同的网络上完成呼叫的建立和控制功能。

网守向H.323终端提供呼叫控制服务,完成以下的功能:地址翻译,许可接入会议的控制和管理,带宽控制和管理,呼出管理,域管理等。

多点控制单元(MCU)完成会议的控制和管理功能,它由多点控制器(MC)和多点处理器(MP)组成。多点控制器提供多点会议的控制功能,在多点会议中,多点控制器和每个H.323终端建立一条H.245控制连接来协商媒体通信类型;多点处理器则提供媒体切换和混合功能。H.323支持集中和分散的多点控制和管理工作方式。在集中工作方式中,多点处理器(MP)和会议中的每个H.323终端建立媒体通道,把接收到的音频流和视频流进行统一的处理,然后再送回到各个终端。而在分散工作方式中,每个终端都要支持多点处理的功能,并能够实现媒体流的多点传送。

2.2SIP协议

SIP作为多媒体通信的应用层控制(信令)协议,它能够建立、改变和终止多媒体会话。在SIP协议中有两个主要的组成部分:用户代理(UA)和网络服务器。用户代理(UA)又分为发起SIP请求的用户代理客户机(UAC)和响应这种请求的用户代理服务器(UAS)。网络服务器又分为:重定向服务器、代理服务器、注册服务器。

通常的SIP操作涉及到一个SIP用户代理客户机(UAC)发起一个请求,一个SIP代理服务器作为终端用户的位置发现代理并且一个用户代理服务器(UAS)接受这个呼叫。一个成功的SIP邀请包括两个请求信息:INVITE信息和ACK信息。

重定向服务器通过回送包含被叫者位置的SIP-URL(SIPUniformResourceLocations,SIP统一资源定位,如:sip:user@host.domain)来处理INVITE信息。代理服务器则完成SIP请求和响应的应用层路由。注册服务器用于记录用户的SIP-URL地址信息和其对应的IP地址信息。

3  视频会议网关的设计

作为视频会议网关,它需要同时支持H.323和SIP两种协议。在H.323协议一方,它充当着多点控制器(MC)的作用;而在SIP协议一方,它发挥着会议服务器的职能。在视频会议网关的内部完成了一种信令消息到另一种信令消息的翻译和转换,并对等的完成两者之间在功能上的映射。但是,在H.323协议和SIP协议当中,一些功能只在一种协议中被提供,而在另一种协议中则不能支持;在一种协议中的一个处理过程可能会映射到另一种协议的几个处理过程,这些都是视频网关需要解决的问题。下面就视频会议网关设计中的几个关键技术问题进行介绍。

基于H.323和SIP协议的视频会议网关设计(图一)

图1  视频会议网关的组网图

3.1信令消息映射

信令消息映射和转换是视频会议网关的关键技术之一。消息映射一般包括两个方面:一是消息编码的转换,如二进制编码方式和文本方式的转换;二是消息中语义规则的映射,如在SIP方的终端发出INVITE请求消息到网关后,则网关在H.323方产生呼叫建立(Setup)或者接入请求(ARQ)消息。H.323协议族包括呼叫建立、呼叫控制、媒体通道控制等许多分散的协议和处理过程来完成多媒体的通信。而在SIP协议中并没有进行严格的分类处理。所以在消息的映射和转换过程中,可能存在一个SIP信令消息对应着在H.323方的几个信令消息过程。表2展现了H.323协议和SIP协议在实现视频会议的建立、邀请和加入过程中信令消息的映射和转换。

3.2媒体能力协商

在H.323协议中采用H.245协议来完成媒体能力的协商过程。在会议中,多点控制器(MC)通过汇总由各个终端提交的媒体能力信息,并从中选择最为通用的媒体类型作为这个会议中每个成员通信的媒体能力集。在SIP中则采用会话描述协议(SDP,它是SIP消息体的一部分)来实现媒体能力的协商过程。因此,如果是H.323客户终端发起会议,视频会议网关必须依据在H.245消息中包含的客户终端的媒体能力信息,并由会议网关内部的多点控制器(MC)来决定会议的媒体类型,再将这些媒体能力信息封装到SDP消息中,发给SIP客户终端。如果是SIP客户终端先发出邀请时,会议网关使用SDP消息中包含有关客户终端能力的信息来决定会议的媒体能力类型。

3.3视频会议的管理和控制

在视频会议网关中集成了协议转换器和视频会议控制器和管理器的功能,在H.323客户终端发起一个会议请求之前,必须注册到网关守卫。发起请求时,H.323客户终端先将消息发送给网守,再由网守将消息转发到会议网关,最后通过视频会议网关的会议控制和管理器来统一处理客户终端发出的会议请求,并且决定接受或是拒绝一个客户终端的请求,也决定了整个会议的媒体类型等信息。在SIP方,SIP客户终端先要注册到服务器上。当客户终端发出请求的时候,先将消息发送到服务器,在由服务器转发到会议网关。在会议网关的内部,先将收到的消息通过信令消息映射原则,转换成对应的符合H.323规则的信令机制,然后送入会议控制和管理器进行集中的处理。

3.4视频会议流程简介

为了更好的说明视频会议网关在跨协议会议系统中的作用和工作流程,我们以一个由H.323客户终端发起的会议请求为例来描述视频会议网关对两种协议信令消息的处理过程(如图2所示)。

基于H.323和SIP协议的视频会议网关设计(图二)

图2  H.323客户端邀请SIP用户代理的流程

4  视频会议网关的实现

视频会议网关的内部主要由SIP协议处理模块、协议转换模块、视频会议控制和管理模块以及H.323协议处理模块组成。

SIP协议处理模块是视频会议网关用于监听SIP实体(SIP用户代理、SIP服务器等)发送的信令消息。在将这些信令消息进行必要的处理后就送到协议转换模块中进行协议转换。

协议转换模块是视频会议网关实现中比较关键的部分,在实现过程中需要按照两种协议之间的信令消息映射表进行逐一的翻译和转换。当然对于那些在一种协议中有而在另一种协议中不支持的信令消息应采用适当的忽略和屏蔽措施,并回送错误报告消息。转换后的信令消息被送到各自协议的处理模块中进行进一步的处理,也可送入视频会议控制和管理模块来完成对会议极其会议成员的组织、管理和控制。

视频会议控制和管理模块是视频会议网关的核心部分。视频会议控制和管理模块既要对会议成员发来的信令消息进行处理,又要对视频媒体流进行处理。在这部分的实现中要充分考虑两种协议在视频会议功能上的不同特性,加以适当的区别对待,以减少在信令翻译和识别上的工作量。同时在对视频流的处理上采用RTP/RTCP协议,先将各个客户终端的媒体流汇聚在一起,在进行完复合之后再分别传送到每个客户终端那里。

H.323协议处理模块是用于监听来自H.323协议方的信令消息。然后将信令消息送入视频会议控制和管理模块或者协议转换模块进行下一步的处理。在实现上需要H.323协议栈的底层支持。

我们在RedHatLinux9.0操作系统下,采用C/C++语言实现。其中我们还利用了OpenMCU(开源的H.323会议服务器)中对视频会议管理和控制的一些实现技术。

5  总结

本文对支持多协议的视频会议网关的设计和实现作了简单的介绍。从中我们发现视频会议网关对协议的转换还只能实现一些简单的信令消息的翻译,没有较好的容错和忽略机制。当然,要设计和实现功能更加完善和高效的视频会议网关还需要在加强对会议管理和会议控制功能等方面作进一步的研究和开发工作。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章