【正文】
x 年出來(lái)的,即RFC3261, SIP 的理論基礎(chǔ)一旦建立,就相繼出現(xiàn)看眾多基于 SIP 協(xié)議的服務(wù)和產(chǎn)品。不過(guò) SIPv1 已經(jīng)和后來(lái)的 SIP 一樣使用了會(huì)話描述協(xié)議( SDP, Session Description Protocol), SIPv1使用的傳輸協(xié)議是基于 UDP 的,編碼方式已經(jīng)是基于文本的了, SIPv1 協(xié)議的功能相對(duì)簡(jiǎn)單,只是用來(lái)處理會(huì)話的建立。 IETF在 20xx 年又發(fā)布了新的規(guī)范,即 RFC3261,并在以后不斷地進(jìn)行了完善。 2. 獨(dú)立的傳輸層 SIP 協(xié)議處于應(yīng)用層,獨(dú)立于底層協(xié)議,自然而然的也獨(dú)立于傳輸層,對(duì)傳輸層沒(méi)有多少限制。 6. 協(xié)議格式清楚,維護(hù)方便 SIP 協(xié)議基于比較簡(jiǎn)單的文本格式,這樣下來(lái)協(xié)議的可讀性很強(qiáng),在出現(xiàn)錯(cuò)誤時(shí),可以 很方便地對(duì)錯(cuò)誤進(jìn)行分析,維護(hù)起來(lái)比較方便。任何一個(gè) SIP 的終端用戶(hù)都可以通過(guò)會(huì)話管理功能發(fā)起一個(gè)呼叫,同樣的話,如果他想把一些新的會(huì)話參與者加入會(huì)話或者結(jié)束這個(gè)會(huì)話,也是可以的。 SIP 服務(wù)器可以分為代理服務(wù)器( Proxy Server)、重定向服務(wù)器(Redirection Server)和注冊(cè)服務(wù)器( Registrar),另外還有一個(gè)不屬于 SIP 服務(wù)器的范圍,但也很重要的定位服務(wù)器。在實(shí)際的應(yīng)用中,同一個(gè) SIP 服務(wù)器根據(jù)具體情形,有時(shí)可以表現(xiàn)出重定向服務(wù)器的功能,但可能又同時(shí)作為代理服務(wù)器來(lái)用。 第 8 頁(yè) 第三章 SIP 工作流程及注冊(cè)服務(wù)器配置和實(shí)現(xiàn)方法 SIP 工作流程 SIP 定義了注冊(cè) /注銷(xiāo)、呼叫、重定向以及能力查詢(xún)四種工作過(guò)程,下面結(jié)合圖例說(shuō)明幾種典型的呼叫處理。 第 9 頁(yè) 通過(guò)重定向服務(wù)器的呼叫 圖 32 給出了兩個(gè) UA之間通過(guò)重定向服務(wù)器進(jìn)行呼叫的具體流程: 用 戶(hù) 代 理 A l i c e 重 定 向 服 務(wù) 器 用 戶(hù) 代 理 B o bI N V I T E ( 1 )3 0 2 ( 2 )A C K ( 3 )I N V I T E ( 4 )1 8 0 R I N G I N G ( 5 )2 0 0 O K ( 6 )A C K ( 7 )M E D I A ( 8 )B Y E ( 9 )2 0 0 O K ( 1 0 ) 圖 32 通過(guò)重定向服務(wù)呼叫的具體流程 具體的呼叫流程如下: 1) 用戶(hù)代理 Alice 發(fā)出會(huì)話邀請(qǐng)消息 INVITE; 2) 服務(wù)器收到請(qǐng)求后查詢(xún)被叫方 Bob 的地址,然后發(fā)送 302 響應(yīng) (Moved Temporarily)給 Alice 的代理,告知 Bob 的地址信息; 3) Alice 的代理收到響應(yīng)后發(fā)送 ACK 向重定向服務(wù)器證實(shí)收到的響應(yīng)消息; 4) Alice 依照 302 的 Contact 中指明的地址直接發(fā)送 INVITE 消息給代理 Bob; 5) Bob 端振鈴的同時(shí)發(fā)送 180 響應(yīng)給 Alice; 6) Bob 用戶(hù)摘機(jī),發(fā)送 200 OK 響應(yīng)給 Alice; 7) Alice 收到響應(yīng)后返回 ACK 進(jìn)行確認(rèn); 8) Alice 和 Bob 會(huì)話連接成功,兩用戶(hù)之間可以進(jìn)行媒體流的傳輸; 9) Bob 欲結(jié)束通話,于是發(fā)出 BYE 請(qǐng)求,提出終止通話的請(qǐng)求; 10) Alice 同意結(jié)束會(huì)話,返回一個(gè) 200 響應(yīng),此后通話結(jié)束。 注冊(cè)服務(wù)器實(shí)現(xiàn)方式 注冊(cè)服務(wù)是為了實(shí)現(xiàn)位置的綁定,而這種綁定的目的在于最大可能的搜索到目標(biāo)地址,從而 成功轉(zhuǎn)發(fā)消息。如圖 33所示: 注 冊(cè) 服 務(wù) 器t h e r e . c o m位 置 服 務(wù)P r o x yS i p . c o m . t h e r eU A 2U A 1U A 2 U A 12 . 存 儲(chǔ)4 . 查 詢(xún)6 . I N V I T E5 . 響 應(yīng)m ql i s a3 . I N V I T Em q t h e r e . c o m1 . R E G I S T E R 圖 33 用戶(hù)注冊(cè) 第 11 頁(yè) 第四章 重定向服務(wù)器 的設(shè)計(jì)以及在 SDL 上的實(shí)現(xiàn) 重定向服務(wù)器概述 代理服務(wù)器負(fù)責(zé)請(qǐng)求消息的路由。對(duì)格式正確的 CANCEL 請(qǐng)求 ,重定向應(yīng)返回 2XX 最終響應(yīng)。 然而 ,重定向服務(wù)器決不能將請(qǐng)求重定向到一個(gè)與請(qǐng)求的 Request URI 相同的 URL地址。 第 12 頁(yè) 代 理 配 置 中 是 否有 r e q u e s t U R I 的 域判 斷 該 域注 冊(cè) 沒(méi) 有無(wú)取 得 請(qǐng) 求 t o 域 的 c o n t a c t s作 為 t a r g e t U R I L i s tt a r g e t U R I L i s t是 否 為 空有 狀 態(tài) 地 轉(zhuǎn) 發(fā) 請(qǐng) 求判 斷 請(qǐng) 求 地r e q u e s t U R I是 否 注 冊(cè)t a r g e t U R I = r e q u e s t U R I返 回出 錯(cuò)響 應(yīng)t a r g e t U R I =c o n t a c t無(wú) 狀 態(tài) 轉(zhuǎn) 發(fā) 請(qǐng) 求有否已 注 冊(cè)否是 空否是 圖 41 重定向服務(wù)流程 重定向服務(wù)器軟件設(shè) 計(jì) OSIP 開(kāi)發(fā)庫(kù) OSIP是按照 RFC3261(SIP)和 RFC2327(SDP)標(biāo)準(zhǔn) ,并使用標(biāo)準(zhǔn) c編寫(xiě)的一個(gè) SIP協(xié)議棧。 OSIP 的解析器提供了較 為完善的 API,包含了消息的構(gòu)造 、 修改和產(chǎn)生等 。其結(jié)構(gòu)如圖 42圖所示。這種業(yè)務(wù)類(lèi)似于目前我們所使用的 呼叫轉(zhuǎn)移業(yè)務(wù)。 圖 46 sip 重定向服務(wù)器模式系統(tǒng)圖 圖 46為 SIP 重定向服務(wù)器模式 的系統(tǒng)圖,包括 3 個(gè)功能模塊:一個(gè)發(fā)起者 UA一個(gè)原地址接收者 UA一個(gè)新地址的接受者 UA以及集成了代理服務(wù)器和位置服務(wù)器的 Proxy 服務(wù)器。 圖 411 process ps_ua1 進(jìn)程塊圖 圖 411 為 ps_ua1 進(jìn)程塊圖, ps_ua1 由初始到 idle 狀態(tài), idle 狀態(tài)下又 u_ip 信號(hào)的進(jìn)入講 50 賦值給 sip! code 再發(fā)出 sip 信號(hào) pac,且狀態(tài)由 idle 變成 invite_sent。引入重定向服務(wù)器后,將改變以往單一的呼叫通道,而達(dá)到多通道的備用準(zhǔn)備從而盡最大可能保證信息的無(wú)丟失性。因?yàn)檫@種攻擊方法,并不要求客戶(hù)端支持呼叫轉(zhuǎn)移功能,只要服務(wù)器能對(duì) 302報(bào)文產(chǎn)生正確的回應(yīng)即可。 TLS客戶(hù)端 (也是 TCP 的客戶(hù)端 )在 TCP 鏈接建立之后,發(fā)出一個(gè) ClientHello來(lái)發(fā)起握手,這個(gè)消息里面包含了自己可實(shí)現(xiàn)的算法列表和其他一些需要的消息, TLS 的服務(wù)器端會(huì)回應(yīng)一個(gè) ServerHello,這里面確定了這次通信所需要的算法,然后發(fā)過(guò)去自己的證書(shū) (里面包含了身份和自己的公鑰 )。 她使得我在學(xué)術(shù)研究和工作方法上受到了嚴(yán)格的訓(xùn)練,在專(zhuān)業(yè)知識(shí)的廣度和深度上都有較大 的收獲。大家互幫互助,營(yíng)造了一個(gè)良好的學(xué)習(xí) 氛圍。感謝你們對(duì)我論文的支持,在此我表示衷心的感謝。她和藹可親,在我 學(xué)習(xí)過(guò)程中 給予了我 很多 建設(shè)性的意見(jiàn),使我把握了正確 的 方向。 3xx 報(bào)文。攻擊者冒充合法用戶(hù),使用真實(shí)的參數(shù)非法使用網(wǎng)絡(luò)。重定向的準(zhǔn)確與否直接影響呼叫中心工作的質(zhì)量 。但由于是不能正常接入呼叫所以發(fā)送重定向 sip 信號(hào) pac3 并狀態(tài)轉(zhuǎn)為invite_sent。 第 16 頁(yè) 圖 47 UA1 功能塊圖 圖 47為 UA1 功能塊圖里包括進(jìn)入 主叫用戶(hù)向 進(jìn)程 ps_ua1 發(fā)出的 信號(hào) u_ip、進(jìn)程ps_ua1 應(yīng)答信號(hào) u_op。 用戶(hù)終端啟動(dòng)重定向的呼叫模型如圖 44 所示 .該重定向行為由 SIP 終端發(fā)起。 SIP 解析器可以處理SIP 起始行 ,SIP 頭域 (如 TO、 FROM、 CSEQ、 VIA 等 ),可以處理 SIP 消息體和狀態(tài)碼 ,其流程如圖 43所示。 OSIP 目前版本源代碼結(jié)構(gòu) 、 定義比較混亂 ,并且缺乏文檔 ,閱讀比較困難 。 OSIP 協(xié)議棧結(jié)構(gòu)簡(jiǎn)單而小巧 ,它并不提供高層的SIP 會(huì)話控制的 API,它主要提供一些解析 SIP/SDP 消息的 API 和事務(wù)處理的狀態(tài)機(jī)。 重定向服務(wù)可以歸結(jié)成為訪問(wèn)一個(gè)絕對(duì)位置服務(wù)來(lái)構(gòu)建新的目的地址的形式,該服務(wù)是從 SIP 注冊(cè)服務(wù)器創(chuàng)建的位置服務(wù)獲得信息。重定向服務(wù)器維護(hù)整個(gè) SIP 事務(wù)的狀態(tài)。重定向即服務(wù)器用響應(yīng)消息將某一請(qǐng)求的路由信息返回給客戶(hù)端 ,從而使服務(wù)器既起到了幫助選路的功能 ,又可以不必處理由該請(qǐng)求所導(dǎo)致的更多消息往來(lái) 當(dāng)請(qǐng)求的發(fā)起者收到重定向響應(yīng)后 ,它將基于收到的 URL 發(fā)送新的請(qǐng)求。注冊(cè)服務(wù)器通過(guò)兩種不同的注冊(cè)方式來(lái)實(shí)現(xiàn),用戶(hù)注冊(cè)方式和服務(wù)器注冊(cè)方式。這個(gè)搜索機(jī)制經(jīng)常被 SIP 網(wǎng)絡(luò)基本元素使用,比如 proxy 服務(wù)器,重定向服務(wù)器等等。 URL 地址可在該用戶(hù)域的 SIP 代理中解析。 第 7 頁(yè)