中文字幕在线视频第一页,黄色毛片在线看,日本爱爱网站,亚洲系列中文字幕一区二区

您當前的位置是:  首頁 > 資訊 > 國內(nèi) >
 首頁 > 資訊 > 國內(nèi) >

SIP協(xié)議與應用場景技術分享筆記-卷1-rfc3261-7

2019-06-17 09:12:44   作者:james.zhu   來源:Asterisk開源派   評論:0  點擊:


  SIP 提供了一種機制以壓縮的形式來表達普通的頭。當傳輸很大的消息體的消息內(nèi)容時,這種方式也比較有用,例如當使用UDP傳輸時,如果內(nèi)容數(shù)據(jù)超過MTU極限后,使用壓縮的格式就可以滿足最大MTU支持。壓縮格式在Section 20定義。壓縮格式可以在任何時候在沒有改變消息語義時替換為比較長的格式。
  頭域值可以以比較長的格式或者壓縮格式出現(xiàn)在同樣的消息體中。在使用時每個頭都必須支持比較長的格式和壓縮格式。
  7.4 Bodies
  除非另外提示,Requests(請求)可能包括消息體,這種請求包括一個新請求,新請求在本規(guī)范的新拓展中定義。消息體解析依賴于請求方式method。
  對響應消息來說,請求方式和響應狀態(tài)碼決定消息體類型和消息解析。所有的響應可能包括在一個消息體。
  7.4.1 MessageBody Type
  消息體的網(wǎng)絡媒體類型必須通過Content-Type頭給定。如果消息體已經(jīng)處理過編碼流程,例如壓縮,那么必須通過Content-Encoding頭聲明;否則,必須忽略Content-Encoding。如果可行的話,聲明消息體字符串為Content-Type頭的一個部分。
  在RFC 2046[11]定義的 "multipart" MIME 類型可以在消息體中使用。在使用中,如果遠端部署方請求通過了一個Accept頭,這個頭沒有包含multipart,那么,發(fā)送的請求中包含多方消息體必須發(fā)送一個會話描述作為一個非multipart消息體。
  SIP消息可以包含二進制消息體或消息體的部分。當發(fā)送方?jīng)]有提供明確的字符參數(shù)設置時,被定義的text的媒體子類型有一個默認字符設置值"UTF-8"。
  7.4.2MessageBody Length
  以bytes為單位的消息體長度是由Content-Length頭提供。Section 20.14描述了頭內(nèi)容的具體細節(jié)。
  HTTP/1.1中的分塊傳輸編碼不能在SIP中使用。(注意:為了以一系列的傳輸來分塊數(shù)據(jù),分塊傳輸編碼修改了消息體,每一個塊都有各自的大小指示)
  7.5FramingSIP Messages
  不像HTTP,SIP部署使用了UDP或其他的不可信賴的數(shù)據(jù)包協(xié)議。每個數(shù)據(jù)包傳輸一個請求或者響應。Section 18介紹了使用非可靠性傳輸?shù)南薅ā?/div>
  通過以數(shù)據(jù)流方式傳輸方式來處理SIP消息的機制必須在start-line之前忽略掉任何回車換行字符[H4.1]。
  Content-Lengthheader頭的值用來定位數(shù)據(jù)流中的每個SIP消息結(jié)束位置。當SIP消息是通過數(shù)據(jù)方式傳輸時,它總是出現(xiàn)在這里。
  8 GeneralUser Agent Behavior
  一個用戶代理表示一個最終的系統(tǒng)架構(gòu)。它包含一個用戶代理客戶端(UAC),用來產(chǎn)生請求,和一個用戶代理服務器端,它用來對請求產(chǎn)生響應反饋。UAC用戶代理客戶端具備產(chǎn)生請求的能力,UAC產(chǎn)生請求是由外部刺激和驅(qū)動的流程而產(chǎn)生(例如,用戶點擊了一個按鈕和PSTN線路上的一個信號),并且對響應進行處理。一個UAS代理客戶端可以接收一個請求,并且基于用戶輸入,外部驅(qū)動刺激,程序執(zhí)行結(jié)果或者其他機制所產(chǎn)生一個響應。
  當一個UAC發(fā)送一個請求時,這個請求會經(jīng)過幾個代理服務器,這些代理服務器將前轉(zhuǎn)這個請求到UAS。當UAS生成響應時,這個響應會返回到UAC。
  UAC和UAS的處理流程完全依賴于兩個因素。首先,這個流程取決于這個請求或響應是否在dialog里面還是外面,其次,流程還取決于請求的method。Dialogs的討論將會在Section 12進行;它們表示一種介于用戶代理之間的點對點的關系,這個關系是通過具體的SIP methods創(chuàng)建的,例如INVITE。
  在本部分內(nèi)容中,我們討論UAC和UAS的執(zhí)行處理規(guī)則,這個規(guī)則是完全獨立于method的,當處理請求時,這些請求是在dialog的外面。這里當然也包括請求自己創(chuàng)建的dialog。
  關于dialog外部的對請求和響應的安全處理流程的描述在Section 26進行。具體來說,介于UAS和UAC存在的機制是互相驗證的過程。通過消息體使用S/MIME加密的方式實現(xiàn)一系列私有功能支持。
  8.1 UACBehavior
  這部分討論UAC的外面dialog的運行狀態(tài)。
  8.1.1 Generatingthe Request
  一個有效的被UAC規(guī)范化的SIP請求必須最低包括以下幾個頭字段:To,F(xiàn)rom, CSeq,Call-ID,Max-Forwards,和 Via;對所有SIP請求來說,這些頭字段是強制支持的。
  這六個頭字段是構(gòu)建一個SIP消息的基礎結(jié)構(gòu),因為它們聯(lián)合起來為SIP通過了最基本
  的和最重要的路由服務,消息地址,響應路由,限定消息擴展,消息順序和事務的唯一身份。
  這些頭字段另外包含了method,Request-URI,和SIPversion。
  運行在dialog外面的請求發(fā)送示例包括了一個INVITE,它用來創(chuàng)建一個會話 (Section 13) 和一個OPTIONS,它用來查詢能力支持(Section 11)。
  8.1.1.1 Request-URI
  消息的初始Request-URI應該在To頭中設置為URL的值。一個需要注意的例外就是 REGISTER method;REGISTER 的Request-URI設置方式在Section 10中討論。對于安全原因或便利性來說,它可能也不是太方便來設置這些值域為同樣的值(特別是,
  如果在轉(zhuǎn)換期間,初始的UA希望Request-URI可以被修改的環(huán)境中)。
  在某些特定的環(huán)境中,一個已存在的route狀態(tài)可以影響Request-URI的消息。一個已存在的路由系列是一系列有序URIs,這些URLs確認服務器鏈,UAC將會發(fā)送出去的請求,這些請求是dialog外部的請求。通常情況下,這些URL在UA端通過一個用戶或服務商手動配置,或者通過其他的非SIP機制來配置。當服務商希望配置UA支持一個outbound proxy時,規(guī)范還是推薦需要提供一個已存在的路由系列,設置為一個單URI作為一個 outbound proxy。
   
  FreeSBC/ProSBC 免費邊界會話控制器, 下載ISO:https://freesbc.telcobridges.com/
  關注微信公眾號:asterisk-cn,獲得有價值的Asterisk行業(yè)分享
  Asterisk freepbx 中文官方論壇:http://bbs.freepbx.cn/forum.php
  Asterisk freepbx技術文檔: www.freepbx.org.cn
  融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com
  Asterisk/FreePBX中國合作伙伴,官方qq技術分享群(3000千人):589995817

【免責聲明】本文僅代表作者本人觀點,與CTI論壇無關。CTI論壇對文中陳述、觀點判斷保持中立,不對所包含內(nèi)容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

專題

CTI論壇會員企業(yè)

图片| 清远市| 扶余县| 甘孜县| 乌拉特前旗| 平昌县| 莱芜市| 苏尼特左旗| 建德市| 温宿县| 望城县| 银川市| 奈曼旗| 金昌市| 德惠市| 松滋市| 富川| 城市| 山东省| 安福县| 三门峡市| 高州市| 乌鲁木齐市| 含山县| 黑河市| 长岛县| 锡林郭勒盟| 榆树市| 自贡市| 普格县| 乌兰县| 娄底市| 囊谦县| 嘉黎县| 菏泽市| 湘阴县| 商南县| 元阳县| 泉州市| 巴南区| 辰溪县|