




已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
http SIP協(xié)議及其在視頻監(jiān)控系統(tǒng)中的應(yīng)用 SIP協(xié)議 什么是SIP SIP的設(shè)計(jì)原則SIP的架構(gòu)SIP的層次SIP的主要機(jī)制SIP的鑒權(quán)SIP的消息格式SIP的主要流程SIP事務(wù)SIP在視頻監(jiān)控系統(tǒng)中的應(yīng)用 什么是SIP SIP是一個(gè)應(yīng)用層的信令控制協(xié)議 用于創(chuàng)建 修改和釋放一個(gè)或多個(gè)參與者的會(huì)話 SIP可以邀請(qǐng)參與者加入一個(gè)已經(jīng)存在的一個(gè)會(huì)話中 例如一個(gè)多播會(huì)議 SIP可以動(dòng)態(tài)的在會(huì)話中添加和刪除媒體數(shù)據(jù) SIP支持名字映射和重定向服務(wù) 什么是SIP SIP的會(huì)話控制功能會(huì)話維護(hù)會(huì)話協(xié)商內(nèi)容不作任何限制 比如終端的能力 終端的數(shù)據(jù)端口號(hào)等等 可以使用SDP或者其他的協(xié)議進(jìn)行協(xié)商 這一點(diǎn)使得SIP有很好的擴(kuò)展性 會(huì)話中可以承載的數(shù)據(jù)語(yǔ)音 視頻即時(shí)消息其他的自定義數(shù)據(jù)游戲SIP的名字映射功能SIP使用SIP邏輯地址來(lái)映射實(shí)際地址 這樣用戶發(fā)起呼叫時(shí) 不需要知道目標(biāo)的真正地址 就可以達(dá)到呼叫的目的 這樣可以很方便實(shí)現(xiàn)終端的移動(dòng)性 SIP協(xié)議 什么是SIP SIP的設(shè)計(jì)原則SIP的架構(gòu)SIP的層次SIP的主要機(jī)制SIP的鑒權(quán)SIP的消息格式SIP的主要流程SIP事務(wù)SIP在視頻監(jiān)控系統(tǒng)中的應(yīng)用 SIP的設(shè)計(jì)原則 模仿HTTP1 1的風(fēng)格重用HTTP編碼 所有消息基于文本 便于開發(fā) 使用UTF 8字符集重用Internet尋址方案 使用RFC2369中定義的URI和URL格式 可以非常的靈活的和其他遵循這一定義的協(xié)議協(xié)作 對(duì)底層傳輸協(xié)議不做假設(shè)可以使用于多種協(xié)議 如UDP TCP TLS SCTP等等 雖然對(duì)底層傳輸協(xié)議不做假設(shè) 但是需要注意的是 它仍然將底層協(xié)議分為兩類 一類為不可靠的數(shù)據(jù)報(bào)傳輸協(xié)議 unreliabledatagramtransports 一類為流式的傳輸協(xié)議 stream orientedtransports 區(qū)分這兩類協(xié)議的主要目的在于 在是否重傳消息時(shí)需要區(qū)別對(duì)待 最常用的協(xié)議為UDP協(xié)議 SIP的設(shè)計(jì)原則 邏輯地址和聯(lián)系地址相分離邏輯地址用于標(biāo)志用戶聯(lián)系地址用于表明用戶當(dāng)前的位置 即當(dāng)前的實(shí)際地址 SIP協(xié)議 什么是SIP SIP的設(shè)計(jì)原則SIP的架構(gòu)SIP的層次SIP的主要機(jī)制SIP的鑒權(quán)SIP的消息格式SIP的主要流程SIP事務(wù)SIP在視頻監(jiān)控系統(tǒng)中的應(yīng)用 SIP的架構(gòu) 采用客戶端 服務(wù)器 C S 架構(gòu)主要單元用戶代理 UserAgent SIP服務(wù)器 Servers 代理服務(wù)器 Proxy 重定向服務(wù)器 Redirector 注冊(cè)服務(wù)器 Registar SIP的架構(gòu) 代理服務(wù)器 Proxy 用來(lái)接收請(qǐng)求 并尋找請(qǐng)求傳送的下一條地址 轉(zhuǎn)發(fā)請(qǐng)求 可以分為有狀態(tài)的和無(wú)狀態(tài)的 有狀態(tài)的代理服務(wù)器記住它接收的請(qǐng)求 回送的響應(yīng)以及它轉(zhuǎn)出的請(qǐng)求 無(wú)狀態(tài)的代理服務(wù)器則不記錄任何請(qǐng)求相關(guān)的信息 重定向服務(wù)器 Redirector 不轉(zhuǎn)發(fā)請(qǐng)求 而是向請(qǐng)求發(fā)出者發(fā)送重定向響應(yīng) 指示被呼叫方的地址 注冊(cè)服務(wù)器 Registar 完成用戶代理的注冊(cè)和注銷功能接收管轄范圍內(nèi)的用戶代理的注冊(cè)請(qǐng)求 并將用戶代理的真實(shí)地址記錄在定位服務(wù)器中 SIP協(xié)議 什么是SIP SIP的設(shè)計(jì)原則SIP的架構(gòu)SIP的層次SIP的主要機(jī)制SIP的鑒權(quán)SIP的消息格式SIP的主要流程SIP事務(wù)SIP在視頻監(jiān)控系統(tǒng)中的應(yīng)用 SIP的層次 語(yǔ)法和編碼層這層定義了SIP的語(yǔ)法和編碼格式SIP使用AugmentedBNF來(lái)定義所有的SIP消息格式SIP URI sip userinfo hostporturi parameters headers SIPS URI sips userinfo hostporturi parameters headers userinfo user telephone subscriber password user 1 unreserved escaped user unreserved user unreserved password unreserved escaped hostport host port 傳輸層 TransportLayer 這需要和SIP使用的何種傳輸協(xié)議相區(qū)分 定義如何選擇底層傳輸協(xié)議 如果數(shù)據(jù)包太大 需要使用可靠的流式協(xié)議 如TCP 定義在不同的傳輸協(xié)議下 如何發(fā)送請(qǐng)求和接收響應(yīng) SIP的層次 事務(wù)層 TransactionLayer 這層是SIP協(xié)議的核心層次 事務(wù)是SIP協(xié)議的核心元素 一個(gè)事務(wù)是由客戶端事務(wù)發(fā)送給服務(wù)器事務(wù)的請(qǐng)求 和對(duì)應(yīng)該請(qǐng)求的服務(wù)器事務(wù)發(fā)送回客戶機(jī)事務(wù)的所有響應(yīng)的組合 事務(wù)分為客戶端事務(wù) 和服務(wù)端事務(wù) 每一個(gè)事務(wù)都包含多個(gè)狀態(tài) 這些狀態(tài)之間的跳轉(zhuǎn)可以使用一個(gè)有限狀態(tài)機(jī)來(lái)描述 事務(wù)主要用來(lái)匹配請(qǐng)求和響應(yīng) 處理應(yīng)用層重傳 盡力的保證消息的可靠傳輸 維護(hù)應(yīng)用層超時(shí) 用戶代理 有狀態(tài)的代理服務(wù)器以及注冊(cè)服務(wù)器都包含事務(wù)層 無(wú)狀態(tài)的代理服務(wù)器不包含事務(wù)層 SIP的層次 事務(wù)用戶層 TU 事務(wù)用戶層工作在事務(wù)層之上 無(wú)狀態(tài)的代理服務(wù)器不包含事務(wù)層 所以也不包含事務(wù)用戶層 其他的SIP實(shí)體都包含事務(wù)用戶層 當(dāng)TU想要發(fā)送一個(gè)SIP請(qǐng)求時(shí) 創(chuàng)建一個(gè)客戶端事務(wù) 當(dāng)對(duì)應(yīng)的請(qǐng)求到達(dá)服務(wù)器 服務(wù)器產(chǎn)生一個(gè)對(duì)應(yīng)的服務(wù)端事務(wù) TU也可以產(chǎn)生一個(gè)CANCEL事務(wù)來(lái)取消一個(gè)客戶端事務(wù) CANCEL事務(wù)通過(guò)SIP的CANCEL消息來(lái)實(shí)現(xiàn) 它是一個(gè)單獨(dú)的事務(wù) 但它的目標(biāo)是被取消的事務(wù) 如果被取消的事務(wù)已經(jīng)完成了 那么這個(gè)CANCEL事務(wù)就完全不起作用 就因?yàn)檫@個(gè)原因 通常只有針對(duì)客戶端的INVITE事務(wù)使用CANCEL事務(wù) 因?yàn)槠渌氖聞?wù)在正常情況下存在的時(shí)間都很短 而INVITE事務(wù)一般會(huì)牽涉到用戶的輸入 持續(xù)時(shí)間比較長(zhǎng) SIP協(xié)議 什么是SIP SIP的設(shè)計(jì)原則SIP的架構(gòu)SIP的層次SIP的主要機(jī)制SIP的鑒權(quán)SIP的消息格式SIP的主要流程SIP事務(wù)SIP在視頻監(jiān)控系統(tǒng)中的應(yīng)用 SIP的主要機(jī)制 地址分離機(jī)制SIP協(xié)議采用邏輯地址和聯(lián)系地址相分離的機(jī)制 邏輯地址用來(lái)標(biāo)識(shí)用戶 聯(lián)系地址用來(lái)表明用戶的當(dāng)前位置一個(gè)地址可以對(duì)應(yīng)多個(gè)聯(lián)系地址 聯(lián)系地址的選擇機(jī)制可以通過(guò)依據(jù)權(quán)重 或者并發(fā)的模式 注銷注冊(cè)機(jī)制這個(gè)機(jī)制用來(lái)實(shí)現(xiàn)邏輯地址向聯(lián)系地址的綁定 用戶通過(guò)注冊(cè)和注銷來(lái)實(shí)現(xiàn)這種綁定 告知當(dāng)前的實(shí)際位置 通過(guò)REGISTER命令來(lái)實(shí)現(xiàn)這個(gè)機(jī)制 目標(biāo)更新機(jī)制在會(huì)話中主動(dòng)通知另一方 聯(lián)系地址的改變 SIP的主要機(jī)制 呼叫重定向機(jī)制當(dāng)用戶呼叫一個(gè)邏輯地址時(shí) 重定向服務(wù)器使用注冊(cè)注銷機(jī)制的結(jié)果 將邏輯地址翻譯成聯(lián)系地址 并將這一結(jié)果通知用戶 由用戶使用聯(lián)系地址重新發(fā)起呼叫呼叫協(xié)商機(jī)制通過(guò)會(huì)話建立過(guò)程中雙方攜帶的信息來(lái)確定雙方的能力 需要傳輸?shù)拿襟w等等 可以在會(huì)話中增加 減少以及改變會(huì)話中傳送的媒體 路由機(jī)制可以由客戶端選擇所需要經(jīng)過(guò)的路由節(jié)點(diǎn) SIP協(xié)議 什么是SIP SIP的設(shè)計(jì)原則SIP的架構(gòu)SIP的層次SIP的主要機(jī)制SIP的鑒權(quán)SIP的消息格式SIP的主要流程SIP事務(wù)SIP在視頻監(jiān)控系統(tǒng)中的應(yīng)用 SIP的鑒權(quán) 采用和HTTP非常接近的認(rèn)證方式 用RFC2617 HTTPBasicAndDigestAccessAuthentication中基于挑戰(zhàn)響應(yīng)的協(xié)議過(guò)程和消息結(jié)構(gòu) 禁止了不安全的 Basic 認(rèn)證 使用 Digest 認(rèn)證方式 基于用戶名和密碼的認(rèn)證方式在網(wǎng)絡(luò)中不傳遞密碼明文服務(wù)器產(chǎn)生一個(gè)隨機(jī)數(shù)nonce給客戶端客戶端依據(jù)nonce加上密碼以及一些相關(guān)信息使用MD5算出一個(gè)hash值 將這個(gè)hash值傳遞回服務(wù)器 因?yàn)镸D5算法在不可逆上的安全性 保證就算被不懷好意者截取以后 也很難得到真正的密碼 服務(wù)器根據(jù)同樣的算法計(jì)算出MD5hash值 將這個(gè)結(jié)果和客戶端傳遞來(lái)的值作比較 匹配則認(rèn)證通過(guò) 一般使用在注冊(cè)和注銷過(guò)程中 SIP協(xié)議 什么是SIP SIP的設(shè)計(jì)原則SIP的架構(gòu)SIP的層次SIP的主要機(jī)制SIP的鑒權(quán)SIP的消息格式SIP的主要流程SIP事務(wù)SIP在視頻監(jiān)控系統(tǒng)中的應(yīng)用 SIP消息格式 一個(gè)SIP請(qǐng)求消息的例子INVITEsip 180062000265273827 10 18 34 73 5360SIP 2 0Route Via SIP 2 0 UDP10 18 34 104 5060 rport branch z9hG4bK4009098743From tag 1419225769To Call ID 829237863 10 18 34 104CSeq 20INVITEContact Max Forwards 5User Agent mediasip 2 0Subject MediaSipExpires 120Allow INVITE ACK UPDATE INFO CANCEL BYE OPTIONS REFER SUBSCRIBE NOTIFY MESSAGEContent Type application sdpContent Length 206 SIP消息格式 一個(gè)SIP消息回應(yīng)的例子SIP 2 0200OKRecord Route Via SIP 2 0 UDP10 18 34 104 5060 rport 5060 branch z9hG4bK4009098743From tag 1419225769To tag 1745846615Call ID 829237863 10 18 34 104CSeq 20INVITEContact Allow INVITE ACK OPTIONS CANCEL BYE SUBSCRIBE NOTIFY MESSAGE INFO REFER UPDATEContent Type application sdpContent Length 249 SIP消息格式 采用UTF 8編碼格式和HTTP協(xié)議基本相同SIP地址通常的格式為sip user password host port uri parameters headers uri parameters為附加的URL參數(shù) 格式為parameter name parameter value多個(gè)參數(shù)以分號(hào)分隔開 可擴(kuò)展 SIP實(shí)體必須忽略不認(rèn)識(shí)的URL參數(shù)headers為構(gòu)建請(qǐng)求時(shí)添加的附加頭域 這個(gè)部分通常不出現(xiàn)在SIP消息中 格式為hname hvalue多個(gè)參數(shù)以與號(hào)分隔開 SIP消息格式 每個(gè)消息由一個(gè)起始行 消息頭 一個(gè)空行 以及一個(gè)可選的消息體構(gòu)成generic message start line message headerCRLF message body 每個(gè)起始行和消息頭都是以回車加換行結(jié)束 CRLF 起始行只能占據(jù)一行消息頭域可以跨越多行 如果頭域部分某行是以空格 x20 或制表符 x09 開始 那么表示這一行是前一行的延續(xù) 可以把 CRLF 空格 或 CRLF 制表符 當(dāng)作一個(gè)空格來(lái)處理 這樣的序列被稱為L(zhǎng)WS linearwhitespace SIP消息格式 起始行起始行分為請(qǐng)求起始行和應(yīng)答起始行start line Request Line Status Line請(qǐng)求起始行 Request Line 格式為 Request Line MethodSPRequest URISPSIP VersionCRLFMethod 請(qǐng)求的方法 RFC3261中定義的有REGISTER INVITE ACK CANCEL BYE OPTIONS 在別的SIP補(bǔ)充RFC中還定義了其他的方法 如RFC3248中定義了MESSAGE方法 Request URI 請(qǐng)求的目的地址 參見(jiàn)SIP地址的說(shuō)明 SIP Version SIP的版本號(hào) 在RFC3261中定義為SIP 2 0應(yīng)答起始行 Status Line 格式為 Status Line SIP VersionSPStatus CodeSPReason PhraseCRLFSIP Version SIP的版本號(hào) 在RFC3261中定義為SIP 2 0Status Code 應(yīng)答的狀態(tài)碼 可以為如下值1xx 表示請(qǐng)求已經(jīng)收到 正在繼續(xù)處理請(qǐng)求 通常只針對(duì)INVITE請(qǐng)求發(fā)送這個(gè)響應(yīng) 2xx 成功響應(yīng) 表示請(qǐng)求已經(jīng)被接受并已經(jīng)被正確處理3xx 重定向響應(yīng) 表示請(qǐng)求需要被進(jìn)一步的處理 通常是給出一個(gè)轉(zhuǎn)移地址 4xx 請(qǐng)求錯(cuò)誤 通常是請(qǐng)求消息格式錯(cuò)誤 或者不能滿足服務(wù)器的要求 5xx 服務(wù)器內(nèi)部錯(cuò)誤 表示服務(wù)器不能處理這個(gè)正常的請(qǐng)求消息 6xx 全局出錯(cuò)消息 表示所有的服務(wù)器都不能處理這個(gè)消息 Reason Phrase 應(yīng)答對(duì)應(yīng)的文字描述 SIP消息格式 消息頭格式為fieldname field value header paramsters大部分多個(gè)相同的頭域可以壓縮為一個(gè) 多個(gè)field value之間使用逗號(hào) 分隔開 例如 下面兩個(gè)是等價(jià)的Route Route Route 消息可以根據(jù)需要攜帶不同消息頭 有些消息頭是必須的 比如From To Call ID CSeq Max Forwards ViaFrom一般用來(lái)表示消息的發(fā)起者的邏輯地址 在REGISTER消息中表示注冊(cè)的發(fā)起者 響應(yīng)消息中的From頭和請(qǐng)求消息中的一樣 并不是變成了請(qǐng)求中的To頭 To一般表示消息的接收者的邏輯地址 在REGISTER消息中表示本次注冊(cè)的邏輯地址 在請(qǐng)求消息中不攜帶tag字段 在響應(yīng)中由回應(yīng)方分配 Call ID會(huì)話的標(biāo)志 和From To中的tag參數(shù)一起標(biāo)志一個(gè)會(huì)話 為保證唯一性Call ID的一般格式為 偽隨機(jī)數(shù) 主機(jī)名或IP地址 在同一個(gè)會(huì)話中的所有消息這三個(gè)字段必須相同 如果是會(huì)話之外消息 則沒(méi)有什么要求 CSeq會(huì)話中的消息的序號(hào) 消息方法名 用來(lái)區(qū)分一個(gè)會(huì)話中的不同消息請(qǐng)求 消息序號(hào)是一個(gè)遞增的值 會(huì)話外的消息對(duì)序號(hào)沒(méi)有要求 但是消息方法名要和請(qǐng)求起始行中相同 Max Forwards消息的最大轉(zhuǎn)發(fā)數(shù) 防止消息在網(wǎng)絡(luò)中因?yàn)椴豢芍脑虍a(chǎn)生環(huán)路以后 不會(huì)無(wú)限制的消耗網(wǎng)絡(luò)和服務(wù)器的資源 服務(wù)器在轉(zhuǎn)發(fā)請(qǐng)求時(shí) 先要將這個(gè)值減一再發(fā)送 SIP消息格式 Via用來(lái)記錄消息相應(yīng)的返回地址 branch參數(shù)按照RFC3261中的規(guī)定必須是唯一的 用來(lái)標(biāo)志一個(gè)SIP事務(wù) 但在老版本的SIP標(biāo)準(zhǔn) RFC2543 中并不是唯一的 為了區(qū)別這兩種情況 RFC3261中規(guī)定 branch參數(shù)的開始7個(gè)字符必須為 z9hG4bK 只有在兩種情況下可以不唯一 針對(duì)會(huì)話請(qǐng)求的非成功 non 2xx 響應(yīng)的ACK 它的branch字段需要和對(duì)應(yīng)的INVITE一樣 用來(lái)聯(lián)系這個(gè)ACK和INVITE 而對(duì)成功 2xx 響應(yīng)的ACK 它的branch字段和對(duì)應(yīng)的INVITE是不同的 CANCLE方法 它的branch字段需要和要取消的請(qǐng)求消息相同 用來(lái)標(biāo)志所要取消的事務(wù) Contact這個(gè)消息頭用來(lái)指示通訊方的實(shí)際地址 這個(gè)不同于From和To中記錄的的邏輯地址 在REGISTER中攜帶的Contact表示要綁定到邏輯地址 To 上的實(shí)際地址 User Agent標(biāo)識(shí)SIP代理程序Subject標(biāo)識(shí)一個(gè)會(huì)話的主題 通常只有INVITE消息才攜帶這個(gè)頭字段 Expires在INVITE中表示這次呼叫建立過(guò)程的最大時(shí)長(zhǎng) 如果超過(guò)這個(gè)時(shí)間還沒(méi)有建立成功 呼叫就失敗了 發(fā)起者應(yīng)該發(fā)送CANCEL取消這次呼叫 而接受者應(yīng)該回應(yīng)一個(gè)487的錯(cuò)誤 在REGISTER中 表示這次注冊(cè)綁定的有效時(shí)間 如果為0則表示注銷 SIP消息格式 Content Type指定消息體的媒體類型Content Length指定消息體的長(zhǎng)度Route用來(lái)指定消息所要經(jīng)過(guò)的服務(wù)器 當(dāng)中間服務(wù)器在接收到消息時(shí) 需要根據(jù)是否攜帶lr參數(shù)來(lái)做不同的動(dòng)作 如果攜帶lr參數(shù) 表示是根據(jù)RFC3261指定的路由 服務(wù)器只要檢查第一個(gè)Route頭是否為自己 如果為自己 將它從消息中移除 然后將消息發(fā)給下一個(gè)Route字段或者Request URI中的攜帶的地址 如果沒(méi)有l(wèi)r參數(shù) 表示是依據(jù)RFC2543指定的嚴(yán)格路由 在消息發(fā)送的時(shí)候發(fā)現(xiàn)第一個(gè)Route字段沒(méi)有l(wèi)r參數(shù) 需要將這個(gè)Route中的地址 填寫到Request URI中 而將Request URI作為一個(gè)Route字段添加在所有Route字段之后 遵照RFC3261的代理服務(wù)器收到一個(gè)請(qǐng)求時(shí) 需要檢查Request URI是否指向的是自己曾經(jīng)在Record Route填寫的內(nèi)容 如果是的話 需要從最后一個(gè)Route字段中恢復(fù)真正的Request URI 出現(xiàn)這個(gè)現(xiàn)象的原因可能是因?yàn)樯弦惶且粋€(gè)遵從RFC2543的SIP服務(wù)器 Record Route如果中間服務(wù)器仍然需要出現(xiàn)在會(huì)話的后續(xù)請(qǐng)求中 那么它需要在響應(yīng)中在所有其他的Record Route字段之前添加這個(gè)字段 填上自己的地址 遵從RFC3261的中間服務(wù)器必須加上lr參數(shù) 會(huì)話的發(fā)起方在發(fā)送后續(xù)的請(qǐng)求中 需要將所有的Record Route頭字段依順序轉(zhuǎn)換成Route字段 Allow用來(lái)表示SIP實(shí)體可以接收處理的SIP方法 SIP協(xié)議 什么是SIP SIP的設(shè)計(jì)原則SIP的架構(gòu)SIP的層次SIP的主要機(jī)制SIP的鑒權(quán)SIP的消息格式SIP的主要流程SIP事務(wù)SIP在視頻監(jiān)控系統(tǒng)中的應(yīng)用 SIP的主要流程 一般的消息流程采用C S架構(gòu)客戶端發(fā)起請(qǐng)求服務(wù)器端給回應(yīng) SIP的主要流程 請(qǐng)求消息 以MESSAGE方法為例 MESSAGEsip 10 18 34 75 5065SIP 2 0Via SIP 2 0 UDP10 18 34 104 5060 rport branch z9hG4bK1495426073From tag 2717189648To Call ID 251252407810318334310450601031833431045060CSeq 1MESSAGEContact User Agent SIP NET1 0evaluationversionMax Forwards 70Content Type application global eye v10 xmlContent Length 312 回應(yīng)消息SIP 2 0200OKVia SIP 2 0 UDP10 18 34 104 5060 rport 5060 branch z9hG4bK1495426073From tag 2717189648To tag 980420199Call ID 251252407810318334310450601031833431045060CSeq 1MESSAGEMax forwards 70User agent SIP NET1 0evaluationversionAllow INVITE ACK OPTIONS CANCEL BYE SUBSCRIBE NOTIFY MESSAGE INFO REFER UPDATEContent Type application global eye v10 xmlContent Length 375 SIP的主要流程 注冊(cè)流程終端向注冊(cè)服務(wù)器發(fā)起第一個(gè)注冊(cè)請(qǐng)求 不攜帶任何鑒權(quán)信息如果注冊(cè)服務(wù)器不需要認(rèn)證 那么 就直接返回200OK 否則返回401錯(cuò)誤 并在響應(yīng)中攜帶服務(wù)器的認(rèn)證挑戰(zhàn)信息 nonce 終端向注冊(cè)服務(wù)器發(fā)起第二個(gè)注冊(cè)請(qǐng)求 其中攜帶用來(lái)認(rèn)證的用戶和密碼信息 密碼是以結(jié)合挑戰(zhàn)信息 nonce 用MD5加密之后傳遞的 注冊(cè)服務(wù)器使用終端同樣的算法計(jì)算結(jié)果 和請(qǐng)求中的值相比較 如果認(rèn)證通過(guò) 那么記錄下請(qǐng)求中的地址綁定信息 SIP的主要流程 注冊(cè)請(qǐng)求一REGISTERsip 10 18 34 104 5900SIP 2 0Via SIP 2 0 UDP10 18 34 104 5900 rport branch z9hG4bK1525468063From tag 4224369265To Call ID 955142972 10 18 34 104CSeq 1REGISTERContact Max Forwards 5Expires 300Content Length 0401回應(yīng)SIP 2 0401UnauthorizedVia SIP 2 0 UDP10 18 34 104 5900 rport 5900 branch z9hG4bK1525468063From tag 4224369265To tag 3878116472Call ID 955142972 10 18 34 104CSeq 1REGISTERWWW Authenticate Digestrealm testrealm nonce 42385386681596732431151298277 opaque 42385386681596732431151298277 qop auth Allow INVITE ACK OPTIONS CANCEL BYE SUBSCRIBE NOTIFY MESSAGE INFO REFER UPDATEContent Length 0 SIP的主要流程 注冊(cè)請(qǐng)求二REGISTERsip 10 18 34 104 5900SIP 2 0Via SIP 2 0 UDP10 18 34 104 5900 rport 5900 branch z9hG4bK3241190465From tag 4224369265To Call ID 955142972 10 18 34 104CSeq 2REGISTERContact Authorization Digestusername test realm testrealm nonce 42385386681596732431151298277 uri sip 10 18 34 104 5900 response f7f90e49a7744311e51c001d6166ecc4 algorithm MD5 cnonce 0a4f113b opaque 42385386681596732431151298277 qop auth nc 00000001Max forwards 5Expires 300Content Length 0200OK回應(yīng)SIP 2 0200OKVia SIP 2 0 UDP10 18 34 104 5900 rport 5900 branch z9hG4bK3241190465From tag 4224369265To tag 2180340491Call ID 955142972 10 18 34 104CSeq 2REGISTERContact expires 300 q 1 0Allow INVITE ACK OPTIONS CANCEL BYE SUBSCRIBE NOTIFY MESSAGE INFO REFER UPDATEContent Length 0 SIP的主要流程 呼叫流程呼叫發(fā)起方發(fā)起呼叫 使用INVITE消息呼叫接受方返回1xx響應(yīng) 表示已經(jīng)收到請(qǐng)求 在進(jìn)一步的處理 這時(shí)可能用振鈴提示用戶有呼叫呼入 用戶應(yīng)答以后 發(fā)送200OK響應(yīng) 表示接受呼叫 呼叫發(fā)起方發(fā)送ACK 用來(lái)確認(rèn)呼叫的應(yīng)答已經(jīng)收到 對(duì)于呼叫發(fā)起方來(lái)說(shuō) 收到200OK發(fā)送ACK之后 就認(rèn)為呼叫已經(jīng)建立成功 如果長(zhǎng)時(shí)間沒(méi)有收到回應(yīng) 可以使用CANCEL方法取消呼叫 而對(duì)于呼叫接受方來(lái)說(shuō) 在收到ACK之后 才認(rèn)為呼叫已經(jīng)建立成功 如果在發(fā)送200OK響應(yīng)之后長(zhǎng)時(shí)間沒(méi)有收到ACK 可以使用BYE方法結(jié)束呼叫 取消流程取消請(qǐng)求只對(duì)呼叫發(fā)起方有效 接受方如果不能建立呼叫 要么直接發(fā)送錯(cuò)誤響應(yīng) 3xx 6xx 要么在發(fā)送成功響應(yīng) 2xx 之后 用BYE方法結(jié)束會(huì)話 在INVITE發(fā)出之后和收到任何的1xx消息之間不可以發(fā)送 因?yàn)檫@時(shí)候如果發(fā)出 因?yàn)榫W(wǎng)絡(luò)的原因可能導(dǎo)致CANCEL消息先于INVITE到達(dá)接受方 在收到1xx消息后 可以發(fā)送CANCEL消息 呼叫接受方在收到CANCEL時(shí)如果還沒(méi)有對(duì)呼叫發(fā)送最終的響應(yīng) 那么應(yīng)該立即發(fā)送487響應(yīng) RequestTerminated 如果已經(jīng)發(fā)送了響應(yīng) 那么就不理睬這個(gè)CANCEL消息 如果發(fā)起方在發(fā)送CANCEL仍然收到了呼叫建立成功的響應(yīng) 如果這時(shí)仍然想結(jié)束呼叫 那么應(yīng)該使用BYE消息 這種情況通常是發(fā)生在CANCEL到達(dá)接受方之前 接受方發(fā)送了成功響應(yīng) 在收到最終響應(yīng)后 不可以發(fā)送CANCEL消息 SIP的主要流程 INVITE請(qǐng)求INVITEsip 180062000265273827 10 18 34 73 5360SIP 2 0Via SIP 2 0 UDP10 18 34 104 5060 rport branch z9hG4bK4009098743From tag 1419225769To Call ID 829237863 10 18 34 104CSeq 20INVITEContact Max Forwards 5User Agent mediasip 2 0Subject MediaSipExpires 120Allow INVITE ACK UPDATE INFO CANCEL BYE OPTIONS REFER SUBSCRIBE NOTIFY MESSAGEContent Type application sdpContent Length 206 1xx響應(yīng)SIP 2 0101DialogEstablishementVia SIP 2 0 UDP10 18 34 104 5060 rport 5060 branch z9hG4bK4009098743From tag 1419225769To tag 1745846615Call ID 829237863 10 18 34 104CSeq 20INVITEContact Allow INVITE ACK OPTIONS CANCEL BYE SUBSCRIBE NOTIFY MESSAGE INFO REFER UPDATEContent Length 0 SIP的主要流程 2xx響應(yīng)SIP 2 0200OKVia SIP 2 0 UDP10 18 34 104 5060 rport 5060 branch z9hG4bK4009098743From tag 1419225769To tag 1745846615Call ID 829237863 10 18 34 104CSeq 20INVITEContact Allow INVITE ACK OPTIONS CANCEL BYE SUBSCRIBE NOTIFY MESSAGE INFO REFER UPDATEContent Type application sdpContent Length 249 ACK確認(rèn)ACKsip 180062000265273827 10 18 34 73 5360SIP 2 0Via SIP 2 0 UDP10 18 34 104 5060 rport branch z9hG4bK444599471From tag 1419225769To tag 1745846615Call ID 829237863 10 18 34 104CSeq 20ACKContact Max Forwards 5User Agent mediasip 2 0Content Length 0 SIP協(xié)議 什么是SIP SIP的設(shè)計(jì)原則SIP的架構(gòu)SIP的層次SIP的主要機(jī)制SIP的鑒權(quán)SIP的消息格式SIP的主要流程SIP事務(wù)SIP在視頻監(jiān)控系統(tǒng)中的應(yīng)用 SIP事務(wù) SIP事務(wù)的分類因?yàn)楹艚薪⒌倪^(guò)程和其他的消息過(guò)程相比較特殊 也要復(fù)雜一些 所以特別的將所有事務(wù)區(qū)分為INVITE事務(wù)和非INVITE事務(wù) 再加上客戶端和服務(wù)端的組合就分為如下四種 INVITE客戶端事務(wù) INVITEClientTransaction INVITE服務(wù)端事務(wù) INVITEServerTransaction 非INVITE客戶端事務(wù) non INVITEClientTransaction 非INVITE服務(wù)端事務(wù) non INVITEServerTransaction SIP事務(wù)中的定時(shí)器當(dāng)SIP使用不可靠的傳輸協(xié)議 如UDP SIP協(xié)議定義了一些列的定時(shí)器 來(lái)進(jìn)行重傳和超時(shí)控制 盡可能的保證消息能夠可靠的傳輸 T1用來(lái)表示數(shù)據(jù)包的估計(jì)往返時(shí)間 默認(rèn)值為500毫秒 T2用來(lái)表示非INVITE事務(wù)服務(wù)器的估計(jì)響應(yīng)時(shí)間 默認(rèn)值為4秒 T4用來(lái)表示網(wǎng)絡(luò)中消息的估計(jì)存在時(shí)間 默認(rèn)值為5秒 SIP事務(wù)中請(qǐng)求和響應(yīng)的匹配當(dāng)用響應(yīng)匹配請(qǐng)求時(shí) 規(guī)定使用Via字段的branch參數(shù)來(lái)區(qū)別 另外還要比較CSeq中的方法字段 以便區(qū)別是針對(duì)CANCEL還是針對(duì)被取消的請(qǐng)求 當(dāng)用請(qǐng)求匹配請(qǐng)求時(shí)如果branch字段的開始為 z9hG4bK 那么表示這個(gè)請(qǐng)求是依照RFC3261發(fā)出的 需要匹配branch 以及CSeq中的方法部分 ACK需要對(duì)應(yīng)INVITE 其它的請(qǐng)求方法必須相同 如果branch字段的開始不為 z9hG4bK 那么表示這個(gè)請(qǐng)求是按照RFC2543發(fā)出的 需要用Request URI Totag Fromtag Call ID CSeqnumber 以及第一個(gè)Via頭等等 SIP事務(wù) INVITE客戶端事務(wù)TimerA用來(lái)控制INVITE請(qǐng)求消息的重傳間隔 初始為T1 默認(rèn)為500毫秒 每次重傳之后 就翻倍 TimerB用來(lái)控制INVITE在沒(méi)有收到任何響應(yīng)的情況下 最大的重傳總時(shí)間 為64倍的T1 那么在沒(méi)有收到任何響應(yīng)的情況下重傳間隔如下T1 2 T1 4 T1 8 T1 16 T1 32 T1TimerD用來(lái)控制收到錯(cuò)誤響應(yīng)之后 對(duì)每個(gè)響應(yīng)回應(yīng)ACK的最大持續(xù)時(shí)間收到2XX以后 就到了結(jié)束狀態(tài) 并不包含ACK 因?yàn)閷?duì)于不同的TU 在收到200OK響應(yīng)之后 可能會(huì)作不同的動(dòng)作 對(duì)于客戶端來(lái)說(shuō) 需要發(fā)送ACK回應(yīng) 而對(duì)于中間服務(wù)器來(lái)說(shuō) 只需要轉(zhuǎn)發(fā)回應(yīng)就可以了 在Proceeding狀態(tài) 沒(méi)有任何的定時(shí)器來(lái)進(jìn)行狀態(tài)跳轉(zhuǎn)的 這就出現(xiàn)了一個(gè)問(wèn)題 如果服務(wù)器在發(fā)送1xx響應(yīng)之后 出錯(cuò)了 不再發(fā)送后續(xù)的響應(yīng) 那么這時(shí)客戶端的呼叫就會(huì)一直保持在這個(gè)狀態(tài) 這就需要由TU來(lái)控制會(huì)話的最大建立時(shí)間 如果在這個(gè)時(shí)間到達(dá)之后 會(huì)話還沒(méi)建立成功 就取消呼叫請(qǐng)求 并釋放資源 SIP事務(wù) INVITE服務(wù)端事務(wù)TimerG用來(lái)控制錯(cuò)誤響應(yīng)的重傳間隔 初始值為T1 每次重傳之后就翻倍 直到大于T2之后 就變成T2 TimerH用來(lái)控制錯(cuò)誤響應(yīng)重傳總時(shí)長(zhǎng) 值為64 T1 這樣由TimerG控制的錯(cuò)誤響應(yīng)重傳時(shí)間間隔為 T1 2 T1 4 T1 T2 T2 T2 T2 T2 T2 T2TimerI用來(lái)吸收客戶端重傳的ACK確認(rèn)包 在Proceeding和Completed狀態(tài)下 如果收到了INVITE請(qǐng)求消息 都需要重傳最后一個(gè)響應(yīng) 收到2xx消息時(shí) 和INVITE類似 立即轉(zhuǎn)到了Terminated狀態(tài) 后續(xù)的ACK響應(yīng)以及它的重傳都是由TU來(lái)控制的 同樣的和INVITE客戶端事務(wù)中的Proceeding狀態(tài)類似 也沒(méi)有任何的定時(shí)器來(lái)觸發(fā)狀態(tài)的跳轉(zhuǎn) 如果TU由于某種原因再也不發(fā)送響應(yīng) 那么呼叫資源就會(huì)一直占用 這里也需要呼叫最大建立時(shí)間的限制 SIP事務(wù) 非INVITE客戶端事務(wù)TimerE用來(lái)控制請(qǐng)求消息的重傳間隔 初始值為T1 每次重傳之后翻倍 直到大于T2之后 就使用T2 如果收到了零時(shí)響應(yīng) TimerE仍然存在 只不過(guò)將值直接置為T2 TimerF用來(lái)控制消息重傳的總時(shí)長(zhǎng) 值為64 T1 這樣由TimerE控制在沒(méi)有零時(shí)響應(yīng)情況下的請(qǐng)求重傳時(shí)間間隔為 T1 2 T1 4 T1 T2 T2 T2 T2 T2 T2 T2TimerK用來(lái)吸收服務(wù)端重傳的響應(yīng) 值為T4 SIP事務(wù) 非INVITE服務(wù)端事務(wù)TimerJ用來(lái)吸收客戶端重傳的消息請(qǐng)求 值為64 T1 在Proceeding和Completed狀態(tài)下 如果收到了INVITE請(qǐng)求消息 都需要重傳最后一個(gè)響應(yīng) 和前面類似Trying和Proceeding兩個(gè)轉(zhuǎn)態(tài)下沒(méi)有任何的定時(shí)器來(lái)實(shí)現(xiàn)狀態(tài)跳轉(zhuǎn) 如果TU不發(fā)送任何的回應(yīng) 那么這個(gè)消息狀態(tài)就一直會(huì)存在下去 也需要有一個(gè)超時(shí)機(jī)制來(lái)釋放資源 SIP協(xié)議 什么是SIP SIP的設(shè)計(jì)原則SIP的架構(gòu)SIP的層次SIP的主要機(jī)制SIP的鑒權(quán)SIP的消息格式SIP的主要流程SIP事務(wù)SIP在視頻監(jiān)控系統(tǒng)中的應(yīng)用 SIP在視頻監(jiān)控系統(tǒng)中的應(yīng)用 使用SIP XML來(lái)傳遞信令消息使用MESSAGE方法 信令使用XML攜帶 采用SIP消息的重傳來(lái)盡力保證消息的可靠傳遞 使用SIP SDP來(lái)建立媒體會(huì)話使用INVITE方法來(lái)建立呼叫 使用SDP來(lái)協(xié)商媒體格式 傳輸?shù)刂?等等 使用OPTIONS信令來(lái)檢測(cè)會(huì)話雙方是否存在 使用標(biāo)準(zhǔn)的SIP協(xié)議來(lái)建立呼叫 比較容易和別的系統(tǒng)融合 比如說(shuō)和視頻會(huì)議系統(tǒng) IPTV系統(tǒng)等 SIP在視頻監(jiān)控系統(tǒng)中的應(yīng)用 視頻監(jiān)控的示意性流程 SIP在視頻監(jiān)控系統(tǒng)中的應(yīng)用 穿越NAT的原理什么是NAT NAT就是網(wǎng)絡(luò)地址轉(zhuǎn)換 主要是因?yàn)镮PV4網(wǎng)絡(luò)地址的缺乏而采用的技術(shù) NAT內(nèi)的主機(jī)一般使用私網(wǎng)地址 如10 xxx xxx xxx 192 168 xxx xxx 訪問(wèn)外
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東清遠(yuǎn)市2025年化學(xué)高一下期末聯(lián)考試題含解析
- 安徽省合肥市第三十五中學(xué)2025屆高一化學(xué)第二學(xué)期期末統(tǒng)考試題含解析
- 視力防護(hù)策劃書范文模板
- 2024年全球及中國(guó)餐具掛鉤行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 江蘇省揚(yáng)州高郵市2025屆高一下化學(xué)期末統(tǒng)考模擬試題含解析
- 中國(guó)中橋總成行業(yè)市場(chǎng)行情動(dòng)態(tài)分析及發(fā)展前景趨勢(shì)預(yù)測(cè)報(bào)告
- 2025屆四川省成都市龍泉第二中學(xué)化學(xué)高一下期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)試題含解析
- 2025年中國(guó)農(nóng)副行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2025年中國(guó)手搖輪椅車市場(chǎng)競(jìng)爭(zhēng)策略及行業(yè)投資潛力預(yù)測(cè)報(bào)告
- 2022-2027年中國(guó)機(jī)械行業(yè)市場(chǎng)調(diào)研及投資戰(zhàn)略規(guī)劃建議報(bào)告
- 谷子介紹課件
- 直播肖像權(quán)使用合同協(xié)議
- 2025屆高考政治復(fù)習(xí)重點(diǎn)知識(shí)大全(全7冊(cè))
- 電梯公告板制度
- 餐飲內(nèi)部考核管理制度
- 酒吧股東合伙協(xié)議書
- 臥床病人康復(fù)鍛煉課件
- 兒科換錯(cuò)藥護(hù)理不良事件
- 糖尿病管理工作制度
- 2025年初級(jí)等保測(cè)評(píng)試題及答案
- 05G525吊車軌道圖集05G525
評(píng)論
0/150
提交評(píng)論