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

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

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

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

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

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

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