1什么是SIP協(xié)議技術(shù)
SIP協(xié)議以及相關(guān)技術(shù)涉及了從協(xié)議規范的抽象層面到非常具體的終端產(chǎn)品,服務(wù)器端應用場(chǎng)景和業(yè)務(wù)層面的控制邏輯等內容。在這些涉及的內容之外,SIP技術(shù)也涉及了其他的一些必要屬性。基于篇幅的關(guān)系,我們這里有必要把一些非常核心的內容介紹給讀者,同時(shí)簡(jiǎn)單介紹一下如何學(xué)習的知識分享。
首先,我們需要了解什么是SIP協(xié)議。Session Initiation Protocol (SIP) 全稱(chēng)是會(huì )話(huà)初始協(xié)議。我們可以將其完整名稱(chēng)分拆出來(lái)來(lái)簡(jiǎn)單分析:
Session Initiation Protocol (SIP):
- Session-會(huì )話(huà)
- Initiation-初始
- Protocol-協(xié)議
最早期的關(guān)于SIP協(xié)議的官方版本是1999年的RFC2543,2002年更新為RFC3261,此規范一直作為當前SIP網(wǎng)絡(luò )的基本標準官方。SIP協(xié)議核心發(fā)明人目前仍然活躍在現在的商業(yè)領(lǐng)域,比較有名的呼叫中心的Five9的CTO Jonathan Rosenberg (SIP核心作者)是其中之一。另外一位非常有名的是Henning Schulzrinne,他是一位哥倫比亞大學(xué)的教授,專(zhuān)注于SIP、RTP的研究。筆者以前經(jīng)常訪(fǎng)問(wèn)其學(xué)校的網(wǎng)頁(yè),通過(guò)他的一些書(shū)籍做進(jìn)一步學(xué)習。在其頁(yè)面下仍然有很多非常有價(jià)值的參考書(shū)籍和工具。讀者如果有興趣的話(huà),可以訪(fǎng)問(wèn)參考鏈接做進(jìn)一步學(xué)習。
我們一談到網(wǎng)絡(luò )協(xié)議,基本上它是都是非常抽象的。它不涉及到具體的每個(gè)產(chǎn)品,但是,它需要通過(guò)具體的產(chǎn)品來(lái)體現,具體的產(chǎn)品必須遵守其協(xié)議制定的規則,其他產(chǎn)品才能和其進(jìn)行協(xié)同工作。如果我們稍微嚴謹一點(diǎn)來(lái)進(jìn)一步說(shuō)明其抽象性的話(huà),我們可以這樣說(shuō)明。我們沒(méi)有見(jiàn)過(guò)汽車(chē)(因為汽車(chē)本身就是一個(gè)汽車(chē)總的抽象),但是,我們見(jiàn)過(guò)豐田汽車(chē),豐田汽車(chē)的哪個(gè)型號。在關(guān)于SIP的協(xié)議討論中,我們也面臨討論的問(wèn)題。大家基本上都見(jiàn)過(guò)SIP話(huà)機或者語(yǔ)音網(wǎng)關(guān),但是你沒(méi)有見(jiàn)過(guò)SIP。所以,讀者理解我們討論的SIP協(xié)議以及其技術(shù)應用概論時(shí),很多讀者比較困惑,特別需要讀者從抽象到具體反復對照學(xué)習。
從SIP協(xié)議的基礎來(lái)說(shuō),大部分的網(wǎng)絡(luò )應用程序工作時(shí)需要創(chuàng )建管理會(huì )話(huà),通過(guò)會(huì )話(huà)管理實(shí)現對網(wǎng)絡(luò )協(xié)議的控制管理。會(huì )話(huà)是參與者之間的數據交換。因為SIP協(xié)議是參考了HTTP協(xié)議發(fā)展而來(lái)的協(xié)議,因此會(huì )話(huà)的基本特性也可以通過(guò)HTTP協(xié)議的會(huì )話(huà)來(lái)理解。會(huì )話(huà)實(shí)現的就是一個(gè)數據交互,雙方的數據交換至少包括會(huì )話(huà)的ID,生命周期,定時(shí)器,結束的管理流程。這些基本特性同樣也適用于基于SIP的會(huì )話(huà)中,雙方或者多方交互的數據無(wú)外乎視頻,文本,語(yǔ)音這三種形式,當然也包括交互過(guò)程中的一些管理需要的數據。我們進(jìn)一步講,如果SIP流程要執行會(huì )話(huà)交換就必須有一個(gè)初始方來(lái)發(fā)起一個(gè)任務(wù),需要知道雙方是否可以工作,是否愿意接受對方的工作要求等,這些都是通過(guò)協(xié)議來(lái)控制。初始流程啟動(dòng)以后,直到數據交互完成以后,通過(guò)結束控制來(lái)通知雙方都停止工作。這些具體的流程步驟也都需要協(xié)議來(lái)管理。在SIP協(xié)議中,很多比較具體細節的控制通過(guò)各種定義,命名來(lái)實(shí)現。因此,從整體來(lái)說(shuō),基本上SIP協(xié)議需要實(shí)現控制信令協(xié)議,媒體(音視頻文本)會(huì )話(huà)控制,定位用戶(hù)地址,用戶(hù)在線(xiàn)狀態(tài)和創(chuàng )建/修改/結束會(huì )話(huà)這幾個(gè)方面的工作。我們將在后續的多個(gè)章節來(lái)進(jìn)一步展開(kāi)討論。這里不再做過(guò)多贅述。
前期學(xué)習SIP協(xié)議和相關(guān)技術(shù)是非常枯燥的。如果讀者能夠從抽象層面了解了SIP協(xié)議,同時(shí)能夠結合具體的SIP終端或者服務(wù)器端架構,讀者基本上就了解了整體的技術(shù)架構實(shí)現。如果讀者在十幾年前學(xué)習SIP和相關(guān)技術(shù)時(shí),因為各種硬件環(huán)境和網(wǎng)絡(luò )使用需求的局限,一般用戶(hù)很難接觸到完整的測試學(xué)習環(huán)境。隨著(zhù)開(kāi)源軟交換和終端技術(shù)的發(fā)展,讀者可以通過(guò)非常低成本的方式來(lái)測試學(xué)習,人們幾乎可以模擬出大部分的應用場(chǎng)景。通過(guò)低成本的學(xué)習環(huán)境配合一些商業(yè)產(chǎn)品可以完成從抽象到具體的整個(gè)學(xué)習路徑。
2為什么使用SIP
SIP技術(shù)是一個(gè)技術(shù)趨勢,這是一個(gè)市場(chǎng)選擇的必然結果。從全球熱詞搜索,我們可以看到,最近年,SIP的搜索占比一直非常高。相反,H323一直處于守勢。

此圖片和以下圖片均來(lái)自于互聯(lián)網(wǎng)資源
如果我們從市場(chǎng)統計數據來(lái)看,SIP trunk服務(wù)的市場(chǎng)也一直在處于增加狀態(tài),并且H323已經(jīng)逐漸被SIP trunk運營(yíng)商替換。

從功能實(shí)現方面,H232和SIP相比,某些功能已經(jīng)不能適應現代網(wǎng)絡(luò )要求。以下是思科的一個(gè)功能對比。因此,技術(shù)迭代是不可避免的。

用戶(hù)選擇使用SIP大概有幾個(gè)方面的原因。很多權威的研究機構和市場(chǎng)調研公司都曾經(jīng)發(fā)布過(guò)很多關(guān)于SIP技術(shù)的一些文章。讀者也可以參考筆者以前的文檔,關(guān)于融合通信市場(chǎng)的分析發(fā)布:企業(yè)融合通信業(yè)務(wù)發(fā)展最新模式總論
除了筆者以前討論的內容以外,這里還有幾點(diǎn)思考內容需要補充。
國外一些主流運營(yíng)商已經(jīng)開(kāi)始通過(guò)SIP提供更多的服務(wù),例如AT&T, Verizon, 沃達豐等有名的服務(wù)商。目前市場(chǎng)上比較有名的呼叫中心服務(wù)和融合通信服務(wù)提供商,例如8x8, Ringcentral,Five9 等提供商也通過(guò)SIP提供其服務(wù)。一些國家已經(jīng)明確停止運營(yíng)PSTN網(wǎng)絡(luò ),不再對用戶(hù)提供PSTN服務(wù)。英國宣布到2025年,英國運營(yíng)商將不再提供PSTN服務(wù),通過(guò)SIP來(lái)提供服務(wù)。很多國家將陸續停止PSTN網(wǎng)絡(luò )的運營(yíng)服務(wù)。
除了一些商業(yè)機構和國家明確了SIP作為主要中繼服務(wù)以外,因為開(kāi)源技術(shù)和互聯(lián)網(wǎng)技術(shù)的發(fā)展和業(yè)務(wù)模式的跨平臺,跨地區的特性,很多服務(wù)需要SIP技術(shù)的支持,同時(shí)SIP技術(shù)也正好滿(mǎn)足了其服務(wù)場(chǎng)景。基于開(kāi)源的SIP應用平臺非常豐富,用戶(hù)可以選擇SIP軟交換服務(wù)器(Kamailio/OpenSIPs),可以選擇SIP媒體服務(wù)器(Asterisk/FreeSWITCH),SIP UA(PJSIP/oSIP/Sofia SIPSIP.js/JsSIP)客戶(hù)端等不同工具來(lái)適應多種復雜的業(yè)務(wù)模式。SIP終端可以充分部署到目前各種應用場(chǎng)景中,并且具備了非常好的移動(dòng)性,物聯(lián)網(wǎng)接入支持,邊緣終端集成支持,語(yǔ)音數據采集終端支持,并且可以無(wú)縫和嵌入式ARM產(chǎn)品兼容。我們可以不夸張地說(shuō),天時(shí)地利人和是SIP技術(shù)非常受歡迎的原因,其他技術(shù)沒(méi)有遇到如此好的時(shí)間點(diǎn),有的技術(shù)本身也受當時(shí)環(huán)境的限制,逐漸被市場(chǎng)拋棄也是正常的。同時(shí),各種軟硬件IP產(chǎn)品廠(chǎng)家也不會(huì )浪費這個(gè)機會(huì ),大家都紛紛推出了自己的基于SIP平臺的各種IP網(wǎng)絡(luò )設備和解決方案,包括思科,微軟,Avaya,Ribbon, Sangoma,奧科,NEC包括國內知名廠(chǎng)家鼎信通達和三匯等廠(chǎng)家。
除了企業(yè)融合通信方面,國內市場(chǎng)有很多的調度系統和應急指揮中心也已經(jīng)開(kāi)始部署各種SIP終端設備。通過(guò)各種SIP終端設備和上游服務(wù)器端集成實(shí)現媒體流的業(yè)務(wù)處理。

另外一個(gè)關(guān)于SIP進(jìn)一步融入到實(shí)際語(yǔ)音應用中的一個(gè)最新推動(dòng)力就是WebRTC。WebRTC最近幾年非常火熱,已經(jīng)深入部署在各種用戶(hù)場(chǎng)景中,它和SIP是非常完美的結合。基于WebRTC的視頻會(huì )議平臺還是其他視頻呼叫中心等業(yè)務(wù),仍然需要SIP協(xié)議支持。關(guān)于WebRTC的基本技術(shù)概要,讀者可以參考:完整WebRTC技術(shù)及應用概要
以上筆者從運營(yíng)商角度,服務(wù)提供商角度和周邊技術(shù)發(fā)展的背景粗略地角度討論了SIP技術(shù)如此受歡迎的原因。當然,技術(shù)受歡迎的前提是用戶(hù)最終得到了好處,服務(wù)提供商或者廠(chǎng)家才有動(dòng)力去進(jìn)行開(kāi)發(fā)。從用戶(hù)角度來(lái)說(shuō),SIP的幾個(gè)好處也是非常明顯的:
- 比較低廉的語(yǔ)音花費,豐富的SIP trunk資源
- 豐富的服務(wù)支持,包括語(yǔ)音會(huì )議,視頻會(huì )議服務(wù),訂閱型的各種服務(wù),例如呼叫中心,IPPBX
- 豐富的各種接口服務(wù)可以和語(yǔ)音識別等平臺進(jìn)行對接集成
- 用戶(hù)可以非常明確獲知對方在線(xiàn)狀態(tài),方便及時(shí)溝通
具備強大靈活地移動(dòng)性支持,滿(mǎn)足了軟電話(huà)終端,物理終端支持,同時(shí)實(shí)現了辦公環(huán)境的運動(dòng)支持。企業(yè)通信平臺有能力為員工提供遠程辦公,移動(dòng)辦公,在家辦公等工作方式,實(shí)現了非常良好的用戶(hù)體驗
SIP相關(guān)產(chǎn)品可以實(shí)現軟硬件本地部署方式,同時(shí)也可以實(shí)現基于云平臺的各種部署方式,滿(mǎn)足了不同用戶(hù)群體的使用場(chǎng)景。
3SIP協(xié)議以及相關(guān)周邊主要協(xié)議
我們知道,在RFC3261的定義中定義了SIP僅負責SIP信令協(xié)商,信令協(xié)商以外的處理流程需要其他協(xié)議來(lái)支持。以下示例簡(jiǎn)單說(shuō)明了一個(gè)SIP呼叫通過(guò)UDP或者TCP進(jìn)行傳輸,配合SDP描述對媒體進(jìn)行支持的說(shuō)明,最后通過(guò)RTP傳輸各種語(yǔ)音支持。

在討論SIP協(xié)議,我們需要配合周邊的其他協(xié)議來(lái)討論。周邊的信令涉及很多,包括SIP核心相關(guān)協(xié)議和概念定義,會(huì )話(huà)描述相關(guān)協(xié)議,拓展協(xié)議,PSTN/3GPP協(xié)議,服務(wù)功能和質(zhì)量保證協(xié)議等。通過(guò)一個(gè)完整的SIP脈絡(luò )圖例,幫助用戶(hù)能夠全面了解整個(gè)SIP和相關(guān)技術(shù)的應用,同時(shí)建立起一個(gè)完整的技術(shù)架構。如果讀者有興趣了解所有相關(guān)SIP協(xié)議和周邊協(xié)議的話(huà),可以點(diǎn)擊以下鏈接閱讀其具體內容:
圖解完整SIP協(xié)議以及相關(guān)周邊協(xié)議

在我們的基本概論的討論中,筆者希望讀者先了解幾個(gè)基本的協(xié)議:
- RFC3261-SIP核心規范
- RFC3515-REFER
- RFC3372-SIP-T
- RFC3311-UPDATE
- RFC3264-SDP
- RFC3891-REPLACES
- RFC3428-SIMPLE
筆者雖然羅列了很多相關(guān)協(xié)議,因為我們的時(shí)間和知識背景有限,我們不可能對所有的知識有深入的理解。為了保證讀者能夠通過(guò)一個(gè)知識架構了解其知識體系,仍然建議讀者能夠適當涉獵一些必要的協(xié)議以加深對SIP協(xié)議和應用的進(jìn)一步了解。
4總結
在本文章中,筆者首先介紹了SIP協(xié)議的基本內容,另外介紹了目前市場(chǎng)上為什么SIP協(xié)議成為了主流的協(xié)議,以及其發(fā)展壯大的多種背景因素。在接下來(lái)的章節中,筆者將具體介紹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