時間: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這種高品質的鞋子并不是隨便就可以生產出來的,而是需要經過非常嚴格的測試,在跑步過程中測試運動鞋所承受的向前的沖力及壓力,經過合理的分析設計鞋子的承重部分,在保證鞋子能夠完全符合實際情況的條件下再進行最輕化的改進。
(來源:文章屋網 )