1什么是SIP協(xié)議技術(shù)
SIP協(xié)議以及相關(guān)技術(shù)涉及了從協(xié)議規(guī)范的抽象層面到非常具體的終端產(chǎn)品,服務(wù)器端應(yīng)用場(chǎng)景和業(yè)務(wù)層面的控制邏輯等內(nèi)容。在這些涉及的內(nèi)容之外,SIP技術(shù)也涉及了其他的一些必要屬性;谄年P(guān)系,我們這里有必要把一些非常核心的內(nèi)容介紹給讀者,同時(shí)簡(jiǎn)單介紹一下如何學(xué)習(xí)的知識(shí)分享。
首先,我們需要了解什么是SIP協(xié)議。Session Initiation Protocol (SIP) 全稱是會(huì)話初始協(xié)議。我們可以將其完整名稱分拆出來來簡(jiǎn)單分析:
Session Initiation Protocol (SIP):
- Session-會(huì)話
- Initiation-初始
- Protocol-協(xié)議
最早期的關(guān)于SIP協(xié)議的官方版本是1999年的RFC2543,2002年更新為RFC3261,此規(guī)范一直作為當(dāng)前SIP網(wǎng)絡(luò)的基本標(biāo)準(zhǔn)官方。SIP協(xié)議核心發(fā)明人目前仍然活躍在現(xiàn)在的商業(yè)領(lǐng)域,比較有名的呼叫中心的Five9的CTO Jonathan Rosenberg (SIP核心作者)是其中之一。另外一位非常有名的是Henning Schulzrinne,他是一位哥倫比亞大學(xué)的教授,專注于SIP、RTP的研究。筆者以前經(jīng)常訪問其學(xué)校的網(wǎng)頁(yè),通過他的一些書籍做進(jìn)一步學(xué)習(xí)。在其頁(yè)面下仍然有很多非常有價(jià)值的參考書籍和工具。讀者如果有興趣的話,可以訪問參考鏈接做進(jìn)一步學(xué)習(xí)。
我們一談到網(wǎng)絡(luò)協(xié)議,基本上它是都是非常抽象的。它不涉及到具體的每個(gè)產(chǎn)品,但是,它需要通過具體的產(chǎn)品來體現(xiàn),具體的產(chǎn)品必須遵守其協(xié)議制定的規(guī)則,其他產(chǎn)品才能和其進(jìn)行協(xié)同工作。如果我們稍微嚴(yán)謹(jǐn)一點(diǎn)來進(jìn)一步說明其抽象性的話,我們可以這樣說明。我們沒有見過汽車(因?yàn)槠嚤旧砭褪且粋(gè)汽車總的抽象),但是,我們見過豐田汽車,豐田汽車的哪個(gè)型號(hào)。在關(guān)于SIP的協(xié)議討論中,我們也面臨討論的問題。大家基本上都見過SIP話機(jī)或者語(yǔ)音網(wǎng)關(guān),但是你沒有見過SIP。所以,讀者理解我們討論的SIP協(xié)議以及其技術(shù)應(yīng)用概論時(shí),很多讀者比較困惑,特別需要讀者從抽象到具體反復(fù)對(duì)照學(xué)習(xí)。
從SIP協(xié)議的基礎(chǔ)來說,大部分的網(wǎng)絡(luò)應(yīng)用程序工作時(shí)需要?jiǎng)?chuàng)建管理會(huì)話,通過會(huì)話管理實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)協(xié)議的控制管理。會(huì)話是參與者之間的數(shù)據(jù)交換。因?yàn)镾IP協(xié)議是參考了HTTP協(xié)議發(fā)展而來的協(xié)議,因此會(huì)話的基本特性也可以通過HTTP協(xié)議的會(huì)話來理解。會(huì)話實(shí)現(xiàn)的就是一個(gè)數(shù)據(jù)交互,雙方的數(shù)據(jù)交換至少包括會(huì)話的ID,生命周期,定時(shí)器,結(jié)束的管理流程。這些基本特性同樣也適用于基于SIP的會(huì)話中,雙方或者多方交互的數(shù)據(jù)無外乎視頻,文本,語(yǔ)音這三種形式,當(dāng)然也包括交互過程中的一些管理需要的數(shù)據(jù)。我們進(jìn)一步講,如果SIP流程要執(zhí)行會(huì)話交換就必須有一個(gè)初始方來發(fā)起一個(gè)任務(wù),需要知道雙方是否可以工作,是否愿意接受對(duì)方的工作要求等,這些都是通過協(xié)議來控制。初始流程啟動(dòng)以后,直到數(shù)據(jù)交互完成以后,通過結(jié)束控制來通知雙方都停止工作。這些具體的流程步驟也都需要協(xié)議來管理。在SIP協(xié)議中,很多比較具體細(xì)節(jié)的控制通過各種定義,命名來實(shí)現(xiàn)。因此,從整體來說,基本上SIP協(xié)議需要實(shí)現(xiàn)控制信令協(xié)議,媒體(音視頻文本)會(huì)話控制,定位用戶地址,用戶在線狀態(tài)和創(chuàng)建/修改/結(jié)束會(huì)話這幾個(gè)方面的工作。我們將在后續(xù)的多個(gè)章節(jié)來進(jìn)一步展開討論。這里不再做過多贅述。
前期學(xué)習(xí)SIP協(xié)議和相關(guān)技術(shù)是非?菰锏。如果讀者能夠從抽象層面了解了SIP協(xié)議,同時(shí)能夠結(jié)合具體的SIP終端或者服務(wù)器端架構(gòu),讀者基本上就了解了整體的技術(shù)架構(gòu)實(shí)現(xiàn)。如果讀者在十幾年前學(xué)習(xí)SIP和相關(guān)技術(shù)時(shí),因?yàn)楦鞣N硬件環(huán)境和網(wǎng)絡(luò)使用需求的局限,一般用戶很難接觸到完整的測(cè)試學(xué)習(xí)環(huán)境。隨著開源軟交換和終端技術(shù)的發(fā)展,讀者可以通過非常低成本的方式來測(cè)試學(xué)習(xí),人們幾乎可以模擬出大部分的應(yīng)用場(chǎng)景。通過低成本的學(xué)習(xí)環(huán)境配合一些商業(yè)產(chǎn)品可以完成從抽象到具體的整個(gè)學(xué)習(xí)路徑。
2為什么使用SIP
SIP技術(shù)是一個(gè)技術(shù)趨勢(shì),這是一個(gè)市場(chǎng)選擇的必然結(jié)果。從全球熱詞搜索,我們可以看到,最近年,SIP的搜索占比一直非常高。相反,H323一直處于守勢(shì)。
此圖片和以下圖片均來自于互聯(lián)網(wǎng)資源
如果我們從市場(chǎng)統(tǒng)計(jì)數(shù)據(jù)來看,SIP trunk服務(wù)的市場(chǎng)也一直在處于增加狀態(tài),并且H323已經(jīng)逐漸被SIP trunk運(yùn)營(yíng)商替換。
從功能實(shí)現(xiàn)方面,H232和SIP相比,某些功能已經(jīng)不能適應(yīng)現(xiàn)代網(wǎng)絡(luò)要求。以下是思科的一個(gè)功能對(duì)比。因此,技術(shù)迭代是不可避免的。
用戶選擇使用SIP大概有幾個(gè)方面的原因。很多權(quán)威的研究機(jī)構(gòu)和市場(chǎng)調(diào)研公司都曾經(jīng)發(fā)布過很多關(guān)于SIP技術(shù)的一些文章。讀者也可以參考筆者以前的文檔,關(guān)于融合通信市場(chǎng)的分析發(fā)布:企業(yè)融合通信業(yè)務(wù)發(fā)展最新模式總論
除了筆者以前討論的內(nèi)容以外,這里還有幾點(diǎn)思考內(nèi)容需要補(bǔ)充。
國(guó)外一些主流運(yùn)營(yíng)商已經(jīng)開始通過SIP提供更多的服務(wù),例如AT&T, Verizon, 沃達(dá)豐等有名的服務(wù)商。目前市場(chǎng)上比較有名的呼叫中心服務(wù)和融合通信服務(wù)提供商,例如8x8, Ringcentral,F(xiàn)ive9 等提供商也通過SIP提供其服務(wù)。一些國(guó)家已經(jīng)明確停止運(yùn)營(yíng)PSTN網(wǎng)絡(luò),不再對(duì)用戶提供PSTN服務(wù)。英國(guó)宣布到2025年,英國(guó)運(yùn)營(yíng)商將不再提供PSTN服務(wù),通過SIP來提供服務(wù)。很多國(guó)家將陸續(xù)停止PSTN網(wǎng)絡(luò)的運(yùn)營(yíng)服務(wù)。
除了一些商業(yè)機(jī)構(gòu)和國(guó)家明確了SIP作為主要中繼服務(wù)以外,因?yàn)殚_源技術(shù)和互聯(lián)網(wǎng)技術(shù)的發(fā)展和業(yè)務(wù)模式的跨平臺(tái),跨地區(qū)的特性,很多服務(wù)需要SIP技術(shù)的支持,同時(shí)SIP技術(shù)也正好滿足了其服務(wù)場(chǎng)景;陂_源的SIP應(yīng)用平臺(tái)非常豐富,用戶可以選擇SIP軟交換服務(wù)器(Kamailio/OpenSIPs),可以選擇SIP媒體服務(wù)器(Asterisk/FreeSWITCH),SIP UA(PJSIP/oSIP/Sofia SIPSIP.js/JsSIP)客戶端等不同工具來適應(yīng)多種復(fù)雜的業(yè)務(wù)模式。SIP終端可以充分部署到目前各種應(yīng)用場(chǎng)景中,并且具備了非常好的移動(dòng)性,物聯(lián)網(wǎng)接入支持,邊緣終端集成支持,語(yǔ)音數(shù)據(jù)采集終端支持,并且可以無縫和嵌入式ARM產(chǎn)品兼容。我們可以不夸張地說,天時(shí)地利人和是SIP技術(shù)非常受歡迎的原因,其他技術(shù)沒有遇到如此好的時(shí)間點(diǎn),有的技術(shù)本身也受當(dāng)時(shí)環(huán)境的限制,逐漸被市場(chǎng)拋棄也是正常的。同時(shí),各種軟硬件IP產(chǎn)品廠家也不會(huì)浪費(fèi)這個(gè)機(jī)會(huì),大家都紛紛推出了自己的基于SIP平臺(tái)的各種IP網(wǎng)絡(luò)設(shè)備和解決方案,包括思科,微軟,Avaya,Ribbon, Sangoma,奧科,NEC包括國(guó)內(nèi)知名廠家鼎信通達(dá)和三匯等廠家。
除了企業(yè)融合通信方面,國(guó)內(nèi)市場(chǎng)有很多的調(diào)度系統(tǒng)和應(yīng)急指揮中心也已經(jīng)開始部署各種SIP終端設(shè)備。通過各種SIP終端設(shè)備和上游服務(wù)器端集成實(shí)現(xiàn)媒體流的業(yè)務(wù)處理。
另外一個(gè)關(guān)于SIP進(jìn)一步融入到實(shí)際語(yǔ)音應(yīng)用中的一個(gè)最新推動(dòng)力就是WebRTC。WebRTC最近幾年非;馃幔呀(jīng)深入部署在各種用戶場(chǎng)景中,它和SIP是非常完美的結(jié)合;赪ebRTC的視頻會(huì)議平臺(tái)還是其他視頻呼叫中心等業(yè)務(wù),仍然需要SIP協(xié)議支持。關(guān)于WebRTC的基本技術(shù)概要,讀者可以參考:完整WebRTC技術(shù)及應(yīng)用概要
以上筆者從運(yùn)營(yíng)商角度,服務(wù)提供商角度和周邊技術(shù)發(fā)展的背景粗略地角度討論了SIP技術(shù)如此受歡迎的原因。當(dāng)然,技術(shù)受歡迎的前提是用戶最終得到了好處,服務(wù)提供商或者廠家才有動(dòng)力去進(jìn)行開發(fā)。從用戶角度來說,SIP的幾個(gè)好處也是非常明顯的:
- 比較低廉的語(yǔ)音花費(fèi),豐富的SIP trunk資源
- 豐富的服務(wù)支持,包括語(yǔ)音會(huì)議,視頻會(huì)議服務(wù),訂閱型的各種服務(wù),例如呼叫中心,IPPBX
- 豐富的各種接口服務(wù)可以和語(yǔ)音識(shí)別等平臺(tái)進(jìn)行對(duì)接集成
- 用戶可以非常明確獲知對(duì)方在線狀態(tài),方便及時(shí)溝通
具備強(qiáng)大靈活地移動(dòng)性支持,滿足了軟電話終端,物理終端支持,同時(shí)實(shí)現(xiàn)了辦公環(huán)境的運(yùn)動(dòng)支持。企業(yè)通信平臺(tái)有能力為員工提供遠(yuǎn)程辦公,移動(dòng)辦公,在家辦公等工作方式,實(shí)現(xiàn)了非常良好的用戶體驗(yàn)
SIP相關(guān)產(chǎn)品可以實(shí)現(xiàn)軟硬件本地部署方式,同時(shí)也可以實(shí)現(xiàn)基于云平臺(tái)的各種部署方式,滿足了不同用戶群體的使用場(chǎng)景。
3SIP協(xié)議以及相關(guān)周邊主要協(xié)議
我們知道,在RFC3261的定義中定義了SIP僅負(fù)責(zé)SIP信令協(xié)商,信令協(xié)商以外的處理流程需要其他協(xié)議來支持。以下示例簡(jiǎn)單說明了一個(gè)SIP呼叫通過UDP或者TCP進(jìn)行傳輸,配合SDP描述對(duì)媒體進(jìn)行支持的說明,最后通過RTP傳輸各種語(yǔ)音支持。
在討論SIP協(xié)議,我們需要配合周邊的其他協(xié)議來討論。周邊的信令涉及很多,包括SIP核心相關(guān)協(xié)議和概念定義,會(huì)話描述相關(guān)協(xié)議,拓展協(xié)議,PSTN/3GPP協(xié)議,服務(wù)功能和質(zhì)量保證協(xié)議等。通過一個(gè)完整的SIP脈絡(luò)圖例,幫助用戶能夠全面了解整個(gè)SIP和相關(guān)技術(shù)的應(yīng)用,同時(shí)建立起一個(gè)完整的技術(shù)架構(gòu)。如果讀者有興趣了解所有相關(guān)SIP協(xié)議和周邊協(xié)議的話,可以點(diǎn)擊以下鏈接閱讀其具體內(nèi)容:
圖解完整SIP協(xié)議以及相關(guān)周邊協(xié)議
在我們的基本概論的討論中,筆者希望讀者先了解幾個(gè)基本的協(xié)議:
- RFC3261-SIP核心規(guī)范
- RFC3515-REFER
- RFC3372-SIP-T
- RFC3311-UPDATE
- RFC3264-SDP
- RFC3891-REPLACES
- RFC3428-SIMPLE
筆者雖然羅列了很多相關(guān)協(xié)議,因?yàn)槲覀兊臅r(shí)間和知識(shí)背景有限,我們不可能對(duì)所有的知識(shí)有深入的理解。為了保證讀者能夠通過一個(gè)知識(shí)架構(gòu)了解其知識(shí)體系,仍然建議讀者能夠適當(dāng)涉獵一些必要的協(xié)議以加深對(duì)SIP協(xié)議和應(yīng)用的進(jìn)一步了解。
4總結(jié)
在本文章中,筆者首先介紹了SIP協(xié)議的基本內(nèi)容,另外介紹了目前市場(chǎng)上為什么SIP協(xié)議成為了主流的協(xié)議,以及其發(fā)展壯大的多種背景因素。在接下來的章節(jié)中,筆者將具體介紹SIP的一些核心概念和各種服務(wù)器端處理流程。
參考資料:
- https://datatracker.ietf.org/doc/html/rfc2543
- https://datatracker.ietf.org/doc/html/rfc3261
- www.dinstar.cn
- www.asterisk.org.cn
- https://www.cs.columbia.edu/~hgs/
- https://www.ciscolive.com/c/dam/r/ciscolive/emea/docs/2016/pdf/BRKUCC-2006.pdf