时间:2023-02-09 15:28:21
序论:好文章的创作是一个不断探索和完善的过程,我们为您推荐十篇sip协议范例,希望它们能助您一臂之力,提升您的阅读品质,带来更深刻的阅读感受。
中图分类号:TN915文献标识码:A
文章编号:1004-373X(2009)05-072-03
Analysis and Research of sip Protocol and Its Security
BAI Yunjie,MU Weixin,LIU Runjie,SHEN Jinyuan
(Information Engineering College,Zhengzhou University,Zhengzhou,450001,China)
Abstract:Session Initial Protocol(SIP)is currently replacing H.323 to be the promising signaling protocol for VoIP network.In this paper,the function,structure and work flow of SIP protocol are reviewed.Then the security problems faced by SIP,the security mechanisms of SIP,such as IPSec,TLS,HTTP-Digest,S/MIME and so on are analysed and introduced,the virtues and shortcomings of all kinds of security mechanisms are pointed out by comparasion.At last,a conclusion of SIP security and security improvement direction for the future research work is given.
Keywords:session initial protocol;security;HTTP-Digest;secure/multi-purpose Interned mail extesion protocol
0 引 言
SIP(Session Initial Protocol)是一种应用层协议,采用Client/Sever结构的消息机制,分布式控制模式,呼叫建立过程简单。使用SIP作为VoIP(Voice over IP)网络的核心信令控制协议,已成为未来发展趋势。
SIP的设计充分考虑了协议的易用性和灵活性,却在安全性方面存在缺陷。本文分析了基于
SIP网络的安全问题,并提出改进措施。
1 SIP介绍及其安全威胁
1.1 SIP简介
SIP是由IETF (Internet Engineering Task Force)的MMUSIC(Multiparty Multimedia Session Control)工作组于1999年提出的应用层控制协议[1]。SIP用来创建、修改和终结两个或多个参与者参加的会话。参与会话的成员可以通过组播方式、单播联网或者两者结合的形式进行通信。
SIP实体主要由四部分组成[2]:用户(User Agent,UA)、服务器 (Proxy Sever)、 重定向服务器 (Redirect Sever) 和注册服务器(Register)。
有两种类型SIP消息:请求消息和响应消息。请求消息包含一个请求行、几个消息头(header)、一个空行和一个消息体。如:INVITE SIP:bob@biloxi.eomSIP/2.0。响应消息包含状态行、消息头、空行和消息体。状态行的格式为:版本号、状态码和原因短语,如:SlP/2.0 180 Ringing[3]。图1是SIP的会话建立流程。
1.2 SIP安全问题
SIP协议采用文本形式表示消息的词法和语法,易于实现,但也因此使得SIP容易被攻击者加以模仿、篡改,加以非法利用。另外SIP用户广泛分布于IP网络上,所有影响数据网络的攻击都可能会影响到SIP的安全。具体来说,SIP的安全隐患有以下几方面:
(1) 注册攻击(Registration Hijacking)
SIP允许第三方代表用户注册联系信息,这就使攻击者恶意注册成为可能。攻击者为一个URI的所有Contact地址,这样所有到用户的呼叫就全部被转向攻击者的设备。
(2) 伪装服务器(Impersonating a Sever)
呼叫请求的目的域是在Request-URI中指定的。UA直接向域中的服务器发出呼叫请求,这就给攻击者机会来伪装成SIP服务器。
(3) 篡改消息体(Tampering with Message Bodies)
SIP的UA通过信任的Proxy来呼叫路由,UA通过SIP消息体来传送体来传送媒体会话加密的密钥时,恶意的Proxy就可以改动消息体,或者作为中间人,或者直接改写会话加密的安全特性。攻击者可以改动消息的SDP部分,将RTP媒体流指向分线设备,对通信进行搭线窃听。
(4) 终止会话(Tearing Down Sessions)
当会话建立以后,通过发送消息可以修改通话状态。例如会话被第三方截获,获得To,From内容,然后在消息中插入BYE请求,用户的正常会话就终止。
(5) 拒绝服务(Denial of Service,DoS)
DoS是指特定的网络接口发送大量的信息而使系统破坏或暂时不可用。攻击者要想攻击网络中的某台主机,可以通过伪造一条看似来自这台主机的SIP消息,然后将这条消息发往大量的SIP服务器,通过SIP服务器,向要攻击的目的主机发送大量的SIP应答消息,从而使目的主机遭受拒绝服务攻击。
2 SIP安全策略
防止攻击的最好方法是保证信息的私密性和完整性,防止重放攻击和信息欺骗,提供会话的验证和信息保密,防止拒绝服务攻击。理论上,信息的完全加密可以为信令的机密性提供最好的保护,但SIP请求和响应不能在端到端的用户之间完全加密,因为消息头域(如Request-URI和Via)对服务器来说必须是可见的,同时Proxy需要修改消息的某些参数(如增加Via头域值)。
SIP协议支持两种加密方式。第一种是端到端(End to End)加密,针对一些不需要中间服务器处理且包含用户信息的SIP消息头和消息体可以进行端到端的加密。另一种方法是逐跳(Hop by Hop)加密。这种加密方式可以通过SIP外部的安全机制来实现。
2.1 网络层IPSec协议
IPSec(Internet Protocol Security,Internet协议安全)是一种逐跳加密机制[4],IPSec安全协议工作在网络层,运行在它上面的所有网络通道都是加密的。IPSec为信息加密和鉴定提供许多选项,如访问控制,数据源认证和抗重播等。它可以创建安全隧道来通过不信任的网络,从虚拟专用网VPN中进行连接。一个加密的VPN隧道使得通信数据只能被通信双方理解,因此可以有效的防止窃听和其他攻击。图2为IPSec体系结构。
IPSec的缺点是网络实施复杂,实现代价较高,而且存在扩展性的问题,对于遍布在公网上的SIP终端来说建立IPSec通道是不现实的。
2.2 传输层TLS协议
TLS(Transport Layer Security,传输层安全)提供的是面向连接的传输层安全服务[5]。它是另一种逐跳加密机制。该协议分为两层:TLS握手协议和TLS记录协议。前者用于协商安全机制,后者具体执行该安全机制。
TLS的工作流程如图3所示。在SIP网络中应用TLS可以为需要逐条之间安全通信的主机提供安全服务,保证会话的安全。它也为SIP实体提供对临近服务器的鉴别服务。TLS的优点是高层协议可以透明地建立在TLS协议层之上,而且不依赖于低层的传输协议,可以建立在任何能够提供可靠连接的协议之上。其缺点是必须运行在TCP之上,对于通常运行在UDP之上的SIP服务器,同时维持大量的TLS连接会负荷较重。
2.3 PGP加密签名
PGP(Pretty Good Privacy)是一种端到端的加密签名算法[6]。SIP消息体和部分信息头可以通过PGP进行加密。PGP加密系统使用一对数学上相关的密钥,其中一个(公钥)用来加密信息,另一个(私钥)用来解密信息。PGP采用的传统加密技术部分所使用的密钥称为“会话密钥”(SEK)。每次使用时,PGP都随机产生一个128 b的IDEA会话密钥,用来加密报文。PGP的主要步骤如图4所示。
PGP的缺点是加密机制实现较为复杂,缺少有效的密钥分发和管理机制。
2.4 S/MIME
S/MIME(Secure/Multipurpose Internet Mail Extensions,安全/多用途Internet邮件扩展)[7]协议的一般功能和PGP相似,它提供电子邮件消息的数字签名和加密功能。
SIP消息可以携带MIME消息内容,也采用S/MIME安全机制为MIME消息内容提供安全保护。采用S/MIME可以为端到端的SIP消息内容提供机密性和完整。当UAS接到含有S/MIME的请求时,首先对其数字签名进行验证,验证通过后将X.509签名证书加入本地公钥圈进行保存。图5为S/MIME在SIP中的基本流程。
S/MIME的一个缺陷是缺乏有效的公钥基础设施,另一个缺陷是使用Tunneling SIP 时将产生非常长的消息,此时虽然可以采用TCP 作为传输层协议,但是从网络的利用率来讲,还是不理想。
2.5 HTTP-Digest摘要认证
HTTP摘要认证[8]是SIP协议的基本认证方式,它基于一种挑战/响应(challenge/response)模式,为SIP实体提供身份认证。在SIP网络中,HTTP摘要认证方式可以被用于用户到用户(User-to-User)的认证和服务器到用户(Proxy-to-User)的认证。图6是SIP注册用户鉴权过程。用户到用户的认证是指UAS、注册服务器或重定向服务器对于UAC的认证,使用401响应状态码,服务器到用户的认证是指服务器对于UAC的认证,使用407响应状态码。
目前,HTTP摘要认证仅能实现Server对本域内
UA的认证,无法实现UA对Server的认证、Proxy对
Proxy的认证和Proxy对域外UA的认证。
3 结 语
随着多媒体会议,VoIP,IMS等领域采用SIP协议为核心层信令控制协议,SIP成为一个应用广
泛、逐渐走向成熟的协议。
SIP协议虽然有开放、简易、可扩充等优点,但其自身并没有制定相应安全策略,现有的安全机制还有不完善的地方。许多人正在研究新的方法来提高SIP安全,例如在S/MIME的框架下,采用SigComp[9,10] (信号压缩)技术,选择合适的压缩算法(如基于字典模型的LZW或LZSS)压缩SIP/SDP消息体,然后有选择地加密部分消息体,这样可以提高SIP消息传输的有效性和安全性。这也是作者下一步的研究方向。
参考文献
[1]IETF.RFC 3261.SIP:Session Initiation Protocol.2002.
[2]白建军,彭晖.SIP揭秘[M].北京:人民邮电出版社,2003.
[3]司端锋,韩心慧,龙勤,等.SIP标准中的核心技术与研究进展[J].软件学报,2005,16(2):239-250.
[4]Kent S,Atkinson R.Security Architecture for the Internet Protolol.RFC2401.1999.
[5]Dierks T,Allen C.TLS Protocol Version.RFC 2246, 1999.
[6]Zimmermann PR.The Official PGP User′s Guide.MIT Press,1995.
[7]Ramsdell B.S/MIME Version 3 Message Specification.RFC 2633,1999.
[8]Franks J,Hallam-Baker P,Hostetler J,et al.HTTP Authentication:Basic and Digest Access Authentication.Request for Comments 2617.Internet Engineering Task Force,1999:94-112.
[9]IETF.Signaling Compression (SigComp).RFC 3220,2003.
[10]IETF.The Session Initiation Protocol(SIP) and Session Description Protocol(SDP) Static Dictionary for Signaling Compression(SigComp).RFC 3485,2003.
作者简介 白芸洁 女,1981年出生,河南郑州人,硕士研究生。主要研究领域为下一代网络、信息安全。
中图分类号:TP302.1 文献标识码:A 文章编号:1007-9416(2013)02-0051-01
当今社会是信息爆炸的社会,随着网络业务的飞速发展,电信网中的数据业务量越来越大。而目前许多的数据业务还在传统的公众交换电话网(PSTN)上传送,这些数据量很大的数据业务给并不适合传送数据业务的电话网造成了巨大的压力。因此,基于分组技术的数据网与电路交换网最终必将走向融合,产生下一代由业务驱动的网络即下一代网络。软交换是下一代网络交换的核心,如果说传统电信网络是基于程控交换机的网络,而下一代网络则是基于软交换的网络。
1 软交换
软交换的概念最早起源于美国。当时在企业网络环境下,用户采用基于以太网的电话,通过一套基于PC服务器的呼叫控制软件(Call Manager、Call Server),实现PBX(Private Branch eXchange,用户级交换机)功能(IP PBX)。对于这样一套设备,系统不需单独铺设网络,而只通过与局域网共享就可实现管理与维护的统一,综合成本远低于传统的PBX。由于企业网环境对设备的可靠性、计费和管理要求不高,主要用于满足通信需求,设备门槛低,许多设备商都可提供此类解决方案,因此IP PBX应用获得了巨大成功。受到IP PBX成功的启发,为了提高网络综合运营效益,网络的发展更加趋于合理、开放,更好的服务于用户。业界提出了这样一种思想:将传统的交换设备部件化,分为呼叫控制与媒体处理,二者之间采用标准协议(MGCP、H248)且主要使用纯软件进行处理,于是,Soft Switch(软交换)技术应运而生。软交换概念一经提出,很快便得到了业界的广泛认同和重视,ISC(International Soft Switch Consortium)的成立更加快了软交换技术的发展步伐,软交换相关标准和协议得到了IETF、ITU-T等国际标准化组织的重视。
2 SIP协议介绍
会话初始化协议SIP(Session Initiation Protocol)是一个面向Internet 会议和电话的简单信令协议。SIP协议是应用层信令协议,定义了用户间交互式媒体会话的发起,修改和终止过程,它的主要目的是为了解决IP网中的信令控制,以及同软交换机的通信,从而构成新一代的通信平台。SIP协议最早由是由MMUSIC IETF工作组在1995年研究的,由IETF组织在1999年提议成为的一个标准。 SIP主要借鉴了Web网的HTTP和SMTP两个协议。目前仍在不断的发展之中。
SIP协议可用于发起会话,也可以用于邀请成员加入已经用其它方式建立的会话,同时SIP协议的编码采用的是最基本的文本编码,使得它的通用性和保密性得到了很大的提升。同时SIP协议在信息交互时采用事务机制,每一个请求触发Server的操作方法,请求和响应构成一个事务,事务间彼此独立。在传输方面SIP协议承载在IP网,网络层协议为IP,传输层协议可用TCP或UDP,推荐首选UDP。
用SIP来建立通讯通常需要有六个步骤(如图1所示):
(1)登记,发起和定位用户;
(2)进行媒体协商--通常采用SDP方式来携带媒体参数;
(3)由被叫方来决定是否接纳该呼叫;
(4)呼叫媒体流建立并交互;
(5)呼叫更改或处理;
(6)呼叫终止。
这六个步骤需要会话发起者A与服务器,服务器与会话接受者B之间进行11次会话协商,分别为:
(1)用户摘机发起一路呼叫,终端A向该区域的服务器发起lnvitc请求;
(2)服务器通过认证/计费中心确认用户认证已通过后,检查请求消息中的Via头域中是否已包含其地址。若已包含,说明发生环回,返回指示错误的应答;如果没有问题,服务器在请求消息的Via头域插入自身地址,并向lnvitc消息的To域所指示的被叫终端B转送lnvitc请求;
(3)服务器向终端A送呼叫处理中的应答消息,100Trying;
(4)终端B向服务器送呼叫处理中的应答消息,100Trying;
(5)终端B指示被叫用户振铃,用户振铃后,向服务器发送180Ringing振铃信息;
(6)服务器向终端A转发被叫用户振铃信息;
(7)被叫用户摘机,终端B向服务器返回表示连接成功的应答(2000K);
(8)服务器向终端A转发该成功指示(2000K);
(9)终端A收到消息后,向服务器发ACK消息进行确认;
(10)服务器将ACK确认消息转发给终端B;
(11)主被叫用户之间建立通信连接,开始通话。
3 结语
SIP协议在软交换网络中的应用范围非常广泛。但是现在SIP对许多传统业务的支持能力还是有限,所以对SIP协议的研究也是任重而道远。由于SIP易于扩展的特性,不同厂家的实现难免有许多自己的发挥,也加大了SIP协议互通的难度。但是无论如何,SIP的诸多优点还是有目共睹的,SIP在软交换网络中的应用必然越来越广泛。
中图分类号:TN915.04 文献标识码:A文章编号:1007-9599 (2011) 09-0000-01
SIP Protocol and Application Analysis in The IMS
Zheng Zhijun
(China Tietong Telecommunications Corporation,Hengshui Branch,Hengshui053000,China)
Abstract:IMS is a 3GPP Release 5 version of the proposed support for IP Multimedia Subsystem services,SIP is an application layer control protocol for creating,modifying and terminating one or many of the multimedia sessions,SIP is the basic control of IMS agreement.This paper briefly describes IMS and SIP protocol,SIP protocol and then introduce the basic IMS applications and extended application.
Keywords:SIP;IMS;Application
一、SIP介绍
SIP(Session Initiation Protocol)是一个会话层的信令控制协议,它独立于底层协议,用于建立、修改和终止IP网上的双方或多方的多媒体会话。1999年由IETF组织提出,它是一个在基于IP网络中,实现实时通信应用的一种协议。SIP支持、重定向、登记定位用户等功能,支持用户移动,与RTP/RTCP、SDP、RTSP、DNS等协议配合,可支持和应用于语音、视频、数据等多媒体业务,同时可以应用于presence(呈现)、instant message(即时消息)等特色业务。它的应用非常灵活。
SIP有下面五个基本功能:
(一)确定用户位置:确定被叫SIP用户所在的位置。SIP的最强大之处就是用户定位功能,它可以利用SIP终端在注册服务器上的注册信息实现用户定位,也可以利用其他定位服务器,如DNS、LDAP等提供的定位服务来增强其定位功能。
(二)确定用户可用性:确定被叫会话终端是否可以参加此会话。SIP支持多种地址描述和寻址方式,包括SIP-URI、Tel-URL和SIPS-URI。这样,SIP主叫根据被叫地址,就可以识别出被叫是否在传统电话网上,然后通过一个与传统电话网相连的网关向被叫发起并建立呼叫。
(三)确定用户能力:确定被叫终端可用于参加会话的媒体类型及媒体参数。SIP终端在消息交互过程中携带自身的媒体类型和媒体参数,这使得会话双方都可以明确对方的会话能力。
(四)建立会话:建立主被叫双方的会话。SIP会话双方通过协商媒体类型和媒体参数,最终选择双方都具有的能力建立起会话。
(五)管理会话:可以更改会话参数或中止会话。SIP本身已经从最初致力于P2P通信发展成为了下一代网络(NGN)综合协议体系的核心。
二、IMS系统
IMS(IP Multimedia Subsystem)是IP多媒体子系统,本质上说是一种网络结构。核心思想是在3G核心网中支持多媒体会话及其他基于SIP协议的业务,目的将蜂窝移动通信和互联网技术结合起来,能提供综合业务的下一代通信网络,它独立于接入和承载技术,即IMS的核心特点是采用SIP协议和与接入的无关性。
三、SIP协议在IMS中的应用
IMS的主要功能实体包括呼叫/会话功能实体(CSCF)、原籍用户服务器(HSS)、媒体网关控制实体(MGCF)和媒体网关(MGW)等。其中最重要的实体是CSCF和HSS。CSCF主要负责对多媒体会话进行处理,其功能包括多媒体会话控制、地址翻译以及对业务协商进行服务转换等,相当于SIP服务器。CSCF分为CSCF(P-CSCF)、查询CSCF(I-CSCF)和服务CSCF(S-CSCF)。P-CSCF是IMS系统中用户的第一个接触点,所有的SIP信令都必须通过P-CSCF。I-CSCF提供到归属网络的入口,将归属网络的拓扑隐藏起来,并可通过归属用户服务器HSS灵活选择S-CSCF,并将SIP信令路由到S-CSCF。S-CSCF是IMS的核心,它位于归属网络,提供UE会话控制和注册服务。在SIP会话中他是SIP的服务器。HSS类似于现在移动网络的HLR,它是IMS中所有与用户和服务相关的数据的主要存储器。存储在HSS中的数据主要包括用户身份、注册信息、接入参数和服务触发信息等。
SIP信令消息从移动用户发起,经UMTS(通用移动通信系统)陆地无线接入网络进入核心网,通过SGSN(GPRS服务支持节点)和GGSN(GPRS网关支持节点)到达CSCF,经过处理后送往其他IMS网络、MGCF/MGW网络或外部IP网络。在此过程中,SGSN和GGSN仅查看消息的目的IP地址,不分析消息的内容,起到路由器的作用。
当3GPP RS在规划IMS时,由于SIP的灵活性和可扩展性,决定采用SIP机制作为IMS网络的会话初始化协议。3G网络被分为3个不同的域:电路交换域、分组交换域和IP多媒体交换域。其中IP多媒体子系统域是3G中最重要的域,这个域采用SIP作为主要的信令协议向用户提供基于因特网的多媒体服务。从逻辑上讲,所有的3G终端都包含一个SIP用户,IP多媒体网络节点就是SIP规范中所提到的。
中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)14-3249-02
SIP Protocol Design Based on Integrated Access Device
JIANG Guo-song
(Huanggang Normal University,Huanggang 438000, China)
Abstract: IAD SIP module is part of the upper layer application software system to coordinate, control board SIP protocol stack and hardware between the work and information exchange process. In this paper, functional requirements IAD integrated access devices designed to SIP protocol module structure, and integrated access devices and software based on the exchange interaction between the media gateway controller, developed a way of processing interface and interfaces to achieve a comprehensive Access device and the seamless connection between the MGC.
Key words: soft switch; IAD; SIP; UA
随着三网合一的发展,基于TDM的PSTN话音网必将和分组交换数据网融合,形成可以传递话音和数据等综合业务的新一代网络。如何灵活,有效地实现现有的PSTN网与分组交换网的互通,将PSTN逐步的向IP网络演进,其很重要的一点就是如何接入,即如何将PSTN信号转化为能在IP网络上传送的信号。由于软交换是多种功能实体的的集合,是下一代电信网中语音/数据/视频业务呼叫、控制、业务提供的核心设备,也是目前电路交换网向分组网演进的主要设备之一。
1 SIP协议模型
IAD设备可以建立、修改和释放多媒体会话,这些会话包括基本的电话呼叫、多媒体会议等。作为一个终端接入设备,IAD可以检测到来自硬件板卡的交互信息,如设置物理端口的参数,打开、关闭一个物理端口,设置RTP会话的参数,打开、关闭一个RTP会话,在物理端口上发信号(如振铃音),播放语音(可选功能),在物理端口上检测事件(如DTMF),设置编码方案,接收RTCP报告。IAD收到硬件板卡的交互信息后,控制SIP协议栈建立、修改和释放呼叫,并接收对端IAD设备发送过来的呼叫指示信息。作为支持SIP协议的IAD设备,既可以作为主叫发起呼叫,也可以作为被叫接受呼叫。因此,SIP IAD的UA既具有UAC的功能,也应具有UAS的功能。
分层次模型:采用层次化的组织方法,每一层向其上层提供服务,并利用下层的服务。在一些分层系统中,内部层次全部被隐藏起来,只有外部层次和一部分精心选择的功能可以被系统外部所见。在这种系统中,软件部分是实现在层次结构中的一些虚拟机,连接是层次与层次之间交互的协议。其主要优点是它支持基于抽象程度递增的系统设计,使得设计者可以把一个复杂系统按递增的步骤分解开;细节屏蔽,每层对其上层而言,都是一个比其下层更适用、更高效的虚拟存在。这使得其实现和调试可按层组织、功能扩展也很方便,适用于多人分工、协作开发;支持功能增强,功能的改变最多影响相邻的上下层;支持软件复用。但是,并不是每个系统都可以很容易地划分为分层次模型,甚至即使一个系统地逻辑结构是层次化地,出于对系统性能地考虑,不得不把一些低级或高级地功能耦合起来。另外,很难找到一个合适地、正确地层次抽象方法。分层次模型最广泛应用于分层通信协议。
客户/服务器模型:将软件对资源的使用分成需者(客户)和供者(服务器)两个部分。服务器代表一个进程,它对其他的进程(客户机)提供服务,它接收客户的请求消息,然后发送响应消息给客户机。客户/服务器模型的特点是各系统构成部件小且自含,实现单一、可靠。另外,由于服务器可运行在各种地方,使该结构有很好的硬件结构适应能力,特别适合于多处理系统的分散处理。客户/服务器模型用于人机界面与系统的关系和资源管理。
2 设计思想
从软件工程的角度来分析,我们首先必须进行结构设计,确定软件系统由哪些模块组成,以及这些模块之间的关系。软件系统结构是以选取最佳的软件模型来实现的。软件模型是将系统所提供的特性、服务以及系统所执行的任务统一成一体的概括框架。软件模型选择和建立的适当与否直接影响到软件实现的难易和系统性能的高低。软交换呼叫处理系统的设计和实现采用了分层次模型、客户/服务器模型和面向对象模型,以保证系统设计的高效性、可靠性、可扩展性。
3 系统结构和处理流程
3.1 系统结构
根据系统描述和总体设计说明,结合SIP协议栈和硬件板卡的适配,有图1的SIP IAD系统结构图。其中SO层是SIP协议栈层,HR是RTP协议栈,PG是板卡适配层,呼叫控制层负责整个呼叫过程的控制,可以定义为SV层或者DS层(IAD SIP)。关于呼叫控制层与PG层、SO层的接口名按照Trillium的方法定义,既呼叫控制层和PG的接口名定义为Pgt,呼叫控制层与SO层的接口名定义为Sot。接口之间的原语名定义也完全按照Trillium的方式定义。
3.2 处理流程
以SIP IAD终端既可以做主叫发起呼叫,也可以做被叫接受呼叫。基于SIP的IAD和基于H.248的IAD有所不同,H.248 IAD必须有MGC的参与才能运行,而基于SIP IAD对MGC可选,只有电信级的SIP IAD才需要MGC的参与。
图2中假定IAD1为主叫,IAD2为被叫,IAD1和IAD2之间正常通信的最简单的一种情形,不设及地址解析和路由,没有MGC的参与。实际主被叫IAD通信,可能要经过MGC的控制,以便地址解析和呼叫计费。
4 接口设计
SIP IAD模块的接口分内部接口和外部接口。内部接口是指呼叫控制层SV和SIP协议栈SO层的接口Sot,外部接口是指呼叫控制层和PG层的接口Mgt以及呼叫控制层和HR的接口Hrt。对于内部接口,主要是处理SV层控制SIP协议栈发送和接收SIP消息,而对于外部接口,主要是处理SV层和PG层的消息交互,实质上是处理PG层消息和从SIP协议栈接收/发送消息的映射,同时将SIP的SDP中的媒体信息传送给HR层,打开/关闭RTP端口。内部接口和外部接口相互独立,相互没有本质的联系。此模块要设计好,比较重要的一环是设计好外部接口原语及相应的数据结构。对于外部接口,要处理好以下消息:
当SV层收到PG发送来的消息时,首先判断PG发送来的信号类型:
1)主叫摘机信号
2)被叫摘机信号
3)主叫挂机信号
4)被叫挂机信号
5)主叫电话号码(地址)
6)被叫电话号码(地址)
7)媒体通道信息(用来构建SDP消息)
根据相应的消息类型来构建响应消息来控制SIP协议栈发送相应的SIP消息。同时,当SV层收到SIP协议栈送来的消息时,根据消息的类型向PG层发送消息:
1)Alter tone消息
2)Ringing tone消息
3)挂机请求消息
由此构建SV层和PG层交互的数据结构SvEvnt如下:
struct SvEvnt
{CmMemListCp memLst;
UConnId spConnId;
UConnId suConnId;
TknStrOSXLcaller;
TknStrOSXLcallee;
PGMEDIADESC mediaDesc;
}typedef struct
{U8 pres;
U8 num;
U16port;
U8 fmt[PGMEDIA_FMT_LEN_MAX];,
}PGMEDIA_FMT;
typedef struct
{U8pres;
U8used; /* only for Pg,
TRUE=used,FALSE=nouse*/
CmInetIpAddraddr; /* sdp, c=...IPv4*/
PGMEDIA_FMT audio;/* sdp, m=audio ...*/
PGMEDIA_FMT video;/* sdp, m=video ...*/
}PGMEDIADESC;
4 结束语
本文通过对软交换系统下媒体网关控制和综合接入设备之间的信令交互方式,采用了SIP协议规范,并根据中国电信规范的要求设计了综合接入设备的SIP协议模块,实现综合接入设备的SIP协议注册以及信令处理流程,实现了综合接入设备与MGC之间的无缝对接,达到了语音的端到端数字化。
参考文献:
[1] 信息产业部,2001.软交换设备总体技术要求[S].
[2] 信息产业部,2000.IP电话网关设备技术要求[S].
[3] 信息产业部,2000.IP电话网关设备互通技术要求[S].
[4] 信息产业部,2000.IP电话网关设备测试方法[S].
[5] 信息产业部.Draft Recommendation H.248 (clean text).ITUT Study Group 16,15th June 2001.
传统的旅游信息是在Web网页上的,可能存在很多缺点,比如:信息混乱,内容复杂,广告多,搜索时间长,用户界面的视觉效果差等等。用户经常花费很多时间用来搜索信息,但是通常却找不到他们想要的信息。手机对人们来说,或许已成为必不可少的一部分,因此对更多人来说其成本更低,使用更为方便快捷。目前,市面上并没有一个完整的旅游信息平台。
本文提出了一个基于Android技术的旅游信息系统应用程序。旅游信息终端的通信架构是基于SIP(会话初始协议)协议设计的,其中浏览旅游信息的音频和视频模块是基于H.264协议和RTP(实时传输协议)设计的。旅游信息是通过区域实现模块分化的,用户可以选择景点并播放关于该景点的音频或视频信息,或者阅读图片和文本信息,从而选定最感兴趣的景点游玩。
1.技术原理
旅游信息终端使用SIP协议作为基本层。SIP协议是由IETF(因特网工程任务组)制定的多媒体通信协议,广泛用于控制交流会话。它依赖于传输层,其中会话可能由音频信息和视频信息共同构成。
SIP模块分为用户,服务器和注册服务器3部分。当用户发送一个音频或视频请求,用户首先向注册服务器发送注册请求。当注册服务器通过注册请求之后,音频或视频请求则被发送到服务器响应请求,以允许播放音频或视频信息。图1显示了一个基于SIP协议的音频或视频通信过程。
2.旅游信息终端的设计
本文提出的旅游信息终端系统采用当前最热的Android技术,如图2所示。旅游信息终端的通信架构是基于SIP协议设计的,其中浏览旅游信息的音频和视频模块是基于H.264协议和RTP(实时传输协议)设计的。该系统采用信号控制层和SIP协议共同完成信号控制。音频和视频信息传输层是实现层,包含了RTP传输模块、媒体模块及其他模块等。
当用户想看多媒体的信息时,开放媒体线程的请求被发送到服务器。多媒体信息通过H.264协议编码并压缩,然后再使用RTP协议发送到响应的接收线程中。通过H.264协议进行解码处理后,用户打开音频和视频线程查看信息。图3显示了整个处理过程。
本文的旅游信息终端以天津这个城市为例。根据天津的区域分布,旅游信息终端在此基础上按照其街区进行划分景点。天津市分为16个区,比如河北区、河西区、北城区、西青区等等(见图4)。当用户打开软件时,第一次使用会提示一个新手引导页面。每个区域的景点都有完整的信息介绍。
用户可以通过使用这个程序查看周边景点信息,也可以浏览在其他区域的景点信息。这种一站式信息检索可以为游客节省大量的时间,它让用户有更多的时间来制定一个更合理的旅行计划。当用户查询景点信息时,该软件会向用户提供多样的景点介绍方式,比如文本信息、图像信息、语音信息等等。当用户不方便阅读文本信息时,多元化的信息服务为用户提供了便捷的选择,比如通过音频信息来了解景点。
中图分类号:TP393.0
文献标识码:A
DOI: 10.3969/j.issn.1003-6970.2015.07.025
0 SIP简介
SIP(会话初始协议,RFC3261)是IETF定义的通过IP网络建立和管理多媒体会话的协议,它采用的是众所周知的客户机服务器模式,它借鉴了SMTP(简单邮件传送协议,RFC2821)以及HTTP(超文本传送协议,RFC2616)的原理,而这两个协议是因特网上最成功的协议,同时,SIP是一个基于文本的协议,这意味着它更易于扩展、纠错和构建各种业务。因此,在IMS(IP多媒体子系统)中,选择SIP作为其会话控制协议,更易于建立具有更大承载能力的业务。
根据协议标准定义及实际研制经验,协议平台的SIP协议分析划分为以下几部分内容: SIP事务用户层(TU,Transaction User),事务层(TR,TRansaction),传输层(TP,TransPort),编解码模块(SIP PARSER/SDPPARSER,SIP协议编解码及SDP编解码),信令压缩模块(SIGCOMP)几个协议主体部分。除了这几个协议主体以外,SIP还需要实现和上层业务、数据库以及底层承载之间的接口,方便进行数据以及消息的交互。
SIP协议的TU层是SIP协议主体的重要组成部分,它的功能包含几个方面:(1)负责SIP消息到上层应用进程的消息分发;对上层应用屏蔽底层协议实现和分布式处理的细节;(2)对于需要创建对话的,维护对话的生命周期,管理对话的事务列表;(3)完成UAC, UAS或者pro xy的协议栈行为。
SIP采用的是一种offer/answer模型来描述会话。一个UA发起一个会话描述,称为offer,另一个UA以另一个会话描述来进行响应则为answer,一个offer/answer在一个Dialog上下文中进行交互,因为在具体实现SIP协议栈时,TU需要建立数据区来维护对话Dialog的相关信息,如图1所示,TU是通过建立leg模型来维护dialog的,TU建立的数据区称作leg,leg将会保存对于会话创建、会话释放,处理请求、处理响应所需要的一些关键信息,而这些信息是通过SIP消息从相应的头部中进行提取,和会话相关的主要头部From,To以及Call-ID中的信息将都会保存在leg中。
数据区的创建根据协议栈的行为分为UA和proxy两种情况。
Proxy方式下会存在一人一出两个Leg对象,人呼侧由TU收到事务层的初始请求而创建人呼侧Leg对象,消息通过人呼侧Leg处理后上报上层应用,上层应用处理结束后,转发初始请求到TU的出呼侧,TU进而创建出呼侧Leg对象以及下发SIP消息。
UA方式下,作为被叫网元,TU协议栈收到事务的初始请求后,创建人呼Leg后,通过初始请求消息上报上层业务,上层业务处理完业务逻辑后,通过人呼Leg回送响应到事务层。后续请求和响应都是通过人呼Leg传送。作为主叫网元,上层应用调用发送初始请求接口到TU,TU创建出呼侧Leg后,初始请求消息通过该Leg发送至事务层,后续请求和响应都是通过出呼侧Leg传递。
1 forking功能
fork即常说的分叉,一个请求可以分叉为发往多个目标地址的请求。假定B用户为一号多机用户,即一个SIP用户可以同时在很多终端上注册,每种终端可以实现不同的功能,比如便携PC支持视频而固定SIP电话可能功能简洁,B用户多个终端同时在线,当A用户呼叫B用户时,那么B用户的多个终端都会收到呼叫请求,它的任意终端都可以去响应这个呼叫。A最终会选择一个终端创建会话。
在IMS中实现fork功能涉及到的网元类型分为终端(UA行为)以及服务器(proxy)行为,根据协议的描述,梳理不同网元的处理原则。
1.1 终端处理原则
(1)请求
根据协议的描述,只有初始对话(独立事务)请求才会发生fork。终端可以在初始请求INVITE的码流中的通过添加Request-Disposition头部中指示进行fork的相关处理。同时,当被叫终端注册了多个时,主叫终端可以添加Accept-Contact,Reject-Contact参数,指示选择符合用户偏好的被叫以及优先级更高的被叫。
(2)响应
当fork发生时,多个被叫终端都会对主叫产生响应,未创建对话前,主叫终端可以接受或拒绝任何被叫终端的Fork应答,如果终端拒绝fork临时应答,那么必须发送cancel或者bye请求,这些请求是针对每个终端即每一个fork的分支都需要发出。
主叫终端如果接收到被叫终端一个fork分支的成功应答即2xx响应,开始创建会话;应该释放其他fork分支的早对话和非早对话,具体释放的方式根据各个fork分支的不同而不同。其中对于已经收到了临时响应的fork分支,不管是否建立起了早对话,则发送CANCEL请求来释放;对于没有收到任何的临时响应的fork分支,则不能发送CANCEL请求,通过TU设置的保护定时器超时,来释放该分支的相关资源。
主叫终端只能收到一条最终响应,如果收到2xx响应,则建立对话,如果为2xx以上的响应,则认为无法建立呼叫,则需要释放呼叫。
1.2 处理原则
(1)请求
提取码流中fork和用户喜好相关的字段,处理fork请求,比如到被叫的归属的服务器,需要将初始INVITE请求分叉为多个发送到被叫终端,对于非初始请求,需要进行转发。
(2)响应
立即转发除100(Trying)以外的任何临时响应。立即转发能成功建立对话的第一条2xx成功响应,如果其中任意一个地址接收呼叫,该网络服务器应该向其它地址发送CANCEL消息,如果由于网络时延而导致在服务器接收到多个200消息,服务器应当将后续的200消息拒绝掉,不应当后向转发,这样能保证只有一个终端能够建立对话。
对于3xx类以上的非成功响应,根据响应码的具体含义进行处理,比如3xx需要优先传到主教终端进行重定向,而对于4xx、5xx、6xx等非成功相应,即先保存这些响应,如果最后没有收到任何2xx响应,则根据协议规定的优选的原则选择响应码发送到主叫终端,结束整个会话。
2 SIP中fork的实现原理
SIP协议实现fork的基本逻辑功能:包括fo rk呼叫状态维护,管理多个临时响应创建的对话,并在会话创建之前维持多个早对话出/人呼侧消息的正确关联关系。上层业务维护多个Contact的上下文与分叉呼叫之间的关系,分别对早对话进行承载控制。
2.1 确定是否发生fork
当被叫终端注册了多个Contact地址时,SIP协议需要去提取码流中的相关字段,通过Accept-Contact,Reject-Contact参数确定好被叫目标集,并按照优先级将多个被叫终端进行排序,进一步的提取Request-Disposition头部的关键信息,对是否需要进行fork进行确定,该头部的内容如下:
proxy-directive=”proxy”
fork-directive="fork"/"no-fork"
parallel-directive="parallel"/"sequential"
其中proxy-directive确定当前的网元是否为proxy,fork-directive是用来指示是否需要fork,当指示为”no-fork”时,虽然被叫有多个,但是初始请求只会发送给优先级最高的被叫终端并不会产生分叉,如果指示为”fork”时,则进一步的读取parallel-directive指示的值,parallel-directive若为“parallel”为并行fork,并行fork则需要被叫归属的服务器将初始的INVITE请求同时发送给多个被叫终端,既并行呼叫;若为“sequential”为串行fork,串行fork则不需要服务器将初始请求同时发送给多个被叫终端,而是逐个的发送,先发给第一个优先级最高的被叫,如果接通,则不需要进行后续处理,如果没有成功接续,则继续发送给第二个被叫,依次类推。
2.2 TU中会话的维护
从前面SIP的简介我们得知,TU需要去维护会话dialog,而对于dialog的维护,TU需要创建数据区Leg去保存相应的信息,fork情况下,可能存在同时发起多路fork分支的呼叫,而多个被叫终端的对话信息是不完全相同的,如果把所有的信息都保存在简单情况下的一个Leg数据区里,则容易引起一些误操作,逻辑很不清楚,所以,可以采用TU维护多对数据区的方式来解决。
普通呼叫情况下,SIP的TU层只需要维护人呼侧和出呼侧的一对Leg即可,这样所有的消息都通过这一对Leg来进行关键信息的记录以及转发。而fork情况下,由于终端有多个,而每个终端都可以传送不同的请求和响应到主叫终端,为了对每个终端的信息进行彼此独立的进行保存,TU为每一个终端建立对应的数据区Leg,具体如图2所示,图2和图1比较可以看出,fork情况下,TU的人呼侧和出呼侧分别有多个Leg,而且人呼侧和出呼侧是一一对应的,比如In Leg(0)和Out Leg(0)是对应第一个被叫终端,用来记录第一个别叫终端和主叫之间的会话信息,并进行这一分支呼叫的消息转发,而In Leg(l)和Out Leg(l)是为主叫终端和第二个被叫终端服务的。当然,不管是fork的第一个分支还是第二个分支和主叫发生联系,这都是属于当前的这一个完整的会话,因此两路分支之间也可能有信息的交互,此时可以通过CALL这样的一个空间来保存两者的数据区索引,方便通过一个人呼叫的Leg能很快的访问到另一个分支的Leg。
3 具体流程
SIP的具体流程要分为并行和串行两种情形,分别进行介绍:
3.1 并行流程
在并行流程中主叫的请求会同时被发送给两个别叫用户,具体流程如图3所示,其中User AgentA为主叫用户,User Agent B,C为被叫用户,Proxy Server是IMS系统中的某个具体的网元,是服务器,主要是起到消息转发以及完成fork功能的作用。
各步骤的具体含义如下:
主叫用户A发起请求INVITE到服务器,对应图上消息(1);
假定此服务器是被叫归属地的网元,它能检测到有多个被叫联系contact地址,同时通过Request-Disposition确定为发生并行fork,于是,向两个被叫用户B和C发起INVITE请求,对应图上消息(2)和(3);
两个被叫用户收到INVITE请求后,提示用户并振铃,都发送180( Ringing)消息通过服务器传给主叫用户,主叫用户能同时听到两个被叫的回铃音,对应图上消息(4)(5)(6)(7),此时,两路别叫的180消息中的To头部的tag值是不一样的,这样服务器中实现SIP的TU层就可以维护两个leg,来保存两路的不同会话信息;
两个被叫用户都会送响应,上图中被叫用户B接通呼叫,产生2000K的应答,而被叫用户C则回送4XX消息,显示忙,服务器接收到两个被叫的不同应答,需要进行处理,它主动地对被叫用户C回送ACK,以结束被叫用户C之间的呼叫,同时将被叫用户B的200 OK转发到主叫侧,具体对应图上的(8)(9)(10)(11);
主叫收到成功响应后,回送ACK消息到被叫用户B予以证实,呼叫建立,对应图上的(12)和(13);
主叫挂机,发送BYE消息,被叫回应200 0K响应,整个通话结束,对应图上的(14)(15)(16)(17)。
3.2 串行流程
在并行流程中主叫的请求会按照优先级先后发送给两个被叫用户,具体流程如图4所示:
各步骤的具体含义如下:
主叫用户A发起请求INVITE到服务器,对应图上消息(1);
假定此服务器是被叫归属地的网元,它能检测到有多个被叫联系co ntact地址,同时通过Request-Disposition确定为发生串行fork,就需要根据两个被叫用户的优先级,优先级通过Accept-Contact,Reject-Contact等参数按照RFC3841协议规定的原则进行权值的计算,假定用户B的优先级高于用户C,服务器现将INVITE转发给用户B,对应图上消息(2);
被叫用户B收到INVITE请求后,提示用户并振铃,并发送180(Ringing)消息通过服务器传给主叫用户,主叫用户能听到被叫用户B的回铃音,对应图上消息(3)(4);
被叫用户B忙,因此回送4XX消息,服务器接收后,由于是fo rk情况,因此不将此失败响应发送给主叫用户,直接给被叫用户回送ACK确认,并将此初始请求消息INVITE继续发送到第二个用户C,对应图上消息(5)(6)(7);
被叫用户C收到INVITE请求后,提示用户并振铃,并发送180(Ringing)消息通过服务器传给主叫用户,并进一步的发送200 0K响应接续通话,对应图上消息(8)(9)(10)(11);
主叫收到成功响应后,回送ACK消息到被叫用户B予以证实,呼叫建立,对应图上的(12)和(13);
主要内容分析内容:不同网络之间的寻址与定位;消息的映射预处理;终端地址的转换;硬件模块的组成。
具体设计了网关会话层软件程序的结构和功能模块的划分,给出了实现互通时的外部通信流程与内部消息流程,及硬件模块化设计。
关键词:SIP;H.323;转换网关
中图分类号:TN915 文献标识码:A 文章编号:1007—9599 (2012) 14—0000—02
一、SIP与H.323的区别
(一)协议的出发点:H.323的传输从电路交换方式变更为分组交换方式;SIP协议主要是完成了基于Internet上IP电话的应用同时增加了QoS呼叫保障机制。
(二)消息编码的不同:H.323采用压缩编码规则和ASN.1的二进制方法;SIP是基于文本的协议,与H.323相比具有较强的优越性。
(三)会话能力的协商和调整方法:
H.323利用H.245进行能力协商的会话控制;
SIP采用SDP协议描述。
(四)Session管理的方式:
H.323的session由MCU执行会议控制功能,参加会议的终端全部都向MCU发送控制消息;H.323设计便于计费,对带宽的管理也比较简单。
SIP session设计为分布式,他具有分布式的多播功能,多播功能能够实现更方便的会议控制,简化用户定位、群组邀请等,节约带宽。
通过以上对比分析,从协议互通角度考虑,SIP和H.323网络互通需要解决以下问题:
H.323和SIP地址的转换;寻址定位的实现;消息映射和呼叫过程同步。
二、H.323地址与SIP地址的转换
SIP和H.323支持的地址格式不同:
H.323支持地址类型:H.323 ID、E—mail地址、IP地址和主机名,URL地址。
SIP地址由URL定义其结构,用以指示主叫、被叫、重定向和请求目的地址,在SIP消息内的From,To,Contact字段和Request—URL字段中。
因此,如果完成H.323和SIP网络之间的互通,就必须要实现H.323和SIP网络之间的地址解析和映射,当网关收到来自H.323网络或SIP网络的消息,需要在消息内解析所包含的地址单元,再按地址映射表,转换成对方网地址格式,然后封装在需要发出的消息中。
SIP 地址转换成 H.323地址的转换规则:
(一)e164部分:当SIP地址中userinfo为Tel格式例如+86—010—****@IP地址,这部分将被转化成为H.323地址中e164部分,其中的+,—号会去掉。地址被转化成H.323地址中e164部分,为“86010****”。
(二)h323—ID部分:SIP地址中的userinfo部分会直接转成为h323—ID,例如sip:terminal@IP转成h323— ID就是sip:jack@IP地址。
(三)url—ID部分:SIP地址中的存在类似的user@domain,可以直接转化成为H.323 url—ID部分。sip:terminal@bell—转为url—ID就是sip:terminal @bell—。
(四)email—ID部分:SIP地址存在user@group这中email地址格式,那么将email地址转化为h.323地址的email—ID部分,如sip:terminal@IP地址可以转 terminal @IP地址。
(五)transport—ID部分:SIP地址中存在IP地址和端口的部分,H.323地址需要用transport—ID表示,如SIP地址如果是sip:terminal@IP,那么转成H.323地址:transport—ID是IPAddress IP地址:端口号。
从H.323地址转换到SIP地址时:
1.e164部分:e164部分转换成一个电话号码的SIP地址,规则是:sip:telephone@host:user=phone.
例如e164ID为86010****转化成SIP地址就是:sip:+86—010—****@host:user=phone。
2.h323—ID部分:这部分可以转化成为SIP地址的userinfo部分, 但是如果地址是terminal @IP地址这种类型的话,需要将mailto转化成sip。
3.email—ID:需要将sip标识符加在email—ID的前面,例如email—ID 是
terminal@IP变换到SIP地址就是:sip:terminal@IP。
4.url—ID :需要将sip标识符加在url—ID的前面,如url—ID是h323:
变换成SIP地址就是:sip:.
中图分类号:TP393文献标识码:A 文章编号:1009-3044(2010)01-74-03
The Design and Implementation of Video Monitoring System Based on SIP
HUANG Lun-wen, CHENG Yong, LI Han
(Anhui Sun Create Electronics Co., Ltd, Hefei 230088, China)
Abstract: How to set up a remote network video connections, NAT penetration, efficient video stream encoding and decoding is the research in the field of video monitoring. MEPG4 video encoding formats, which is of high compression ratio, is used in the SIP-based network video monitoring system. The system supports multi-channel IP video, using soft-switching platform for centralized management of the video stream to achieve the establishment of a network video connection, video streaming encoding and decoding, encryption, transmission, and intelligent alarm, video capture, playback and other functions.
Key words: SIP; IP; MPEG4; soft switch; video monitoring
近年来,随着各类如地震、冰雪等自然灾害和恐怖事件频繁发生,公共安全已经得到世界各国的高度重视。各级政府和单位投入大量的人力、物力研究新型安全防范系统。其中视频监控是安全防范的重要组成部分,它是一种可靠、防范能力极强的综合系统[1-2]。
SIP(Session Initiation Protocol)会话初始协议是IETF制订的,用于多方多媒体通信,是一个基于文本的应用层控制协议,独立于底层传输协议TCP/UDP/SCTP,用于建立、修改和终止IP网上的双方或多方多媒体会话[3-4],与RTP、RTCP、SDP等协议结合可实现语音、视频通讯;SIP协议可在TCP或UDP之上传送,由于SIP本身具有握手机制,可首选UDP。
1 视频监控系统的构架和工作原理
1.1 系统构成
该视频调度监控系统由视频嵌入式终端、监控管理平台以及SIP服务器系统三部分组成。其结构如图1所示。
其中嵌入式终端是基于SIP信令构建的系统,在SIP网元中也可以把它看作是包含媒体通讯功能的UA客户端。主要完成信号的采集、信号处理和前端摄像机的控制工作。
SIP服务器系统主要包括信令服务器(定位、、注册)、媒体服务器(转发、存储等)以及报警服务器等。当有监控中心向服务器发出监控请求时能够找到相应的监控设备,并且把请求转发到嵌入式终端。
监控管理平台是一个标准的SIP设备,用户除了可以观看监控现场的图像以外,通过扩展SIP信令,还可以支持授权用户对云台系统的控制。这里的管理平台可分为监控中心(外接电视墙或电视机),软件管理平台(其中包括在本地局域网内的客户端)和支持SIP的移动设备,如笔记本电脑、可视电话、SIP手机等。
1.2 系统的工作原理
嵌入式终端注册到SIP服务器,如果监控管理平台需要监控某个终端,可以发出接入请求,SIP服务器可以找到终端所在地,然后建立连接。连接建立后,嵌入式终端系统采集音视频的模拟信号,然后转化为数字信号,经过编码器编码后(如MPEG-4编码)传送给视频监控服务器,视频监控服务器把视频数据进行IP封装后发送到监控管理平台。
2 嵌入式终端设计
嵌入式终端采用Z228芯片开发,Z228是上海杰得微电子自主开发的多媒体应用处理器,是中国第一款0.13微米的高度集成的低功耗的具有强大多媒体处理能力的 SoC 芯片,单芯片包含了ARM926EJ CPU和MPEG-4硬件编码器[5]。嵌入式终端的主要功能是视频的采集、A/D转换、编码、发送等功能。
2.1 硬件体系结构
如图2所示,摄像头连接到视频输入接口,采集到的模拟视频数据经过A/D转换后进入高性能处理芯片,高性能处理芯片集成了硬件编码芯片和ARM处理器,数据经过硬件编码后成为高压缩比的MPEG4数据,通过RJ45接口传送到网络上。摄像头连接到云台上,使云台带动摄像头移动,摄像头以及云台的控制接口和控制器相连,控制器再和集成电路板上的485接口相连,这样就可以用485协议通过控制器对云台进行移动控制以及对摄像头进行变焦等操作。
2.2 MPEG-4编码
系统采用的视频编码格式是MPEG-4。
编码的过程如图3所示:
1)初始化阶段:初始一个实例,调用函数:MP4EncInit;
2)选项配置:对编码的码率等参数进行配置,调用函数:MP4EncSetRateCtrl、MP4EncSetCodingCtr、MP4EnSetUsrData、MP4EncSetSmooth、MP4EncSetCrop;
3)采集视频流:获取产生MPEG4码流的头信息,调用函数:MP4EncStrmStar;
4)数据编码:每次得到YUV的图像帧后,产生这一帧的码流。调用函数:MP4EncStrmEncode;
5)输出数据:把编码过的数据打包,经过RTP传到SIP服务器;
6)停止数据流:一个码流数据的结束,调用函数:MP4EncStrmEnd;
7)释放资源:释放初始化的实例,调用函数:MP4EncRelease。
2.3 媒体数据的发送
SIP连接建立成功以后,双方视频通道建立,在IP层上进行视频数据传递,利用RTP(实时传输协议)和RTCP(实时传输控制协议)通过UDP传输数据。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据[6]。
RTP提供具有实时特征的、端到端的数据传输服务。在视频数据前插入包含有载荷标识、序号、时间戳和同步源标识符的RTP包头,然后利用数据报套接字(UDP)在IP网络上传输RTP包。
RTCP负责管理传输质量在当前应用进程之间交换控制信息。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。SIP服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。
3 SIP服务器
SIP用来建立,改变,认证和终止基于IP网络的多个SIP的视频接入。在此接入过程的基础上很容易的实现多方的音视频、文本等各种类型的媒体会话。参与会话的成员可以通过组播方式、单播连网或者两者结合的形式进行通信。SIP服务器包括信令服务器、媒体服务器、监控服务器。
3.1 信令服务器
信令服务器用于响应SIP终端注册以及连接建立,图4是一个完整的SIP视频的建立流程[7-8]。
嵌入式终端和监控管理平台首先向Sip Proxy(SIP注册服务器)发起注册;当监控中心要接入某路视频时,监控软件经SIP服务器向特定嵌入式终端发起包含SDP(Session Description Protocol 会话描述协议)结构的INVITE请求,嵌入式终端返回180响铃消息,然后嵌入式终端返回包含SDP结构的200OK数据包表示同意接听,并且进行媒体协商,最后监控软件向嵌入式终端发送ACK确认包,此时通话建立;启动媒体和485总线的相关线程。
当断开某路视频时,监控软件向嵌入式终端发BYE消息,嵌入式终端返回200OK,则连接断开。
3.2 媒体服务器
媒体服务器的主要作用是媒体流数据的转发、录像、点播等功能。
当监控管理平台和嵌入式采集终端连接成功后,媒体服务器建立起映射关系,嵌入式采集终端采集现场实时图像,进行编码打包后发送到媒体服务器,媒体服务器根据该连接的映射关系,把IP视频包转发至监控管理平台;而监控管理平台通过同样的方法实现对嵌入式采集终端的各种控制命令的发送。
媒体服务器的另一个重要功能是视频流的存储点播。媒体服务器可以把经过该服务器的视频数据保存到硬盘中,用户可以对视频数据进行检索和回放。当监控系统比较庞大,一台媒体服务器无法满足整个系统需求时,可以对媒体服务器进行扩展,使用多台媒体服务器并发协作执行。
3.3 监控服务器
当摄像机收集到异常信号(如探测到了高温信号,认为发生了火灾)后,将其通过监控系统传至报警联动装置,再由报警联动装置通过某种通信手段(如手机短信、E-mail等)自动向监控人员发出报警信号,或者系统自动地处理现场(如火灾时断电等)。
4 监控管理平台
SIP监控平台的主要作用是连接并控制远程视频,视频流接收、解码、回放等。
4.1 平台构成
监控管理平台包含SIP模块、RTP模块、XVID模块、远程控制模块等。分别实现远程网络视频连接的建立、视频流接收、解码播放、远程控制等功能。每个监控平台可以同时监控多路视频,能够对视频数据进行拍照或录像,对摄像头和云台进行操控。对指定区域的情况实时监测报警。
监控平台另一个重要的功能是通过图像处理算法对比一段时间间隔的图像数据的相似性,来识别指定区域是否有异常活动,实现自动报警、抓拍、跟踪等功能。
4.2 MPEG-4解码
从SIP服务器转发过来的的视频流,需要解码后,才能呈现图象,解码包含Decoder 和VPD 2 部分。其中Decode 用于数据的读取和解码,而VPD 用于图像缩放、格式转换等处理。
解码流程如图5所示:
1)初始化:初始化Decoder和VPD实例,调用函数:MP4DecInit、VPDInit;
2)取数据头信息:启动接收MPEG-4数据流,解出视频数据的头信息,调用函数:MP4DecDecode;
3)预留视频图象处理空间;
4)配置VPD:根据头信息中码流的宽高等,配置VPD模块。根据需要,将输出配置为Framebuffer或者内存。调用函数:VPDGetConfig、VPDSetConfig;
5)解码:根据头信息接收解码单元(一段数据),解码单元内的数据。一帧图像解码完毕则输出显示,否则继续解码,调用函数:MP4DecDecode;
6)释放资源:结束时候,释放相关实例,调用函数:VPDRelease、MP4DecRelease。
5 结束语
该文设计和实现了一种基于SIP的视频监控系统。该系统使用嵌入式设备代替传统的监控系统,传输方式采用了集中管理代替点对点的方式,提高了监控设备的可靠性、灵活性、易管理性。SIP监控适合应用于大规模分布式监控,具有IPV4/IPV6双协议栈,不仅应用于现在的网络,也可平滑过度到下一代网络。随着SIP相关技术的成熟,SIP将成为视频监控领域主流信令控制协议之一,具有广阔的发展空间。
参考文献:
[1] 钱龙华,吕强,杨季文,等.基于ISP的嵌入式视频监控系统[J].计算机应用,2007,27(7):1786-1788.
[2] 朱校海,杨从保,杜治国.基于SIP的IP视频监控系统探讨[J].中国安防,2007(5):98-101.
[3] 司端锋,韩心慧,龙勤,等.SIP标准中的核心技术与研究进展[J].软件学报,2005,16(2):239-250.
[4] 张智江,张云勇,刘韵洁.SIP协议及其应用[M].北京:电子工业出版社,2005.
[5] 魏涛,柴晓东,王华彬,等.基于Z228嵌入式最小系统设计[J].电视技术,2007,31(8):32-34.
1 引言
基于SIP协议的即时通信系统在企事业单位使用较多,而随着单位保密意识的提高,对数据安全和网络安全的重视,人们对防火墙访问规则等安全策略的要求越来越严格,同时也限制了其基于计算机的各种应用,阻碍了其业务的发展。本文采用HTTP Tunnel实现对防火墙的穿越,将TCP、UDP等非HTTP数据类型进行HTTP伪装和加密,在不改变单位的防火墙等安全策略的前提下,以隐蔽通信的方式完成应用程序的数据传输。
本文重点探讨了HTTP Tunnel技术在以SIP协议为基础的即时通信系统中的应用,并提出相应解决方案和参考应用框架。旨在提升HTTP Tunnel技术的应用范围,加强应用业务的数据安全与网络安全。
2 应用系统框架
HTTP Tunnel被称之为HTTP暗道,原理是将数据伪装成 HTTP的数据形式来穿过防火墙。
基于SIP协议的即时通信系统是以SIP为信令交互协议的即时通信系统,其应用包括HTTP访问、即时消息、语音通信、视频通信等。该系统通过HTTP Tunnel可以不用改变防火前的安全策略,即可实现自由通信。其框架基本包括四个主要方面:
1) 基于SIP协议的即时通信系统,该系统实现基于TCP、UDP、HTTP等协议的即时通信功能;
2) Sock2HTTP服务器,该服务器实现非HTTP协议数据包的HTTP格式转换,通信端口映射,拥塞控制等功能;
3) HTTP Tunnel系统,该系统实现基于HTTP协议的双向的虚拟数据连接,从而穿越防火墙;
4) HTTP2Sock服务器,该服务器实现需要转换为其他格式的HTTP数据,通信端口的映射,拥塞控制等。
其拓扑图如图1:
图1.基于SIP协议的即时通信系统的HTTP Tunnel应用
3应用系统设计
3.1基于SIP协议的即时通信系统
基于SIP协议的即时通信系统主要有两部分组成。OpenSIPS服务器和oSIP客户端。
3.1.1 OpenSIPS
OpenSIPS是成熟的开源SIP服务器,结构非常灵活,其核心路由功能完全通过脚本来实现,可灵活定制各种路由策略,可灵活应用于语音、视频通信、IM以及Presence等多种应用。
其主要功能如下:
SIP注册服务器/服务器/重定向服务器
SIP presence agent
SIP IM Server
3.1.2 oSIP
oSIP是使用标准c编写的SIP协议栈。
主要包括两部分的内容:状态机模块、解析器模块。
状态机模块的功能:完成对某个事务(注册过程,呼叫过程等等)状态记录,并在特定状态下触发相应的事件或回调函数。
解析器模块的功能:该模块主要完成对SIP消息结构剖析、SDP消息的结构剖析以及URI结构的剖析;
图2.oSIP结构
oSIP为SIP协议的客户端,OpenSIPS为SIP协议的服务器,二者共同搭建基于SIP协议的即时通信系统。
3.2 Sock2HTTP服务器和HTTP2Sock服务器
当位于内网的SIP终端访问外网,则终端建立连接的端口不一定被防火墙开放,尤其是UDP端口,若使TCP与UDP等消息穿越防火墙则需要相应的协议转换服务器,即Sock2HTTP和HTTP2Sock。
图3.Sock2HTTP与HTTP2Sock
3.2.1功能描述
主要负责分配对应的UDP端口;接收HTTP消息、解码、以UDP的形式发送至目的地址;接收UDP消息、编码、接收终端分配UDP端口的HTTP消息,返回生成的UDP端口;UDP端口与终端的对应管理机制。
3.2.2设计说明
a.建立TCP套接字,与某端口绑定(可配置),监听该端口;
b.接收到请求后,fork子进程处理该请求,请求包括要求分配端口的请求和其他请求两类;
c.处理要求分配端口的请求,将分配的端口返回给终端,保持该TCP链接不断开,直至通话结束或者终端注销。
4结论
基于SIP协议的即时通信系统使用HTTP Tunnel技术,在企事业单位网内外实现自由通信。该应用不仅提升HTTP Tunnel技术的应用范围,更加强应用业务的数据安全与网络安全。系统采用分布式设计,为系统升级和集成提供很好的构架基础,是企事业单位业务和数据穿越防火墙的一种安全和高效的应用。
参考文献
[1] RFC 2543 3261SIP: Session Initiation Protocol.
1、ep 是Engineered Performance的缩写。
2、字面意思是工程性能、工程表现,引申义可理解为设计性能有保障的产品,或者履行过工程监督程序的产品,强调产品整体的工程性能表现。是高科技的象征,作为最轻最强大的篮球鞋子,它最初的技术是源自于跑钉鞋的蜕变,其超强劲的尼龙细丝为足够提供精准的支撑,它的制作原理就和造大桥是一样的,材料只用于结构中最必需的部位,从而保证了鞋子最轻的质量。
3、ep什么意思并不是最重要的,最为重要的是获得消费者的青睐,ep这种高品质的鞋子并不是随便就可以生产出来的,而是需要经过非常严格的测试,在跑步过程中测试运动鞋所承受的向前的冲力及压力,经过合理的分析设计鞋子的承重部分,在保证鞋子能够完全符合实际情况的条件下再进行最轻化的改进。
(来源:文章屋网 )