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