欧美,精品,综合,亚洲,好吊妞视频免新费观看,免费观看三级吃奶,一级a片女人自慰免费看

您當(dāng)前的位置是:  首頁(yè) > 資訊 > 國(guó)內(nèi) >
 首頁(yè) > 資訊 > 國(guó)內(nèi) >

SIP協(xié)議規(guī)范RFC3261中文分享-12

2019-11-26 15:37:13   作者:james.zhu    來(lái)源:Asterisk開(kāi)源派   評(píng)論:0  點(diǎn)擊:


  接前面章節(jié)。
  8.2.4 Applying Extensions
  當(dāng)生成響應(yīng)消息時(shí),UAS不能直接期望使用拓展功能,除非在請(qǐng)求中的頭Supported頭中已經(jīng)表示支持了這個(gè)拓展。如果所希望的拓展不能被支持的話,服務(wù)器應(yīng)該僅依賴(lài)基本的SIP和其他客戶端所支持的拓展來(lái)處理。在極少情況下,服務(wù)器沒(méi)有拓展的話就不能處理請(qǐng)求,這個(gè)服務(wù)器可以發(fā)送一個(gè)421(Extension Required)響應(yīng)消息。這個(gè)響應(yīng)消息表示,如果沒(méi)有具體的拓展功能,服務(wù)器端不能生成一個(gè)規(guī)范的響應(yīng)。這些服務(wù)器端所需要支持的拓展必須包括在響應(yīng)消息中的Require頭中。規(guī)范不推薦這種操作方式,因?yàn),一般情況下,因?yàn)樗鼤?huì)破壞流程的兼容性處理。
  任何在non-421響應(yīng)中列出的拓展功能必須包含在響應(yīng)消息的Require頭列表中。
  當(dāng)然,服務(wù)器端也不能使用沒(méi)有在請(qǐng)求的Supported頭中列出的拓展。因此,響應(yīng)消息中的 Require 頭就會(huì)只能包含在標(biāo)準(zhǔn)RFCs中多定義的可選標(biāo)簽。
  8.2.5 Processing the Request
  假設(shè)前面討論的所有子章節(jié)都通過(guò)的話,UAS的處理就會(huì)進(jìn)入到和method相關(guān)的處理流程。Section 10 涵蓋REGISTER 請(qǐng)求,Section 11 涵蓋OPTIONS 請(qǐng)求,Section 13 涵蓋INVITE 請(qǐng)求,最后,Section 15 涵蓋BYE請(qǐng)求。
  8.2.6 Generating the Response
  當(dāng)UAS希望對(duì)請(qǐng)求構(gòu)建一個(gè)響應(yīng)時(shí),UAS必須遵守一般的處理流程。這些處理流程會(huì)在下面的子章節(jié)中進(jìn)行說(shuō)明。另外,對(duì)于一些非常具體的響應(yīng)碼的處理問(wèn)題,這里沒(méi)有規(guī)范具體的細(xì)節(jié),也可不做要求。
  一旦所有和創(chuàng)建響應(yīng)消息所關(guān)聯(lián)的流程完成以后,UAS負(fù)責(zé)返回到服務(wù)器事務(wù)層,這里是它收到請(qǐng)求的地址。
  8.2.6.1 Sending a Provisional Response
  對(duì)生成響應(yīng)來(lái)說(shuō),一個(gè)主要的不具體到某個(gè)method的原則是,UASs對(duì)非INVITE不應(yīng)該發(fā)送臨時(shí)響應(yīng)消息。相反,UASs應(yīng)該盡快對(duì)非INVITE請(qǐng)求生成一個(gè)最終響應(yīng)消息。
  當(dāng)生成100 (Trying)響應(yīng)時(shí),重新在在請(qǐng)求中的任何Timestamp頭必須拷貝到這個(gè) 100 (Trying)響應(yīng)中。如果在生成響應(yīng)時(shí)有延遲,UAS應(yīng)該在Timestamp頭中添加一個(gè)延遲數(shù)值。這個(gè)延遲數(shù)值必須包含響應(yīng)發(fā)送時(shí)間值和接收請(qǐng)求時(shí)間值,此值以秒為單位。
  8.2.6.2 Headers and Tags
  響應(yīng)消息中的From必須和請(qǐng)求中的From頭相同。響應(yīng)中的Call-ID頭必須和請(qǐng)求中的Call-ID相同。響應(yīng)中的CSeq必須和請(qǐng)求中的CSeq相同。響應(yīng)中的Via頭必須和請(qǐng)求中的Via頭相同,而且保持相同的順序。
  如果在請(qǐng)求中包含了一個(gè)To tag標(biāo)簽,響應(yīng)中的To必須和請(qǐng)求中的To頭相同。但是,如果在請(qǐng)求中沒(méi)有包含To頭值,在響應(yīng)中回復(fù)中,To頭中的URL必須和請(qǐng)求中To頭的URL相同;另外,在響應(yīng)回復(fù)中,UAS必須在To標(biāo)簽中增加一個(gè)標(biāo)簽(支持100(trying)異常響應(yīng))。這樣處理的目的是確認(rèn)UAS正在響應(yīng)處理,也可能因?yàn)檫@個(gè)異常響應(yīng)會(huì)生成一個(gè)dialog ID組件。同樣的標(biāo)簽使用在此請(qǐng)求的所有響應(yīng)中,包括最終響應(yīng)和臨時(shí)響應(yīng)(除了100(trying以外))。對(duì)此標(biāo)簽生成的流程在中Section 19.3定義。
  8.2.7 Stateless UAS Behavior
  無(wú)狀態(tài)UAS是一種不保存事務(wù)狀態(tài)的UAS。它通常會(huì)轉(zhuǎn)發(fā)請(qǐng)求,而且協(xié)議發(fā)送后會(huì)丟棄UAS的狀態(tài)消息。 如果一個(gè)無(wú)狀態(tài)UAS收到請(qǐng)求重發(fā),此UAS會(huì)重新生成響應(yīng),重新發(fā)送響應(yīng),就像它對(duì)第一個(gè)請(qǐng)求回復(fù)一樣。一個(gè)UAS不能是無(wú)狀態(tài)模式,除非這個(gè)method的請(qǐng)求處理總導(dǎo)致同樣的響應(yīng)(如果請(qǐng)求是確認(rèn)的)。無(wú)狀態(tài)注冊(cè)不遵守此規(guī)則。無(wú)狀態(tài)UASs不涉及事務(wù)層;UASs直接收到傳輸層請(qǐng)求后,直接對(duì)傳輸層返回響應(yīng)。
  無(wú)狀態(tài)UAS的基本功能是處理無(wú)需驗(yàn)證的請(qǐng)求,這些請(qǐng)求面對(duì)響應(yīng)問(wèn)題。如果無(wú)驗(yàn)證請(qǐng)求是通過(guò)有狀態(tài)UAS來(lái)處理的話,那么就會(huì)導(dǎo)致這些無(wú)驗(yàn)證請(qǐng)求產(chǎn)生大量的事務(wù)狀態(tài),這些事務(wù)狀態(tài)數(shù)據(jù)會(huì)導(dǎo)致在UAS端呼叫處理速度放慢,影響UAS處理性能,可能立刻生成了拒絕攻擊服務(wù)的條件。更多關(guān)于拒絕攻擊服務(wù)的內(nèi)容,查閱Section 26.1.5。
  無(wú)狀態(tài)UAS的最重要處理方式包括以下幾個(gè)方面:
  • 無(wú)狀態(tài)UAS一定不能發(fā)送臨時(shí)響應(yīng)(1xx)。
  • 無(wú)狀態(tài)UAS一定不能重回響應(yīng)消息。
  • 無(wú)狀態(tài)UAS必須忽略ACK請(qǐng)求。
  • 無(wú)狀態(tài)UAS必須忽略CANCEL請(qǐng)求。
  • 響應(yīng)中的To頭域值必須以一種無(wú)狀態(tài)的方式生成,這種生成方式對(duì)同樣的請(qǐng)求生成同樣的標(biāo)簽,此方式的目的是保持標(biāo)簽的一致性。更多關(guān)于標(biāo)簽構(gòu)成,參考Section 19.3。
  關(guān)于其他方面的處理規(guī)范,無(wú)狀態(tài)UAS和有狀態(tài)UAS是一樣的。對(duì)每個(gè)新請(qǐng)求來(lái)說(shuō),UAS可以以有狀態(tài)方式或無(wú)狀態(tài)方式操作。
  8.3 Redirect Servers
  在一些技術(shù)架構(gòu)中,代理服務(wù)器的目的是為了降低處理負(fù)載,這些代理服務(wù)器可能是負(fù)責(zé)處理路由請(qǐng)求和優(yōu)化信令路徑的強(qiáng)健性,都是通過(guò)重定向方式進(jìn)行轉(zhuǎn)發(fā)處理。
  重定向處理允許服務(wù)器端對(duì)請(qǐng)求在響應(yīng)中推送路由消息,返回給客戶端,因此,重定向會(huì)把自己踢出此環(huán)路的事務(wù)處理中,定位到請(qǐng)求的目標(biāo)地址。當(dāng)請(qǐng)求發(fā)起方收到了重新定位響應(yīng)以后,發(fā)起方會(huì)基于收到的URL地址重新發(fā)送一個(gè)新的請(qǐng)求。通過(guò)從網(wǎng)絡(luò)核心傳輸U(kuò)RLs到其網(wǎng)絡(luò)邊界,重定向允許相關(guān)網(wǎng)絡(luò)拓展性。
  重定向服務(wù)器邏輯上由一個(gè)服務(wù)器事務(wù)層和一個(gè)事務(wù)用戶構(gòu)成。事務(wù)用戶可以訪問(wèn)某些定位服務(wù)(參考Section 10 獲得更多注冊(cè)和定位服務(wù)詳情)。定位服務(wù)實(shí)際上是一個(gè)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)映射單個(gè)URL地址和一個(gè)或多個(gè)可選地址,這些地址是URL的目標(biāo)地址。
  重定向服務(wù)器自己不能發(fā)起任何屬于自己的SIP請(qǐng)求。收到了一個(gè)請(qǐng)求以后(除了CANCEL請(qǐng)求以外),服務(wù)器可以拒絕此請(qǐng)求或從定位服務(wù)收集可選地址,然后返回一個(gè)最終響應(yīng)3xx。
  對(duì)于格式非常規(guī)范的CANCEL請(qǐng)求,重定位服務(wù)器應(yīng)該返回一個(gè)2xx響應(yīng)。這個(gè)響應(yīng)表示結(jié)束SIP事務(wù)處理。重定位服務(wù)器保持一個(gè)完整SIP事務(wù)的狀態(tài)。這是客戶端的責(zé)任,用來(lái)檢測(cè)介于重定向服務(wù)器之間的前轉(zhuǎn)環(huán)路。
  當(dāng)重定向服務(wù)器對(duì)請(qǐng)求返回一個(gè)3xx響應(yīng)時(shí),定向服務(wù)器會(huì)在Contact頭中插入查詢到的定位地址列表。 同時(shí),在Contact頭中增加一個(gè)“expires”參數(shù)值,此值表示Contact數(shù)據(jù)中地址的生命周期。
  Contact頭中包含URLs,并且提供新的地址和用戶名來(lái)嘗試,或者簡(jiǎn)單提供指定的額外傳輸參數(shù)。301 (Moved Permanently)或302 (Moved Temporarily)響應(yīng)可能也提供同樣地址和用戶名,這個(gè)用戶名是初始請(qǐng)求的目標(biāo)地址,但是設(shè)定了額外的傳輸參數(shù)值,例如嘗試不同的服務(wù)器或組播地址,或者傳輸方式的相關(guān),例如從UDP傳輸修改為T(mén)CP傳輸,或者相反處理。
  不管怎樣,重定位服務(wù)器一定不能重定位一個(gè)請(qǐng)求到一個(gè)URL,這個(gè)URL和一個(gè)在Request-URI 的URL相同;相反,服務(wù)器可以代理轉(zhuǎn)發(fā)這個(gè)請(qǐng)求到目的地URL,或者拒絕此請(qǐng)求,返回一個(gè)404響應(yīng)。
  如果客戶端正在使用一個(gè)outbound proxy,并且重新定位此請(qǐng)求,這里可能產(chǎn)生一個(gè)潛在的無(wú)限重定位環(huán)路。
  注意,一個(gè) Contact頭可能涉及不同的源地址,而不是初始呼叫的源地址。例如,一個(gè)SIP呼叫連接到PSTN網(wǎng)關(guān),網(wǎng)關(guān)可能需要提供一個(gè)特別的語(yǔ)音說(shuō)明(例如,您撥打的號(hào)碼已經(jīng)被修改)。
  一個(gè)Contact響應(yīng)消息頭可以包含任何恰當(dāng)?shù)腢RL值,這個(gè)值表示被呼叫方已經(jīng)被連接,也不僅局限于SIP URLs地址。例如,它可以包含電話的URLs地址,傳真或irc(如果有定義的話)或一個(gè)mailto: (RFC 2368 [32]) 郵件地址。Section 26.4.4 討論了 重定位處理中SIPs URL到一個(gè)non-SIPS URI的影響和局限性。
  Contact頭中的“expires”參數(shù)表示URL的生命周期。此值以秒為單位計(jì)算。如果沒(méi)有提供此參數(shù)的話,以Expires頭中的數(shù)值決定URL的生命周期。如果出現(xiàn)異常值的話,此值應(yīng)該視為等同于3600。
  這種方式提供了一種最大程度的可能,保證了和RFC2534向后兼容,這也支持了一個(gè)在這個(gè)頭中的絕對(duì)時(shí)間值。如果收到了一個(gè)絕對(duì)時(shí)間的話,它將會(huì)被視為異常值,默認(rèn)的時(shí)間為3600。
  重定位服務(wù)器一定要忽略某些功能(包括無(wú)法識(shí)別的頭域格式,任何在Require中的未知可選標(biāo)簽,甚至于未知的method名稱(chēng)),和某些存在問(wèn)題的重定位請(qǐng)求。
  未完繼續(xù)……
 
   
  關(guān)注微信公眾號(hào):asterisk-cn,獲得有價(jià)值的Asterisk行業(yè)分享
  Asterisk freepbx,F(xiàn)reeSBC技術(shù)文檔:www.freepbx.org.cn
  融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com
  Asterisk / FreePBX / FreeSBC中國(guó)合作伙伴,官方qq技術(shù)分享群(3000人):589995817
 
【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對(duì)文中陳述、觀點(diǎn)判斷保持中立,不對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請(qǐng)讀者僅作參考,并請(qǐng)自行承擔(dān)全部責(zé)任。

專(zhuān)題

CTI論壇會(huì)員企業(yè)