加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 电子发烧 > 技术文章

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

时间:2012-12-06  来源:123485.com  作者:9stone

摘要  随着VOIP技术的不断发展和成熟,视频会议系统已成为计算机通信技术的重要方面。本文针对支持多协议的视频会议系统的设计和实现,分析了目前在可视通信领域的两大主流协议H.323和SIP的特点和差异,给出了解决H.323和SIP之间的协议转换的网关设计方案。

1  引言
        随着宽带网络的不断发展和普及,人们对视频通讯的需求也越来越大。在视频通讯领域起主导地位的两大协议包括:由ITU-U(International Telecommunications Union – 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.1  H.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.2  SIP协议
       SIP作为多媒体通信的应用层控制(信令)协议,它能够建立、改变和终止多媒体会话。在SIP协议中有两个主要的组成部分:用户代理(UA)和网络服务器。用户代理(UA)又分为发起SIP请求的用户代理客户机(UAC)和响应这种请求的用户代理服务器(UAS)。网络服务器又分为:重定向服务器、代理服务器、注册服务器。
       通常的SIP操作涉及到一个SIP用户代理客户机(UAC)发起一个请求,一个SIP代理服务器作为终端用户的位置发现代理并且一个用户代理服务器(UAS)接受这个呼叫。一个成功的SIP邀请包括两个请求信息:INVITE信息和ACK信息。
      重定向服务器通过回送包含被叫者位置的SIP-URL(SIP Uniform Resource Locations,SIP统一资源定位,如:sip:user@host.domain)来处理INVITE信息。代理服务器则完成SIP请求和响应的应用层路由。注册服务器用于记录用户的SIP-URL地址信息和其对应的IP地址信息。

2.3  H.323协议和SIP协议的简单比较
    H.323协议多采用集中的方式来对视频会议进行管理和控制,而SIP终端则不需要通过集中的控制器就可以加入或者离开会议。两种协议设计的原理和目的以及它们的实现方式上的差异决定了两者在互通过程中存在诸多的协议转换问题。下表是H.323协议和SIP协议在有关于多方会议方面的特性的一个比较:
 

 
H.323协议
SIP协议
编码形式
二进制
文本形式
媒体能力的决定
由MC采用集中的媒体通信模式来决定
会话媒体能力由SIP会话创建者决定
通过H.245协商过程动态的改变
由会话创建者发出SDP消息来更新
H.323会议和SIP会话的映射
唯一的全局会议ID
唯一的全局会话ID
媒体能力描述:H.245
媒体能力描述:SDP消息
成员控制
用RAS协议对会议成员进行控制
通过不准入控制机制来管理会话成员










 

 

 

表1  H.323协议和SIP协议有关于视频会议方面的简单比较

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

 

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

呼叫类型
H.323
呼叫方向
SIP
会议建立
H.225 SETUP(快速连接方式)或H.225 SETUP和H.245 能力集信息(非快速连接方式)
 
 
=>
 
SDP消息
H.225 SETUP
<=
SDP消息
会议邀请
H.225 SETUP(快速连接方式)<创建一个新会议>
 
 
=>
SIP OPTION 消息(请求媒体能力集)和
SIP INVITE消息(包含SDP消息)
H.225 SETUP
<使用一个已有会议>
H.225 SETUP 和H.245 能力集信息(非快速连接方式)
 
 
=>
SIP INVITE消息(没有会话描述)和SIP OK消息(终端的能力集)
H.225 SETUP (MC通过在SDP消息中的媒体能力信息来决定媒体能力类型)
 
 
<=
SIP INVITE 消息(包含SDP消息)
会议加入
H.225 SETUP
=>
H.225 SETUP
<=
SDP消息
表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所示)。
(1) 一个H.323客户终端首先向网守发送ARQ消息进行接入认证
(2) 通过认证后,网守向H.323客户终端回送ACF响应
(3) H.323客户终端向网守发送呼叫建立(SETUP)消息(包含媒体能力信息)
(4) 网守转发呼叫建立消息给视频会议网关
(5) 视频会议网关将呼叫建立信息转换成对应的INVITE请求消息发送到SIP服务器
(6) SIP服务器收到INVITE请求消息后首先对被呼叫的SIP用户代理进行地址定位,然后将INVITE请求消息转发给被呼叫的SIP用户代理
(7) SIP用户代理收到INVITE请求消息后,回送临时响应(Trying)消息,并逐级回送,到达视频会议网关后被转换成呼叫进展(Call Proceeding)消息,最后被回送至主叫H.323客户端(这一步由多个信令过程组成,以减少重复叙述)
(8) SIP用户代理对INVITE请求消息进行处理后,发送振铃响应(Ringing)消息至会议网关处,经会议网关转换后,发送振铃(Alerting)消息,直至主叫H.323客户终端(这一步由多个信令过程组成,以减少重复叙述)
(9) SIP用户代理发送成功响应(OK)消息至SIP服务器
(10) SIP服务器转发成功响应(OK)消息到视频会议网关
(11) 视频会议网关向网守发送连接建立(Connect)消息
(12) 网守转发成功连接建立(Connect)消息到H.323主叫客户端
(13) 视频会议网关发送证实请求(ACK)消息到SIP服务器
(14) SIP服务器转发证实请求(ACK)消息到SIP用户代理

 
图2  H.323客户端(快速连接方式)邀请SIP用户代理的流程

4 视频会议网关的实现
      视频会议网关的内部主要由SIP协议处理模块、协议转换模块、视频会议控制和管理模块以及H.323协议处理模块组成。
      SIP协议处理模块是视频会议网关用于监听SIP实体(SIP用户代理、SIP服务器等)发送的信令消息。在将这些信令消息进行必要的处理后就送到协议转换模块中进行协议转换。
      协议转换模块是视频会议网关实现中比较关键的部分,在实现过程中需要按照两种协议之间的信令消息映射表进行逐一的翻译和转换。当然对于那些在一种协议中有而在另一种协议中不支持的信令消息应采用适当的忽略和屏蔽措施,并回送错误报告消息。转换后的信令消息被送到各自协议的处理模块中进行进一步的处理,也可送入视频会议控制和管理模块来完成对会议极其会议成员的组织、管理和控制。
视频会议控制和管理模块是视频会议网关的核心部分。视频会议控制和管理模块既要对会议成员发来的信令消息进行处理,又要对视频媒体流进行处理。在这部分的实现中要充分考虑两种协议在视频会议功能上的不同特性,加以适当的区别对待,以减少在信令翻译和识别上的工作量。同时在对视频流的处理上采用RTP/RTCP协议,先将各个客户终端的媒体流汇聚在一起,在进行完复合之后再分别传送到每个客户终端那里。
     H.323 协议处理模块是用于监听来自H.323协议方的信令消息。然后将信令消息送入视频会议控制和管理模块或者协议转换模块进行下一步的处理。在实现上需要H.323协议栈的底层支持。
    我们在Red Hat Linux9.0操作系统下,采用C/C++语言实现。其中我们还利用了OpenMCU(开源的H.323会议服务器)中对视频会议管理和控制的一些实现技术。

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

[ 参 考 文 献 ]
[1]  Jiann-Min Ho, Jia-Cheng Hu, Peter Steenkiste.  ”A Conference Gateway Supporting Interoperability Between SIP and H.323” .  Information Networking Institute Carnegie Mellon University Pittsburgh.
[2]  Josef Glasmann, Wolfgang Kellerer, Harald Müller.  “Service Architectures In H.323 And SIP: A Comparison” .  Fourth Quarter 2003, Volume 5, No.2.
[3]  ITU-T Recommendation H.323 v4.
[4]  RFC 3261 . SIP: Session Initiation Protocol, June 2002.
[5]  陈建亚,余 浩等. 软交换与下一代网络. 北京邮电大学出版社.
[6]  李建芳.  H.323和SIP在IP电话网络中的互通. 中国数据通信 2003.3.
[7]  糜正琨, 王文鼐. 软交换技术与协议[M]. 北京:人民邮电出版社, 2002.
[8]  www.openh323.org


 

分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->技术文章
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门