基于sdl的sip協(xié)議設計--論文重定向服務器-學位論文_第1頁
基于sdl的sip協(xié)議設計--論文重定向服務器-學位論文_第2頁
基于sdl的sip協(xié)議設計--論文重定向服務器-學位論文_第3頁
基于sdl的sip協(xié)議設計--論文重定向服務器-學位論文_第4頁
基于sdl的sip協(xié)議設計--論文重定向服務器-學位論文_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

《通信軟件與協(xié)議工程》課程作業(yè)基于SDL的SIP協(xié)議設計(重定向服務器)學院:計算機學院專業(yè):通信與信息系統(tǒng)年級:2012級學號:2012021495學生姓名:尹恒小組成員:尹恒,曹嶸暉,婁洹熙指導教師:劉紫燕2013年6月26日第13頁目錄第一章 緒論 31.1 研究的背景和意義 31.2 課題研究現(xiàn)狀 3第二章 SIP協(xié)議綜述 42.1 SIP協(xié)議簡介 42.1.1SIP協(xié)議的歷史 42.1.2SIP協(xié)議的特點 42.1.3SIP協(xié)議的功能 52.2SIP實體 62.2.1用戶代理 62.2.2重定向服務器 62.2.3注冊服務器 72.2.4定位服務器 7第三章 SIP工作流程及注冊服務器配置和實現(xiàn)方法 83.1SIP工作流程 83.1.2注冊過程 83.2注冊服務器配置及實現(xiàn)方式 103.2.1注冊服務器 103.2.2注冊服務器實現(xiàn)方式 103.2.3用戶注冊方式 10第四章 重定向服務器的設計以及在SDL上的實現(xiàn) 114.1重定向服務器概述 114.2重定向服務器軟件設計 124.2.1OSIP開發(fā)庫 124.2.2SIP消息解析模塊 134.3SIP重定向服務器在sdl_ttcn上的仿真實現(xiàn) 144.3.1重定向呼叫 144.3.2SIP重定向服務器模式在SDL上的各類截圖 15第五章 總結(jié)與展望 215.1總結(jié) 215.2技術展望 215.2.1辦公OA系統(tǒng) 215.2.2呼叫中心系統(tǒng) 215.2.3重定向攻擊防范 21參考文獻 23致謝 24

緒論研究的背景和意義SDL(specificationanddescriptionlanguage)是一種基于擴展有限狀態(tài)機和抽象數(shù)據(jù)類型的形式化描述語言,定義在ITU的建議Z.100中。SDL自身的特性非常適合通信協(xié)議的形式化描述和實現(xiàn)?,F(xiàn)在越來越多的電信設備開發(fā)商開始使用SDL進行協(xié)議軟件開發(fā)。設計模式是成功的軟件實踐經(jīng)驗和設計思想的總結(jié)。在通信協(xié)議軟件中,這種可重用的開發(fā)經(jīng)驗和設計思想的特點體現(xiàn)的尤為明顯。為了減少通信協(xié)議的開發(fā)成本,降低出錯率,提高開發(fā)效率和協(xié)議軟件的質(zhì)量,SDL模式技術應運而生。SIP是由IEFT(InternetEngineeringTaskForce)組織于1999年提出的多媒體通信框架的應用層信令協(xié)議,現(xiàn)在的版本是2001年提出的RFC3261,它可以用來在IP網(wǎng)絡上建立一個多媒體會話,在需要的時候會改變和結(jié)束這個會話。SIP協(xié)議的設計思想和SMTP以及HTTP一樣,都是基于互聯(lián)網(wǎng),采用的編碼方式是基于比較簡單的文本方式,協(xié)議簡潔高效并易于擴展,很適合基于Internet的傳輸,是未來多媒體通信系統(tǒng)的主流發(fā)展方向。SIP用來在因特網(wǎng)或者任意IP網(wǎng)絡上創(chuàng)建、改變和結(jié)束一個多媒體會話,會話參與者可以只有兩個,也可以是很多個,也就是說可以用來創(chuàng)建一個會議。SIP協(xié)議在下一代網(wǎng)絡中有很重要的地位,SIP能夠連接使用任何IP網(wǎng)絡(有線LAN和WAN、公共Internet骨干網(wǎng)、移動2.5G、3G和Wi-Fi)和任何IP設備(電話、PC、PDA、移動手持設備)的用戶,而傳統(tǒng)的電話的通信范圍和通信方式太窄,利用SIP,可以做到很多以前做不到的應用,這些應用將來會很有市場,而且會為眾多企業(yè)和運營商提供很多商機,應用前景非常好?;赟IP的應用豐富多樣,這些應用都離不開SIP服務器的支持,所以研究SIP服務器如代理服務器、重定向服務器等就很有必要,也很有意義。課題研究現(xiàn)狀SIP協(xié)議最早是在1999年出現(xiàn)的。當時IETF(Internet工程任務組)在IETF上提出了這一概念,當時出來了第一個版本RFC2543,最新的版本是在2001年出來的,即RFC3261,SIP的理論基礎一旦建立,就相繼出現(xiàn)看眾多基于SIP協(xié)議的服務和產(chǎn)品。國內(nèi)對于SIP的研究相對少些,但也有一些公司投入了力量,如華為、中興等。他們在研究SIP的基礎上也推出了一些應用和產(chǎn)品,產(chǎn)品當然包括SIP服務器,還有SIP終端之類的。但是總體來說,國內(nèi)對SIP的研究和產(chǎn)品以及應用不多,就算有產(chǎn)品和應用,也幾乎沒有多少市場份額。況且SIP協(xié)議也會根據(jù)技術發(fā)展和人們的需求做一些補充和完善,所以對SIP協(xié)議、服務器和SIP用戶終端及其他新興應用的研究很有必要和意義,很多的技術創(chuàng)新會在這過程中產(chǎn)生。SIP協(xié)議綜述SIP協(xié)議簡介2.1.1SIP協(xié)議的歷史SIP(SessionInitiationProtocol)會話初始協(xié)議,是由IEFT(InternetEngineeringTaskForce:Internet工程任務組)下的MMUSIC(MultipartyMultimediaSessionControl:多方多媒體會話控制工作組)提出來的。SIPv1是SIP協(xié)議的第一個版本,不過這里的SIP還不是人們所熟知的會話初始協(xié)議,而它的含義是會話邀請協(xié)議(SessionInvitationProtocol)。SIPv1于1996年2月22日第36屆IETF會議上,作為一個Internet草案提交給IETF。不過SIPv1已經(jīng)和后來的SIP一樣使用了會話描述協(xié)議(SDP,SessionDescriptionProtocol),SIPv1使用的傳輸協(xié)議是基于UDP的,編碼方式已經(jīng)是基于文本的了,SIPv1協(xié)議的功能相對簡單,只是用來處理會話的建立。同是在1996年2月22日,簡單會議邀請協(xié)議(SCIP,SimpleConferenceInvitationProtocol)的草案也提交給IETF。SCIP和SIPv1不同,SIPv1使用UDP,SCIP則使用TCP協(xié)議進行傳輸,SCIP的信令比SIPv1持續(xù)時間長,會持續(xù)到會話建立以后。在用戶標識符方面,SCIP使用的是E-mail地址,采用的是超文本傳輸協(xié)議。在1996年12月的IETF第37屆大會上,SIPv2作為Internet的草案提交給IETF。這時的SIP含義相比較SIPv1來說已經(jīng)發(fā)生了變化,它不在是會話邀請協(xié)議(SessionInvitationProtocol),而是由SIPv1和SCIP合并而成,是人們所熟知的會話初始協(xié)議(SessionInitiationProtocol)。因為是兩個協(xié)議合并而來的,所以這個新的SIP包含了SIPv1和SCIP這兩個協(xié)議的特點,即,基于HTTP,使用的傳輸協(xié)議既可以是TCP也可以是UDP,它同時也是基于文本的。IETF在1999年2月發(fā)布了SIP的提議標準,這個提議標準即RFC2543規(guī)范。IETF在2001年又發(fā)布了新的規(guī)范,即RFC3261,并在以后不斷地進行了完善。RFC3261中對多媒體會話過程是如何建立、如何修改和如何結(jié)束等進行了定義。它定義了用戶間多媒體會話過程的建立、修改和終止。SIP協(xié)議的設計思想和SMTP以及HTTP一樣,都是基于互聯(lián)網(wǎng),采用的編碼方式是基于比較簡單的文本方式,協(xié)議簡潔高效并易于擴展,很適合基于Internet的傳輸,是未來多媒體通信系統(tǒng)的主流發(fā)展方向。2.1.2SIP協(xié)議的特點1.基于Internet的設計原則,易于業(yè)務整合。在OSI七層結(jié)構體系中,SIP位于應用層,這使得SIP協(xié)議可以獨立于底層的協(xié)議,這樣在建立、調(diào)整和結(jié)束一個會話的時候,它就可以和底層相互獨立,底層只需要提供相應的接口和協(xié)議規(guī)范即可。同時由于SIP協(xié)議基于Internet的設計原則,這使得很多也是基于Internet的協(xié)議可以和SIP很方便的互通。SIP消息的語法衍生于HTTP,所以HTTP中的很多消息和語法可以在SIP中重用,所以容易把相關業(yè)務整合起來。2.獨立的傳輸層SIP協(xié)議處于應用層,獨立于底層協(xié)議,自然而然的也獨立于傳輸層,對傳輸層沒有多少限制。3.第三方控制機制第三方控制是指自己本身并不參與會話,但是會有一些諸如建立呼叫的功能,SIP協(xié)議支持第三方的控制機制。4.很容易開發(fā)多媒體業(yè)務以前的固定電話只是單一的語音呼叫,但SIP不止如此,它管理的對象是會話,這個會話當然包括語音在內(nèi),但它還有新的內(nèi)容在里面。如它可以包括數(shù)據(jù)、圖像、視頻流等業(yè)務,也就是說,使用SIP很容易開發(fā)其他通信業(yè)務。5.移動性、兼容性和擴展性移動性體現(xiàn)在SIP定義了重定向服務器,這個服務器是SIP服務器的重要內(nèi)容,它一般使用統(tǒng)一資源定位器(URL)的方式來標識自己,有了重定向服務器,用戶就可以得知目的用戶的新位置。SIP還具有向上兼容的特性,這主要體現(xiàn)在SIP的忽略機制上。SIP提供了很多功能和消息標題頭,但并不是每個代理服務器或用戶都能完全用到,用不到的功能將會被忽略掉。SIP的強大之處還在于SIP有很多擴展功能,這些功能隨著一些新的想法和應用還在不斷擴展。6.協(xié)議格式清楚,維護方便SIP協(xié)議基于比較簡單的文本格式,這樣下來協(xié)議的可讀性很強,在出現(xiàn)錯誤時,可以很方便地對錯誤進行分析,維護起來比較方便。2.1.3SIP協(xié)議的功能1.用戶定位用戶定位的完成主要是通過SIP協(xié)議的請求和應答消息來實現(xiàn)的。請求可以有INVITE請求,也可以是ACK等其他請求,當傳送的應答狀態(tài)碼為“200OK”時,就可以根據(jù)以上這些消息來確定哪些用戶代理或終端正在通信。SIP協(xié)議也支持URL,SIP重定向服務器還支持終端用戶的重定向功能。另外,其他的一些定位服務器也可以和SIP協(xié)議一起來用。2.會話能力的協(xié)商SIP請求消息中有一個OPTION(可選項),它的狀態(tài)碼是600-699。OPTION為SIP會話的雙方提供了可供他們選擇的參數(shù)、他們想要了解的會話屬性來進行會話的協(xié)商。3.會話管理這是SIP協(xié)議中很重要的一個功能。任何一個SIP的終端用戶都可以通過會話管理功能發(fā)起一個呼叫,同樣的話,如果他想把一些新的會話參與者加入會話或者結(jié)束這個會話,也是可以的。4.呼叫建立一般是SIP代理服務器通過100-199的狀態(tài)碼來完成振鈴,振鈴也就是“Ringing”,這只是一個臨時應答,但是這個臨時應答卻起到了連接主叫和被叫以及各種會話參數(shù)建立的功能。5.呼叫處理有時候被叫方并不在你所知道的那個位置,或是他現(xiàn)在忙,這時你要通過SIP的重定向功能來找到被叫方的新位置,用通過包含有Contact頭域的BYE請求消息來進行呼叫轉(zhuǎn)移。2.2SIP實體C/S模型,是互聯(lián)網(wǎng)中經(jīng)常采用的一種模型,也就是客戶端/服務器模型(Client/Server),SIP基于因特網(wǎng),自然也采用了這種結(jié)構。SIP的實體有兩種,即SIP用戶代理(UserAgent,UA)和SIP服務器(SIPServer)。用戶代理通常是用于發(fā)送和接收SIP的請求和應答消息,SIP電話是SIP用戶代理的一個比較常見的形式。一個UA包含一個UAC(UserAgentClient,用戶代理客戶端)和一個UAS(UserAgentServer,用戶代理服務器)。服務器是用于對客戶端提出的請求進行處理并提供應答。SIP服務器可以分為代理服務器(ProxyServer)、重定向服務器(RedirectionServer)和注冊服務器(Registrar),另外還有一個不屬于SIP服務器的范圍,但也很重要的定位服務器。2.2.1用戶代理SIP用戶代理也就是SIP的端系統(tǒng),常見的SIP用戶代理有多媒體手持設備、各種SIP電話(包括硬件或軟件實現(xiàn)的SIP話機)、具有能創(chuàng)建和管理SIP功能的移動電話、PC等。用戶代理有兩種類型,一種是用戶代理客戶端(簡稱UAC),另外一種就是用戶代理服務器(簡稱UAS)。這兩種類型在一個呼叫中起到不同的作用,分居于服務器的兩端,UAC發(fā)出呼叫的消息,UAS用于接收呼叫的應答消息。2.2.2重定向服務器重定向服務器用來對戶代理進行重新定位,產(chǎn)生的應答碼介于300-399之間,在所請求的用戶地址改變以后,它重定向到用戶的新的地址,并通過URL的方式把這個新地址放在應答消息3xx中返回出去。代理服務器可以發(fā)送SIP請求消息,但是重定向服務器不會,而且重定向服務器也不能接受通話請求。一般一個好的SIP服務器會包括代理服務器、重定向服務器和注冊服務器,這幾個服務器可以放到一個平臺上。而在通常情況下,通常說的術語SIP服務器是一般是指代理服務器,但有時也可以指重定向服務器,這并沒有按照它們基本行為的不同來區(qū)分。在實際的應用中,同一個SIP服務器根據(jù)具體情形,有時可以表現(xiàn)出重定向服務器的功能,但可能又同時作為代理服務器來用。舉個例子,某個人想要重定向所有會話邀請,一個SIP服務器就可以幫他實現(xiàn)這個要求,同時,這個服務器又可以使用代理功能去處理其他的請求。2.2.3注冊服務器SIP注冊服務器是接收注冊(Register)請求的服務器,用戶向注冊服務器發(fā)送了一個注冊請求,注冊服務器收到后,接收請求消息,注冊成功后返回一個最終應答“200OK”。同時它會把這個新注冊的用戶信息送到定位服務器中,以便日后需要的時候可以很方便地查找用戶的位置信息。注冊服務器從某種意義上說也可以是一個數(shù)據(jù)庫,所有用戶代理的位置信息都放在其中。2.2.4定位服務器在SIP的實體中并沒有定位服務器,而且SIP服務器和定位服務器之間也不像SIP實體之間那樣使用SIP協(xié)議,但它卻是SIP體系結(jié)構中很重要的一部分。注冊服務器把新注冊的用戶代理的信息傳到定位服務器中,定位服務器也可以和本地的數(shù)據(jù)庫相連,用來存儲這些用戶的注冊信息,包括位置、IP地址等信息,為用戶提供定位的功能。一些定位服務器使用的是輕量級目錄訪問協(xié)議(LightweightDirectoryAccessProtocol,LDPA)或MySQL和SIP服務器進行通信。SIP工作流程及注冊服務器配置和實現(xiàn)方法3.1SIP工作流程SIP定義了注冊/注銷、呼叫、重定向以及能力查詢四種工作過程,下面結(jié)合圖例說明幾種典型的呼叫處理。3.1.1注冊目的注冊就是將自己的IP登記給注冊服務器的過程,以便其他用戶通過一個稱為統(tǒng)一資源指標符URL的地址來訪問到。URL地址可在該用戶域的SIP代理中解析。每個用戶在啟動時,都要到注冊服務器注冊當前的SIPURL和IP地址的綁定,服務器最后把這些信息保存在位置服務器中。用戶發(fā)送REGISTER請求向服務器通知他們當前所處的位置,這樣,所有進入以SIP格式所表示的目的地址的請求都被代理處理,或重定向到用戶當前所在的IP地址。注冊過程為后續(xù)會話連接做準備。3.1.2注冊過程用戶代理要通過SIP進行通信,首先要在相應的服務器上登記注冊,如圖3-1所示:圖3-1SIP注冊流程注冊的具體流程如下:1)用戶代理Alice發(fā)送REGISTER請求給注冊服務器,請求登記注冊;2)注冊服務器通過在數(shù)據(jù)庫中查詢發(fā)現(xiàn)該用戶不合法,返回一個401錯誤(Unauthorized)給Alice,該錯誤響應中包含了令牌信息,用于用戶再次注冊的安全驗證;3)Alice再次發(fā)出注冊請求,這時用戶的賬號密碼等已被步驟2中的令牌作了加密處理;4)注冊服務器再次收到REGISTER請求,通過對用戶的加密信息進行解密后再到數(shù)據(jù)庫中進行合法驗證,若Alice的信息合法,則登記入庫,注冊成功。另外,注冊服務器會返回一個200OK響應(成功響應)給用戶代理Alice。3.1.3通過重定向服務器的呼叫圖3-2給出了兩個UA之間通過重定向服務器進行呼叫的具體流程:圖3-2通過重定向服務呼叫的具體流程具體的呼叫流程如下:1)用戶代理Alice發(fā)出會話邀請消息INVITE;2)服務器收到請求后查詢被叫方Bob的地址,然后發(fā)送302響應(MovedTemporarily)給Alice的代理,告知Bob的地址信息;3)Alice的代理收到響應后發(fā)送ACK向重定向服務器證實收到的響應消息;4)Alice依照302的Contact中指明的地址直接發(fā)送INVITE消息給代理Bob;5)Bob端振鈴的同時發(fā)送180響應給Alice;6)Bob用戶摘機,發(fā)送200OK響應給Alice;7)Alice收到響應后返回ACK進行確認;8)Alice和Bob會話連接成功,兩用戶之間可以進行媒體流的傳輸;9)Bob欲結(jié)束通話,于是發(fā)出BYE請求,提出終止通話的請求;10)Alice同意結(jié)束會話,返回一個200響應,此后通話結(jié)束。3.2注冊服務器配置及實現(xiàn)方式3.2.1注冊服務器SIP提供了一個搜索機制,如果一個用戶希望建立和其他用戶的會話,SIP必須查找能夠找到對方用戶正在使用的當前主機(hosts)。這個搜索機制經(jīng)常被SIP網(wǎng)絡基本元素使用,比如proxy服務器,重定向服務器等等。他們在接收、以及響應一個請求的時候,會基于這個用戶的位置信息來判定這個消息應該發(fā)送到哪里。要實現(xiàn)這個,SIP網(wǎng)絡部件考慮了一個抽象的服務:位置服務;位置服務是通過對特定地區(qū)提供地址綁定來實現(xiàn)的。一個proxy會從把輸入的URI轉(zhuǎn)換到用戶實際位置的位置服務中得到最終用戶的位置。注冊服務為特定地區(qū)的位置服務創(chuàng)建綁定關系,這個綁定關系是用來建立包含一個或者多個聯(lián)系地址的address-of-recordURI。因而,當那個地區(qū)的proxy接收到一個請求,這個請求的Request-URI和address-of-record的記錄匹配,那么這個proxy會轉(zhuǎn)發(fā)請求到這個address-of-record中登記的聯(lián)系地址中去。3.2.2注冊服務器實現(xiàn)方式注冊服務是為了實現(xiàn)位置的綁定,而這種綁定的目的在于最大可能的搜索到目標地址,從而成功轉(zhuǎn)發(fā)消息。怎么樣才能最大可能的完成搜索呢?這個就要求登記服務所覆蓋的區(qū)域和URI中的address-of-record所覆蓋的區(qū)域相同。注冊服務器通過兩種不同的注冊方式來實現(xiàn),用戶注冊方式和服務器注冊方式。3.2.3用戶注冊方式只有當對那個address-of-record的請求會被路由到這個區(qū)域的時候,登記這個address-of-record到這個區(qū)域的位置服務才是有意義的。因為每個proxy主要處理本域的UA,所以,發(fā)往這些UA的消息基本上都是要經(jīng)過他的proxy。這就要求UA必須向負責他的域的注冊服務器進行注冊。UA通過發(fā)送一個register消息到注冊服務器進行注冊,注冊信息存儲在位置服務。凡是發(fā)送到UA的proxy的消息,通過查詢UA的注冊信息得到UA地址,然后轉(zhuǎn)發(fā)消息。如圖3-3所示:圖3-3用戶注冊重定向服務器的設計以及在SDL上的實現(xiàn)4.1重定向服務器概述代理服務器負責請求消息的路由。某些體系結(jié)構下可能需要降低它們的負荷,并提高信令傳輸通道的魯棒性,這時可依靠請求重定向來達到目的。重定向即服務器用響應消息將某一請求的路由信息返回給客戶端,從而使服務器既起到了幫助選路的功能,又可以不必處理由該請求所導致的更多消息往來"當請求的發(fā)起者收到重定向響應后,它將基于收到的URL發(fā)送新的請求。重定向通過把URL信息從網(wǎng)絡的核心傳遞到邊緣而使網(wǎng)絡獲得了相當大的擴展升級能力。重定向服務器邏輯上由一個服務器端事務端的事務層和一個能夠訪問某種定位服務的事務用戶組成。定位服務器實質(zhì)上是一個數(shù)據(jù)庫,它包含單個URL到一個或者多個聯(lián)系地址之間的映射,通過這些聯(lián)系地址就能找到URL所對應的用戶或?qū)嶓w。重定向服務器自己不發(fā)送任何SIP請求。在收到除CANCEL以外的請求時,重定向服務器可以拒絕它,或者通過定位服務獲得一個可選地址列表并返回一個3XX最終響應。對格式正確的CANCEL請求,重定向應返回2XX最終響應。該響應將結(jié)束被取消請求的SIP事務。重定向服務器維護整個SIP事務的狀態(tài)??蛻舳藱z測重定向服務器之間發(fā)生的轉(zhuǎn)發(fā)循環(huán)。當重定向服務器返回某個請求的3XX響應時,它在Contact頭字段中裝入一個地址列表(含一個或多個可選地址)。Contact頭字段值中還可能提供“expires”參數(shù),以指名Contact數(shù)據(jù)的有效期。Contact頭字段包含了可供發(fā)送的URL,這些URL給出了新的目標位置或新的用戶名,或者只是簡單地指定了其它的傳輸參數(shù)。301(永久移動)或302(臨時移動)響應可能會給出與初始請求不一樣的目標位置和用戶名,同時又指定另外的傳輸參數(shù),比如一個不同的服務器地址或多播地址,或者將SIP消息的傳輸方式從UDP改為TCP或者從TCP改為UDP,等等。然而,重定向服務器決不能將請求重定向到一個與請求的Request-URI相同的URL地址。如果重定向的目的地URL所指的并非當前重定向服務器,它可能將請求向重定向目的地轉(zhuǎn)發(fā),或用一個404(未找到)響應來拒絕請求。重定向服務可以歸結(jié)成為訪問一個絕對位置服務來構建新的目的地址的形式,該服務是從SIP注冊服務器創(chuàng)建的位置服務獲得信息。通過Request-URI訪問注冊服務器中的注冊信息,找到Request-URI對應的Contact列表,把Contact列表中的地址作為目標地址集合。在Request-URI的區(qū)域并非本proxy負責的區(qū)域的情況下,由于proxy之間存在注冊關系,仍然可以嘗試重定向服務,如果失敗才把Request-URI放在目標集合中,并且作為唯一的一個目標URI。在Request-URI的區(qū)域是本proxy負責的區(qū)域的情況下,如果Request-URI沒有提供足夠的信息來讓proxy產(chǎn)生目的地集和,它應當返回一個485(Ambiguous)應答。這個應答應當包含一個Contact頭域,包含一些應當嘗試的新位置。重定向服務流程如圖4-1所示。圖4-1重定向服務流程4.2重定向服務器軟件設計4.2.1OSIP開發(fā)庫OSIP是按照RFC3261(SIP)和RFC2327(SDP)標準,并使用標準c編寫的一個SIP協(xié)議棧。它是一個公開源碼的免費協(xié)議棧。OSIP協(xié)議棧結(jié)構簡單而小巧,它并不提供高層的SIP會話控制的API,它主要提供一些解析SIP/SDP消息的API和事務處理的狀態(tài)機。OSIP的優(yōu)點:·OSIP沒有給開發(fā)者限定在特定的某個執(zhí)行模式下,能夠使開發(fā)者選定一個比較適合自己的模式;·OSIP的各個模塊是相對清晰、獨立的,因而去掉某個模塊時也比較容易;·OSIP的解析器提供了較為完善的API,包含了消息的構造、修改和產(chǎn)生等;OSIP的缺點:·OSIP目前版本源代碼結(jié)構、定義比較混亂,并且缺乏文檔,閱讀比較困難;該問題將在OSIP2中得到改善;·OSIP不提供任何快速產(chǎn)生請求消息和響應消息的方法,所有請求消息和響應消息的形成必須調(diào)用一組sipmessageAPI來手動組裝完成;·由于OSIP結(jié)構簡單,外圍相關模塊需要用戶自己開發(fā),如SIP消息的接收和發(fā)送,RTP/RTCP的語音數(shù)據(jù)的處理等.4.3.2OSIP結(jié)構分析OSIP主要包括三大部分的內(nèi)容:狀態(tài)機模塊(FiniteStateMachines)、解析器模塊和工具模塊。其結(jié)構如圖4-2圖所示。圖4-2SIP結(jié)構圖4.2.2SIP消息解析模塊解析器模塊主要有SIP解析器,URL解析器和SDP解析器三種。SIP解析器可以處理SIP起始行,SIP頭域(如TO、FROM、CSEQ、VIA等),可以處理SIP消息體和狀態(tài)碼,其流程如圖4-3所示。圖4-3消息解析4.3SIP重定向服務器在sdl_ttcn上的仿真實現(xiàn)4.3.1重定向呼叫SIP系統(tǒng)支持重定向,目前對重定向的使用主要包括完成呼叫轉(zhuǎn)移業(yè)務和完成路由尋址或載荷分擔應用兩個方面。對于利用重定向完成路由尋址或載荷分擔一般應用于組網(wǎng)環(huán)境下。此時網(wǎng)絡中存在類似于路由查詢的服務器,當此服務器接收到請求后,返回路由地址,從而完成路由查詢或載荷分擔功能。對于完成呼叫轉(zhuǎn)移類業(yè)務,一般是用戶的具體業(yè)務需求使用重定向功能。例如,用戶可以定義在某種條件下(對于某一時刻或某人的呼叫)將呼叫路由到其他路徑。這種業(yè)務類似于目前我們所使用的呼叫轉(zhuǎn)移業(yè)務。該業(yè)務可以由網(wǎng)絡啟動也可以由用戶終端啟動。用戶終端啟動重定向的呼叫模型如圖4-4所示.該重定向行為由SIP終端發(fā)起。假設用戶C當前正在開會或其他重要事務,在自己的SIP終端上設置了條件屏蔽,在這一期間,只有重要客戶的呼叫才能夠接續(xù)進來,其他用戶的呼叫將會接續(xù)到新的地址或自己的秘書處。在此期間,當用戶A(用戶A為普通用戶)呼叫用戶C時,用戶C的SIP話機將會發(fā)送重定向(3**消息),告知網(wǎng)絡服務器(軟交換機2)將此呼叫接續(xù)到新的地址、網(wǎng)絡服務器收到重定向消息后,根據(jù)3**消息中的內(nèi)容,將呼叫路由到新的地址。圖4-4重定向的呼叫模型4.3.2SIP重定向服務器模式在SDL上的各類截圖圖4-5sip重定向服務器模式圖此次仿真是假設已經(jīng)做好注冊服務的基礎上進行的仿真測試。注冊服務器里的位置服務器LS與PS服務器合成為Proxy服務器。并假定在進行位置查詢過程在proxy服務器內(nèi)自行進行,不再另行建立單獨的LS服務器。圖4-6sip重定向服務器模式系統(tǒng)圖圖4-6為SIP重定向服務器模式的系統(tǒng)圖,包括3個功能模塊:一個發(fā)起者UA1、一個原地址接收者UA2、一個新地址的接受者UA3、以及集成了代理服務器和位置服務器的Proxy服務器。以及各類信號:u_ip、u_op與SIP信號pac、pac2以及重定向信號pac3。圖4-7UA1功能塊圖圖4-7為UA1功能塊圖里包括進入主叫用戶向進程ps_ua1發(fā)出的信號u_ip、進程ps_ua1應答信號u_op。進程ps_ua1向服務器發(fā)起的信號pac以及服務器的應答信號pac2。圖4-8UA3功能塊圖圖4-8為UA3功能塊圖,里面包括包括由proxy服務器發(fā)送的pac、u_ip信號以及其應答的重定向信號pac3和u_op。圖4-9UA2功能塊圖圖4-9為UA2功能塊圖,里面包括進入進程ps_ua2的信號pac、進程ps_ua2應答信號pac2。進程ps_ua2向被叫用戶發(fā)送的信號u_op以及被叫用戶的應答信號u_ip。圖4-10proxy服務器功能塊圖圖4-10中proxy服務器功能塊圖,里面包括由主叫用戶代理向進程proxy_ps發(fā)送的pac信號以及應答pac2信號,通過的信道是cn_ua1;被叫用戶原有地址代理接收的由進程proxy_ps發(fā)送的pac、u_ip信號以及其返回的重定向信號pac3,通過信道是cn_ua3;進程proxy_ps向用戶新地址代理發(fā)送的pac信號以及返回的pac2信號,通過信道是cn_ua2。圖4-11processps_ua1進程塊圖圖4-11為ps_ua1進程塊圖,ps_ua1由初始到idle狀態(tài),idle狀態(tài)下又u_ip信號的進入講50賦值給sip!code再發(fā)出sip信號pac,且狀態(tài)由idle變成invite_sent。圖4-12processps_ua3進程塊圖圖4-12為ps_ua3進程圖,由開始到idle狀態(tài)收到u_ip的入信號,賦值50給sip!code。但由于是不能正常接入呼叫所以發(fā)送重定向sip信號pac3并狀態(tài)轉(zhuǎn)為invite_sent。圖4-13processps_ua2進程塊圖圖4-13為重定向后新的用戶代理ps_ua2進程圖,包括接收到主叫用戶的呼叫信號、被叫用戶收到該信號進行的回應、振鈴時常等。圖4-14processproxy_ps進程塊圖圖4-14為proxy服務器進程塊圖,包括對主叫用戶的呼叫信號處理,被叫用戶原有地址的呼叫以及返回的重定向信號處理,被叫用戶新地址的呼叫以及新地址的呼叫連接。總結(jié)與展望5.1總結(jié)SIP協(xié)議自制定到不斷完善,其簡單、靈活、可擴展性強等優(yōu)點吸引了眾多開發(fā)者和商業(yè)界的關注,基于SIP協(xié)議的相關產(chǎn)品和業(yè)務被不斷研究和開發(fā),SIP在未來的網(wǎng)絡和通信領域中都將占有非常重要的位置,其市場前景和發(fā)展空間都非常大。本文在查閱了sip重定向服務器的相關資料后,深入研究了SIP協(xié)議的相關語法和規(guī)范等,實現(xiàn)出基于SIP協(xié)議的重定向服務器的設計,主要進行SIP注冊和其重定向服務器的實現(xiàn)。5.2技術展望5.2.1辦公OA系統(tǒng)辦公OA系統(tǒng)中的郵件系統(tǒng)傳送以及辦公內(nèi)部的呼叫建立,經(jīng)常會由于被叫方的不方便接收或接聽而導致文件信息的流失。引入重定向服務器后,將改變以往單一的呼叫通道,而達到多通道的備用準備從而盡最大可能保證信息的無丟失性。5.2.2呼叫中心系統(tǒng)呼叫中心系統(tǒng),尤其是24小時無間斷的呼叫中心,重定向的使用尤為必要和重要。重定向的準確與否直接影響呼叫中心工作的質(zhì)量。由之前課程所學內(nèi)容,現(xiàn)對公交系統(tǒng)呼叫中心引入重定向系統(tǒng)作如下展望與設計:正常呼叫中心工作時間(8:00-18:00)以外,對于每輛發(fā)車都進行SIP注冊,將位置信息錄入進行位置服務器LS上。8:00-18:00以外的呼叫接入,如是對公交車進行呼叫,直接由代理服務器通過位置服務器進行重定向轉(zhuǎn)接。8:00-18:00以為的呼叫接入,如若是對呼叫中心進行呼叫,由代理服務器重定向到移動呼叫中心處理端,進行呼叫處理。5.2.3重定向攻擊防范通話劫持攻擊雖然原理比較簡單,但很實用。對于絕大部分常用的客戶端和服務器,存在通話劫持攻擊的漏洞。因為這種攻擊方法,并不要求客戶端支持呼叫轉(zhuǎn)移功能,只要服務器能對302報文產(chǎn)生正確的回應即可。為了防御該種攻擊,可以采取如下措施:1.改進認證方案。攻擊者冒充合法用戶,使用真實的參數(shù)非法使用網(wǎng)絡。認證機制提供了驗證用戶合法性的方法。解決辦法是在302報文中,加入認證字段,并且,在它發(fā)送到服務器端時,對其進行校驗,如果response字段不正確,就不接受該請求。2.傳輸層安

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論