• <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

    ---to-PSTN-呼叫流程-RFC3261的早期媒體流處理處理機制的局限性討論

    2021-12-27 13:43:09   作者:james.zhu Asterisk   來(lái)源:開(kāi)源派   評論:0  點(diǎn)擊:


      在本章節中,筆者將進(jìn)一步討論SIP到PSTN呼叫的流程。這里筆者首先說(shuō)明,我們以前討論的關(guān)于SIP方面的核心內容已經(jīng)基本結束。在SIP核心內容的中沒(méi)有深度討論的其他內容,筆者在以前的歷史文章中有完整的介紹,筆者也無(wú)計劃重復那些內容,其他需要讀者補充的知識包括:SIP有狀態(tài)代理,無(wú)狀態(tài)代理,包括B2BUA等。讀者可以查詢(xún)筆者的歷史文檔,通過(guò)關(guān)鍵詞查詢(xún)都可以獲得非常詳細說(shuō)明。筆者在此章節將介紹關(guān)于PSTN和SIP處理的內容。
      雖然SIP到PSTN呼叫的技術(shù)已經(jīng)逐漸被純SIP網(wǎng)絡(luò )替代,筆者也已經(jīng)發(fā)布過(guò)很多這些方面的內容,而且網(wǎng)絡(luò )上已經(jīng)有各種資源介紹關(guān)于SIP-PSTN的知識內容,并且有一些內容也非常具體。但是,為了新IP企業(yè)通信網(wǎng)絡(luò )整體內容的完整性,筆者認為還是有必要回顧一些基礎的知識點(diǎn),特別是目前仍然存在的很多PSTN-SIP之間呼叫存在的問(wèn)題,例如早期媒體流的問(wèn)題,仍然困擾著(zhù)很多用戶(hù)。因此,筆者希望幫助更多讀者能夠系統了解從傳統PSTN呼叫到SIP呼叫的知識體系。在以下的討論中,筆者將介紹SIP到PSTN呼叫的核心框架和節點(diǎn)設備,PSTN到SIP之間呼叫的處理流程(RFC3666),SIP-PSTN的映射碼,早期媒體流定義以及相關(guān)背景說(shuō)明,在請求分叉處理環(huán)境中早期媒體流處理存在的問(wèn)題,關(guān)于早期媒體流部署中網(wǎng)關(guān)模式和應用服務(wù)器模式的討論,以及早期媒體流策略選擇等話(huà)題進(jìn)行分享。
     
      1PSTN-SIP網(wǎng)絡(luò )概覽
      首先,讀者需要大概了解一下關(guān)于SIP-PSTN的處理框架。在以上的SIP-PSTN基本框架概覽中,用戶(hù)端設備通過(guò)安全設備SBC支持到SIP服務(wù)提供商的網(wǎng)絡(luò )中,然后通過(guò)SIP代理服務(wù)器以及定位服務(wù)查詢(xún)到相應的地址,轉發(fā)到SIP/PSTN網(wǎng)關(guān),最后到相應的PSTN交換機。通過(guò)PSTN交換機最后路由到IPPBX/PBX或者其他的非SIP終端的用戶(hù)中。在SIP到PSTN的呼叫過(guò)程中,SIP消息到網(wǎng)關(guān),再到PSTN交換機,以及到最終的終端電話(huà)都經(jīng)過(guò)了信令交互和語(yǔ)音RTP的交互過(guò)程。
      RFC3666是一個(gè)非常核心的規范說(shuō)明。RFC3666規范對SIP到PSTN呼叫流程做了詳細介紹。如果讀者有興趣的話(huà),可以參考RFC3666-2章節內容。根據以上圖例,結合RFC3666,在SIP到PSTN呼叫中,在RFC3666中介紹了ENUM查詢(xún),此查詢(xún)用來(lái)查找SIP呼叫方呼叫PSTN終端時(shí),ENUM轉化呼叫號碼到標準的ENUM格式的號碼。除了正常的SIP到PSTN的呼叫以外,SIP到PSTN呼叫還描述了三種SIP到PSTN失敗的呼叫處理流程,包括PSTN端的處理,PSTN端釋放的處理和ANM超時(shí)處理等不同的呼叫失敗的場(chǎng)景。提醒讀者,這些失敗呼叫的處理流程才是SIP系統運維人員應該特別關(guān)注的地方,這樣可以方便用戶(hù)通過(guò)流程和規范說(shuō)明依據規范建議來(lái)排查問(wèn)題。以上介紹的是SIP到PSTN的呼叫處理流程。以下圖例是PSTN到SIP的呼叫流程,處理流程如下:
      在PSTN呼叫SIP流程中,呼叫處理經(jīng)過(guò)了18個(gè)步驟,用戶(hù)的模擬/數字終端發(fā)起呼叫,通過(guò)PSTN交換機,創(chuàng )建IAM,ISUP消息,然后到PSTN/SIP網(wǎng)關(guān),經(jīng)過(guò)網(wǎng)關(guān)的ISUP和SIP消息映射,最后路由到SIP代理服務(wù)器,然后代理服務(wù)器通過(guò)定位服務(wù)呼叫到SIP終端話(huà)機。具體呼叫詳情,讀者可以參考RFC3666-3章節,這里不再做過(guò)多解釋。另外,在PSTN到SIP端的呼叫中,除了以上成功的呼叫以外,PSTN到SIP端呼叫還有六種失敗呼叫的流程處理的說(shuō)明,包括了SIP錯誤處理,SIP忙狀態(tài)處理,SIP錯誤和不同振鈴的協(xié)同,呼叫方終止呼叫等處理流程。
      在RFC3666中,除了PSTN到SIP之間的呼叫流程的說(shuō)明以外,它還說(shuō)明了PBX到SIP端的呼叫,具體包括SIP到ISDN PBX的呼叫和PBX到SIP的呼叫流程。如果讀者需要特別了解PBX-SIP的呼叫的話(huà),可以參考RFC3666-2.2和RFC3666-3.3章節。另外,在很多應用場(chǎng)景中,呼叫方和被呼叫方之間因為明顯特定的要求,它們PSTN到PSTN之間的雙方之間的呼叫可能還要通過(guò)SIP代理服務(wù)器網(wǎng)絡(luò )。這樣的呼叫需要經(jīng)過(guò)22個(gè)步驟的處理流程。
      2PSTN-SIP錯誤碼映射說(shuō)明
      錯誤碼是SIP或者PSTN用來(lái)提示錯誤消息的標識碼,SIP和PSTN錯誤碼有一個(gè)錯誤碼映射關(guān)系,讀者需要對其有一定的了解。

      3早期媒體流背景說(shuō)明
      除了關(guān)于SIP和PSTN之間的交互流程以外,筆者再浪費一點(diǎn)時(shí)間補充說(shuō)明早期媒體流使用的必要性。在涉及到SIP和PSTN網(wǎng)絡(luò )之間的通信中,為了避免一些問(wèn)題發(fā)生,從技術(shù)角度引入了一個(gè)概念,它被稱(chēng)之為早期媒體流。在PSTN規范中沒(méi)有早期媒體流的概念。在PSTN網(wǎng)絡(luò )中,當呼叫方撥號以后,媒體流通道也直接被創(chuàng )建,呼叫方就可以聽(tīng)到遠端被呼叫方的振鈴音。早期媒體流為用戶(hù)提供了一個(gè)可能,在雙方真正開(kāi)始通話(huà)之前,使用自定義的振鈴音或者其他企業(yè)語(yǔ)音文件替代系統默認的振鈴音。關(guān)于早期媒體流的具體應用場(chǎng)景,讀者可以閱讀筆者歷史文章:SIP系列講座-SIP-PSTN-1 和
      在關(guān)于早期媒體流的討論中,另外一個(gè)需要讀者必須注意到是Clipping的問(wèn)題。Clipping(沿切割)問(wèn)題是一個(gè)比較常見(jiàn)的在PSTN網(wǎng)絡(luò )和SIP網(wǎng)絡(luò )之間呼叫中可能發(fā)生的問(wèn)題。當用戶(hù)聽(tīng)到振鈴以后,直接接聽(tīng)呼叫時(shí),開(kāi)始說(shuō)話(huà)的前一段可能會(huì )出現語(yǔ)音丟失的問(wèn)題。因為是SIP到PSTN呼叫,如果沒(méi)有早期媒體流作為一種補償緩存方式的支持的話(huà),很多時(shí)候SIP用戶(hù)端可能還沒(méi)有收到 200 OK, 因此也沒(méi)有創(chuàng )建媒體流通道,所以語(yǔ)音丟失就會(huì )發(fā)生。因此導致SIP用戶(hù)可能就聽(tīng)不聽(tīng)語(yǔ)音通話(huà)的前期部分語(yǔ)段,丟失第一個(gè)單詞或者音節。這種尷尬的情況比較影響用戶(hù)體驗。如果是一般的呼叫,用戶(hù)都可以接受這種現象。但是,如果是比較重要的通話(huà)或者具有商業(yè)性質(zhì)的通話(huà),這種問(wèn)題就會(huì )讓用戶(hù)感到非常尷尬。因此,早期媒體流問(wèn)題需要一些機制來(lái)處理。
      使用早期媒體流也可以支持更多的業(yè)務(wù)功能。有時(shí)雖然被呼叫方終端還沒(méi)有接聽(tīng)呼叫,早期媒體流也支持對呼叫方播放忙音或者其他提示音。因此,早期媒體流在SIP和PSTN網(wǎng)絡(luò )中幫助雙方避免一些問(wèn)題發(fā)生,雙方能夠獲得比較好的折中的用戶(hù)體驗。我們先了解早期媒體流的處理流程。以下是一個(gè)早期媒體流處理的流程示例:
     
      在以上的呼叫流程中,SIP終端發(fā)起呼叫請求以后,PSTN交換機對網(wǎng)關(guān)返回ACM,然后網(wǎng)關(guān)先對SIP終端發(fā)送183 消息。然后,PSTN交換機會(huì )對PSTN終端振鈴,發(fā)送回鈴音,網(wǎng)關(guān)轉換成早期媒體流RTP流發(fā)送到SIP終端。一旦模擬話(huà)機應答了呼叫,PSTN交換機會(huì )返回ANM,網(wǎng)關(guān)則返回 200 OK給SIP代理服務(wù)器和終端。然后,PSTN交換機傳輸真正的雙向語(yǔ)音流媒體,SIP端則創(chuàng )建RTP流,最后,雙方才開(kāi)始真正的語(yǔ)音通話(huà)過(guò)程。這里需要注意,為了避免Clipping的發(fā)生,SIP終端發(fā)送請求時(shí),其請求攜帶的SDP也必須能夠支持播放收到的RTP流,甚至于沒(méi)有收到200 OK之前也可以播放其早期媒體。
      4早期媒體流處理存在的問(wèn)題和兩種部署機制的討論
      早期媒體流的使用雖然幫助用戶(hù)實(shí)現了更好的呼叫體驗,但是可能會(huì )產(chǎn)生其他的問(wèn)題。在RFC3261規范中,早期媒體流僅支持了簡(jiǎn)單的早期媒體流機制,這種處理機制存在很多問(wèn)題,這些問(wèn)題和分叉呼叫,安全等相關(guān)。它不能滿(mǎn)足大部分的應用場(chǎng)景的要求。為了彌補RFC3261在早期媒體流機制中針對請求分叉呼叫中出現的問(wèn)題,在早期媒體流處理方式方面針對部署機制的局限性增加了更多的部署機制。RFC3960使用了網(wǎng)關(guān)模式和應用服務(wù)器模式支持早期媒體流部署,此規范中的網(wǎng)關(guān)模式和應用服務(wù)器模式改善了對早期媒體流在復雜環(huán)境中的支持。但是,不幸的是,RFC3960中的網(wǎng)關(guān)模式仍然對分叉呼叫支持存在一些問(wèn)題。因為目前很多的SIP實(shí)體對象不能支持應用服務(wù)器模式,所以,網(wǎng)關(guān)模式部署方式仍然有存在的必要。相對網(wǎng)關(guān)模式,早期媒體流的應用服務(wù)器部署方式解決了網(wǎng)關(guān)模式存在的一些問(wèn)題。它通過(guò)早期會(huì )話(huà)分解模式來(lái)處理早期媒體流部署。我們再進(jìn)一步簡(jiǎn)單介紹一下網(wǎng)關(guān)模式的概念和應用服務(wù)器模式的功能原理。
      簡(jiǎn)單來(lái)說(shuō),網(wǎng)關(guān)模式是使用offer/answer 模式來(lái)管理早期媒體流。如果最終響應是200 OK響應,早期媒體流會(huì )轉化為正常通話(huà)的媒體流。如果最終響應是非200 OK響應,則直接簡(jiǎn)單結束早期會(huì )話(huà)。關(guān)于offer/answer 模式的詳解,讀者可以參考歷史文檔:完整SIP/SDP媒體協(xié)商概論-SDP協(xié)商模式詳解-會(huì )話(huà)管理全解。在無(wú)invite分叉處理中,初始請求中包含了offer的話(huà),網(wǎng)關(guān)模式的早期媒體流的處理一般不會(huì )出現媒體流沿切割問(wèn)題,它會(huì )按照正常的SIP協(xié)商流程來(lái)處理。如果出現了呼叫請求分叉的話(huà),早期媒體流的網(wǎng)關(guān)模式環(huán)境中,媒體clipping的問(wèn)題就可能出現。我們具體舉例說(shuō)明,在網(wǎng)關(guān)模式的環(huán)境中,網(wǎng)關(guān)支持了多個(gè)UAC,UAC可能同時(shí)收到針對其不同offer的不同的answer消息,這些消息是在不同的臨時(shí)響應中,并且來(lái)自于不同的UAS服務(wù)器端。這時(shí),在資源有限的前提下,網(wǎng)關(guān)模式面臨帶寬的局限和早期媒體會(huì )話(huà)選擇的問(wèn)題。那么現在的問(wèn)題來(lái)了,如果UAC同時(shí)收到了來(lái)自于不同的UAS服務(wù)器端的早期媒體流,網(wǎng)關(guān)還要對不同用戶(hù)呈現不同的早期媒體流數據文件,這樣同時(shí)對用戶(hù)播放不同的媒體文件就會(huì )導致用戶(hù)端處理非常迷惑。其他的媒體格式例如視頻也同樣會(huì )面臨這樣的尷尬問(wèn)題。另外,如果網(wǎng)關(guān)模式下,一般的UAC對帶寬做了限制,它不可能同時(shí)接受所有的早期媒體流,只能同一時(shí)間接受一個(gè)單個(gè)早期媒體會(huì )話(huà),而對其他的早期媒體會(huì )話(huà)進(jìn)行延后處理,再通過(guò)發(fā)送UPDATE請求方式來(lái)進(jìn)行處理。
      相比早期媒體流的網(wǎng)關(guān)模式部署方式,應用服務(wù)器模式處理提供了比較“聰明”的處理機制。它處理的基本原理是通過(guò)多個(gè)UAS模塊構成,通過(guò)不同的UAS來(lái)處理不同的UAC早期會(huì )話(huà)。UAC端則通過(guò)early-session 可選標簽標識它是否支持早期媒體會(huì )話(huà)的分解處理,應用服務(wù)器模式則根據其標簽分解其早期會(huì )話(huà),分別對應不同的早期會(huì )話(huà)流程。關(guān)于SIP對早期會(huì )話(huà)分解類(lèi)型的處理流程,讀者可以查閱RFC3959做進(jìn)一步學(xué)習,這里不再做過(guò)多解釋。
      針對早期媒體流的處理,一些設備廠(chǎng)家特別是SBC產(chǎn)品都通過(guò)各自比較“聰明”的處理方式和優(yōu)化方案來(lái)應對請求分叉時(shí)的早期媒體流的處理,例如使用P-Early-Media 頭支持的方式(RFC5009)和請求分叉處理的策略選擇方式。在針對請求分叉處理中也采用了針對不同臨時(shí)響應的選擇策略等,例如:收到的第一個(gè)臨時(shí)響應,收到的第一個(gè)RTP流,最后一次收到的SDP和PEM優(yōu)先等不同的處理方式。
      5總結
      在本章節的分享中,筆者首先介紹了針對PSTN到SIP的基本技術(shù)概論,具體解釋了SIP-PSTN中比較核心的網(wǎng)元要素,包括SBC,SIP代理服務(wù)器,服務(wù)查詢(xún)定位,然后分別介紹了SIP-PSTN兩個(gè)不同方向的呼叫的處理流程。在兩種不同網(wǎng)絡(luò )的呼叫中,筆者補充了部分關(guān)于SIP到PSTN呼叫的錯誤碼映射關(guān)系,幫助讀者清晰了解其對應細節。
      除了關(guān)于SIP-PSTN的基本的網(wǎng)絡(luò )框架說(shuō)明以外,筆者針對早期媒體流的處理方式,以及RFC3261中對早期媒體處理存在的問(wèn)題進(jìn)行深入討論,并且進(jìn)一步通過(guò)RFC3960規范更新支持,對早期媒體流部署方式的網(wǎng)關(guān)模式和應用服務(wù)器模式進(jìn)行了討論,也列舉了某些具體產(chǎn)品中關(guān)于早期媒體流支持的處理方式。希望讀者能夠通過(guò)以上討論更加明確SIP-PSTN概念,加深讀者關(guān)于早期媒體流處理的深入理解。
      參考資料:
      https://en.wikipedia.org/wiki/Dual-tone_multi-frequency_signaling
      http://www.itrcp.com/blog/wp-content/uploads/2013/08/PSTN-Cause-Code-to-SIP-Response-Mapping.pdf
      www.dinstar.cn
      www.asterisk.org.cn
      https://datatracker.ietf.org/doc/html/rfc3960
      https://www.ietf.org/rfc/rfc5009.txt
      https://datatracker.ietf.org/doc/html/rfc3959
     
    【免責聲明】本文僅代表作者本人觀(guān)點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對文中陳述、觀(guān)點(diǎn)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

    相關(guān)閱讀:

    專(zhuān)題

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

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 丹巴县| 广南县| 延边| 景洪市| 兖州市| 嘉荫县| 芜湖县| 日土县| 东莞市| 万荣县| 花垣县| 正镶白旗| 大余县| 沈阳市| 若羌县| 盐池县| 抚州市| 贡觉县| 万全县| 永善县| 鄂托克旗| 兰坪| 云浮市| 临泽县| 朔州市| 田林县| 台中市| 阿巴嘎旗| 黄冈市| 桑日县| 炉霍县| 甘谷县| 威信县| 墨玉县| 措勤县| 克什克腾旗| 讷河市| 集贤县| 西青区| 通化市| 荥阳市| http://444 http://444 http://444 http://444 http://444 http://444