• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當前的位置是:  首頁(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開(kāi)源派   評論:0  點(diǎn)擊:


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

    專(zhuān)題

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

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 政和县| 沂源县| 武冈市| 太仆寺旗| 景东| 峡江县| 马关县| 托里县| 东港市| 湖南省| 社旗县| 德保县| 武隆县| 德江县| 白银市| 玉树县| 宁强县| 渝中区| 丽水市| 乌拉特后旗| 那曲县| 邛崃市| 龙口市| 冷水江市| 文成县| 资中县| 保定市| 南阳市| 府谷县| 吴旗县| 原平市| 偃师市| 炉霍县| 三原县| 奎屯市| 旅游| 晋州市| 通州区| 谢通门县| 日土县| 高密市| http://444 http://444 http://444 http://444 http://444 http://444