中文字幕无码久久精品,13—14同岁无码A片,99热门精品一区二区三区无码,菠萝菠萝蜜在线观看视频高清1

您當(dāng)前的位置是:  首頁(yè) > 資訊 > 文章精選 >
 首頁(yè) > 資訊 > 文章精選 >

SIP協(xié)議及新IP企業(yè)通信網(wǎng)絡(luò)技術(shù)概論-核心SIP技術(shù)介紹-7

--關(guān)于SIP移動(dòng)性及Dialog,Call-ID和tag關(guān)系說(shuō)明

2021-12-07 13:18:25   作者:james.zhu    來(lái)源:Asterisk開源派   評(píng)論:0  點(diǎn)擊:


  我們處在一個(gè)每天或者每小時(shí),甚至于每分鐘都在變化的時(shí)代。大數(shù)據(jù),人工智能,5G,以至于XG都是推動(dòng)變化的發(fā)動(dòng)機(jī)。新的IP企業(yè)通信環(huán)境中,和傳統(tǒng)的或者以前的企業(yè)通信相比,一個(gè)比較重要的變化是SIP端的變化。SIP終端從單一固定物理形態(tài)改變?yōu)榭梢苿?dòng)的多形態(tài)8終端。這個(gè)變化是革命性的變化,通過這個(gè)變化,才使得IP企業(yè)通信的用戶可以實(shí)現(xiàn)移動(dòng)辦公,遠(yuǎn)程辦公,包括現(xiàn)在的物聯(lián)網(wǎng)IOT終端等應(yīng)用場(chǎng)景,也實(shí)現(xiàn)了立體的云端IPPBX和用戶終端的連接。但是,如果實(shí)現(xiàn)SIP移動(dòng)支持的話,SIP呼叫的信令交互就因?yàn)槎嘟K端處理,它們相關(guān)的dialog,tag和事務(wù)可能會(huì)發(fā)生相應(yīng)的變化。今天,筆者就SIP的移動(dòng)性和SIP移動(dòng)性引發(fā)的Dialog,Call-ID等方面的變化做一些討論說(shuō)明。
  此圖片以及以下部分圖片均來(lái)自于互聯(lián)網(wǎng)資源
  自從2005年起, 著名的基于開源的Asterisk被Linksys WRT54G series應(yīng)用到低端的企業(yè)和中小型企業(yè)的路由器中以后,緊接著在2006年,SIP協(xié)議棧被諾基亞遷移到了基于塞班操作系統(tǒng)的E系列諾基亞終端以后,SIP的移動(dòng)性才真正開始獲得認(rèn)可。隨著業(yè)務(wù)場(chǎng)景和需求的變化,網(wǎng)絡(luò)系統(tǒng)的變化,現(xiàn)在的IPPBX或者電話系統(tǒng)中,SIP終端可以支持很多不同的類型,包括智能手機(jī)端APP,物理SIP話機(jī)和PC端的SIP軟電話等幾種不同的形態(tài),但是,無(wú)論SIP終端以何種形態(tài)或者存在方式,同一SIP賬號(hào)下的多種形態(tài)都需要注冊(cè)到SIP代理服務(wù)器,通過SIP代理服務(wù)器結(jié)合定位服務(wù)來(lái)實(shí)現(xiàn)不同形態(tài)SIP終端的呼叫控制。
  1.SIP移動(dòng)性背景說(shuō)明
  關(guān)于SIP移動(dòng)性討論的分享,筆者在以前的文章中有過比較詳細(xì)的描述,讀者也可以參考?xì)v史文檔來(lái)獲得這方面的討論:SIP系列講座-SIP移動(dòng)性的場(chǎng)景介紹 。此文檔是針對(duì)歷史文章的進(jìn)一步補(bǔ)充,主要特別針對(duì)SIP移動(dòng)場(chǎng)景中針對(duì)Dialog,Call-ID進(jìn)行進(jìn)一步闡述。
  
  通過以上圖例,我們可以看到,SIP移動(dòng)性主要針對(duì)SIP終端的移動(dòng)性進(jìn)行物理上的移動(dòng)處理支持,SIP移動(dòng)性支持了用戶終端自由移動(dòng),通過SIP代理服務(wù)器實(shí)現(xiàn)對(duì)移動(dòng)地址的靈活支持,用戶可以使用已注冊(cè)的任意一種移動(dòng)終端接聽電話,因此SIP移動(dòng)性必須具備以下四個(gè)方面的特征:
  1. SIP通過SIP代理和轉(zhuǎn)發(fā)請(qǐng)求方式支持用戶的移動(dòng)性,查詢地址后轉(zhuǎn)發(fā)到新的在線狀態(tài)地址。
  2. SIP用戶端形態(tài)可以是PC端的軟電話,物理SIP話機(jī),手機(jī)APP,IOT終端或者其他無(wú)線SIP話機(jī)。
  3. 用戶必須注冊(cè)其當(dāng)前的地址到SIP代理服務(wù)器。
  4. 代理服務(wù)器根據(jù)其定位地址來(lái)決定最終呼叫目的地。
  2.SIP分叉呼叫中的并發(fā)呼叫和按序呼叫討論
  在以上關(guān)于移動(dòng)性的討論中,我們注意到一個(gè)比較重要的問題。當(dāng)呼叫方呼叫被呼叫方時(shí),如果SIP代理服務(wù)器配置了不同方式的呼叫的話,被呼叫方就會(huì)因?yàn)橐苿?dòng)端支持的不同,可能出現(xiàn)不同被呼叫方具體的結(jié)果。在SIP代理服務(wù)器可以支持SIP分叉并行呼叫和SIP按序呼叫兩種方式。關(guān)于SIP fork的細(xì)節(jié),讀者可以參考:分叉呼叫(Fork) 具體處理流程分析,筆者這里僅重新回顧這些細(xì)節(jié)以便讀者方便了解后續(xù)的討論。這兩種方式會(huì)按照SIP呼叫流程的協(xié)商形式的不同而產(chǎn)生不同的呼叫流程和呼叫結(jié)果,最終會(huì)影響被呼叫方呼叫狀態(tài)。
 
  在以上的并行呼叫處理中,SIP代理服務(wù)器會(huì)同時(shí)呼叫兩個(gè)SIP終端用戶。如果其中一個(gè)首先應(yīng)答的話(SIP物理話機(jī)-鼎信SIP話機(jī)(B-1)),代理服務(wù)器然后執(zhí)行呼叫方和之間的呼叫流程(180 ring),然后代理服務(wù)器會(huì)取消另外一個(gè)呼叫(B-2的PC端軟電話),最后確認(rèn)ACK握手,對(duì)另外一臺(tái)終端執(zhí)行最終ACK處理。然后再執(zhí)行應(yīng)答終端之間的RTP創(chuàng)建,并且開始雙方RTP流的傳輸。
  SIP分叉呼叫中的按序處理方式則和并行呼叫的處理方式有所不同,按序方式中,SIP代理服務(wù)器會(huì)根據(jù)呼叫順序依次進(jìn)行呼叫。讀者參考以下SIP分叉處理的按序呼叫流程示意圖,如果其中一臺(tái)SIP終端因?yàn)槠渌颍˙usy或者其他狀態(tài))不能接聽了SIP的話,則返回302,然后確認(rèn)302以后。代理服務(wù)器依次進(jìn)行下一個(gè)SIP終端呼叫,直到其中一個(gè)SIP用戶應(yīng)答了呼叫,然后進(jìn)行RTP流創(chuàng)建,雙方開始語(yǔ)音傳輸。
  在分叉呼叫中,如果同一賬號(hào)支持了不同SIP終端實(shí)例注冊(cè)的話,在分叉呼叫中就會(huì)出現(xiàn)不同的連接狀態(tài)。當(dāng)出現(xiàn)問題用戶,對(duì)其進(jìn)行跟蹤排查是一個(gè)比較困難的事情。因此,如何對(duì)這些終端進(jìn)行跟蹤就顯得比較重要。比較幸運(yùn)的是,所有的SIP終端在不同事務(wù)中都根據(jù)不同的SIP頭和其他終端進(jìn)行了區(qū)別。
  我們現(xiàn)在討論一個(gè)在分叉呼叫中比較極端的場(chǎng)景,如果呼叫方A呼叫了被呼叫方B,被呼叫方B的兩個(gè)終端同時(shí)應(yīng)答了呼叫的話,然后一段時(shí)間后,其中一個(gè)被呼叫方終端掛斷了呼叫,那么,接下來(lái)的SIP呼叫流程會(huì)如何處理呢?在進(jìn)行詳細(xì)說(shuō)明之前,筆者首先對(duì)呼叫的兩個(gè)重要概念做一點(diǎn)提前說(shuō)明。這兩個(gè)基本概念是call leg和dialog。在早期的SIP協(xié)議規(guī)范RFC2543中,call leg是定義兩個(gè)UA之間的SIP信令之間的關(guān)系,在RFC3261中使用dialog替代了call leg的定義。
  • Call Leg: Another name for a dialog [31]; no longer used in this
  • specification. (RFC3261 section 8)
  因此,在后續(xù)介紹中為了避免用戶的困惑,我們這里首先說(shuō)明。目前,很多用戶為了表達(dá)的方便,或者也有部分讀者對(duì)dialog比較迷惑,容易對(duì)這些功能誤用,希望讀者能夠引起注意。如果需要詳細(xì)了解dialog的規(guī)范說(shuō)明,建議讀者參考RFC3261和RFC2543的規(guī)范。在以下的特殊呼叫場(chǎng)景中,我們可以看到,呼叫方A收到了請(qǐng)求的200 OK響應(yīng),一個(gè)呼叫產(chǎn)生了兩個(gè)call legs或者dialogs。
  3.SIP分叉呼叫中dialog創(chuàng)建
  根據(jù)以下這個(gè)特殊的流程,如果我們?nèi)∠艘苿?dòng)端的呼叫的話,我們看一下如何處理不同的dialog以及其后續(xù)流程的變化。
  
  在進(jìn)一步討論之前,我們首先說(shuō)明一下關(guān)于SIP dialog的定義。一個(gè)SIP dialog 是通過Call-ID,F(xiàn)rom中的local/本地tag和To遠(yuǎn)端的tag組合定義的。現(xiàn)在讓我們一步步結(jié)合這個(gè)特殊示例進(jìn)行呼叫分析,說(shuō)明Call-ID,本地tag,遠(yuǎn)端tag以及2以及CSeq的變化。在呼叫方發(fā)起第一個(gè)呼叫時(shí),在以下的示例中,已經(jīng)生成了Call-ID,本地的tag,但是沒有生成遠(yuǎn)端的tag值。
 
  SIP代理拒絕了第一個(gè)呼叫以后,同一呼叫方另外應(yīng)該呼叫發(fā)起以后,SIP INVITE中出現(xiàn)了稍微不同的消息內(nèi)容。Call-ID相同,但是CSeq 出現(xiàn)了遞增(遞增1),并且因?yàn)檫@是應(yīng)該新的事務(wù),而且branch也出現(xiàn)了不同。
  
  現(xiàn)在,被呼叫方回復(fù)了200 OK以后,dialog創(chuàng)建就已經(jīng)完成,針對(duì)此Call-ID和From tag=86aee210添加了本地的tag。
  
  到此為止,一個(gè)完整的dialog就生成了。如果是另外一個(gè)終端應(yīng)答了呼叫,其處理流程基本一致,Call-ID,F(xiàn)rom tag 始終是一樣的,To tag會(huì)有所不同。因此,分叉呼叫會(huì)導(dǎo)致多個(gè)dialog,每個(gè)dialog是完全唯一,它本身具有其獨(dú)特的。dialog創(chuàng)建以后,SIP代理負(fù)責(zé)綁定了雙方終端具體的呼叫業(yè)務(wù)關(guān)系,呼叫方和被呼叫方之間可以繼續(xù)進(jìn)行其他的業(yè)務(wù)操作,例如呼叫保持,呼叫保持重啟,訂閱等等業(yè)務(wù)控制。這些業(yè)務(wù)都會(huì)生成不同的事務(wù),但是,這些事務(wù)都屬于此dialog中。
 
  如果讀者想了解更多關(guān)于dialog 和事務(wù)的詳解,讀者可以參考?xì)v史文章:
  再論SIP呼叫中的Call,Dialog和Transaction。通過以上流程詳解,我們可以看到SIP代理是如何一步步針對(duì)SIP的移動(dòng)性功能支持流程進(jìn)行處理的。
  4.總結(jié)
  SIP的移動(dòng)性支持是來(lái)自于網(wǎng)絡(luò)發(fā)展的必然,也是現(xiàn)代企業(yè)融合通信的要求。越來(lái)越多的員工使用了移動(dòng)設(shè)備,多點(diǎn)辦公也逐漸成為常態(tài)。通過SIP移動(dòng)性的支持,各種移動(dòng)終端可以實(shí)現(xiàn)無(wú)縫呼叫連接。
  筆者首先介紹了關(guān)于SIP移動(dòng)端的起源,然后介紹了SIP移動(dòng)性所引起的呼叫不同類型。在SIP代理服務(wù)器端,代理服務(wù)器可能根據(jù)配置的不同,支持了并發(fā)呼叫或者按序呼叫兩種形態(tài)。SIP代理服務(wù)器根據(jù)不同類型的呼叫產(chǎn)生了不同的dialog以及其他tag的變化。在特殊場(chǎng)景中,SIP的dialog根據(jù)呼叫狀態(tài)也發(fā)生了變化。最后,筆者根據(jù)示例介紹了具體的tag,dialog等相關(guān)概念在SIP移動(dòng)性方面的支持和變化情況,這些變化可能導(dǎo)致SIP移動(dòng)支持中產(chǎn)生多個(gè)dialog。雖然,SIP移動(dòng)性通過代理服務(wù)器以后,產(chǎn)生了多種SIP消息變化,只要讀者在排查過程中重點(diǎn)找到相關(guān)的dialog以及綁定的tag標(biāo)簽,可以比較輕松獲得呼叫的完整路徑。
  雖然筆者在以上的討論中列舉了應(yīng)該比較特殊的示例,但是足以說(shuō)明SIP移動(dòng)性支持中關(guān)于SIP信令的處理。讀者可以根據(jù)SIPdialog做更深入學(xué)習(xí)。
  參考資料:
  • https://en.wikipedia.org/wiki/Session_Initiation_Protocol
  • www.dinstar.cn
  • www.asterisk.org.cn
  • https://datatracker.ietf.org/doc/html/rfc3261#section-8
【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對(duì)文中陳述、觀點(diǎn)判斷保持中立,不對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請(qǐng)讀者僅作參考,并請(qǐng)自行承擔(dān)全部責(zé)任。

專題

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