SIP
SIP(Session Initiation Protocol锻狗,會話初始協(xié)議)是一個用于建立满力、更改和終止多媒體會話的應(yīng)用層控制協(xié)議焕参,其中的會話可以是IP電話、多媒體會話或多媒體會議油额。SIP是IETF多媒體數(shù)據(jù)和控制體系結(jié)構(gòu)的核心協(xié)議(最新RFC文檔是RFC 3261)叠纷。其主要目的是為了解決IP網(wǎng)中的信令控制,以及同軟交換平臺的通信潦嘶,從而構(gòu)成下一代的增值業(yè)務(wù)平臺涩嚣,對電信、銀行掂僵、金融等行業(yè)提供更好的增值業(yè)務(wù)航厚。
SIP用于發(fā)起會話,它能控制多個參與者參加的多媒體會話的建立和終結(jié)锰蓬,并能動態(tài)調(diào)整和修改會話屬性幔睬,如會話帶寬要求、傳輸?shù)拿襟w類型(語音芹扭、視頻和數(shù)據(jù)等)麻顶、媒體的編解碼格式、對組播和單播的支持等舱卡。SIP協(xié)議基于文本編碼辅肾,大量借鑒了成熟的HTTP協(xié)議,并且具有易擴展灼狰、易實現(xiàn)等特點宛瞄,因此非常適合用來實現(xiàn)基于因特網(wǎng)的多媒體通信系統(tǒng)。
基本概念介紹
1.?多媒體會話
根據(jù)RFC 2327的定義交胚,多媒體會話(Multimedia Session)是指一組多媒體發(fā)送者和接受者份汗,以及從發(fā)送者到接受者的數(shù)據(jù)流。例如一個多媒體會議就是一個多媒體會話蝴簇。一個會話由一組用戶名稱杯活、會話ID、網(wǎng)絡(luò)類型熬词、地址類型以及各個單元的地址來確定旁钧。
2.?用戶代理
用戶代理(UA,User Agent)也稱SIP終端互拾,是指支持SIP協(xié)議的多媒體會話終端歪今。一般使用支持SIP協(xié)議的路由器作為SIP UA。
UA包括用戶代理客戶端(UAC颜矿,User Agent Client)和用戶代理服務(wù)器(UAS寄猩,User Agent Server)。一般說的UA均是指二者的總稱骑疆,因為在一次呼叫中田篇,一個SIP終端既要處理SIP請求替废,又要發(fā)起SIP請求。
用戶代理客戶端是指在SIP會話建立過程中主動發(fā)送會話請求的設(shè)備泊柬。例如椎镣,主叫SIP終端。當(dāng)代理服務(wù)器向被叫終端發(fā)送會話請求時兽赁,它就成為用戶代理客戶端状答。
用戶代理服務(wù)器是指在SIP會話建立過程中接收會話請求的設(shè)備。例如闸氮,被叫SIP終端剪况。當(dāng)代理服務(wù)器接收主叫終端發(fā)送會話請求時,也作為用戶代理服務(wù)器蒲跨。
3.?代理服務(wù)器
代理服務(wù)器(Proxy Server)的作用就是傳遞主叫UA發(fā)送的會話請求到被叫UA译断,然后將被叫UA的響應(yīng)傳遞回主叫UA,它相當(dāng)于主叫UA和被叫UA之間傳遞會話消息的一座橋梁或悲。代理服務(wù)器在接收到主叫UA的會話請求后孙咪,首先要向位置服務(wù)器請求查找被叫UA的位置以及主、被叫UA的呼叫策略信息巡语。只有找到被叫UA并且此呼叫是允許的翎蹈,代理服務(wù)器才會向被叫UA發(fā)送會話請求。代理服務(wù)器一般在SIP會話中都是需要的男公。
4.?重定向服務(wù)器
重定向服務(wù)器(Redirect Server)用來指示客戶端連接的新地址荤堪。比如,主叫UA呼叫被叫UA枢赔,當(dāng)重定向服務(wù)器收到主叫UA發(fā)送的會話請求消息后澄阳,查找被叫UA的位置信息,然后將其返回給主叫UA踏拜,使主叫UA重新向該位置發(fā)起會話請求碎赢。此位置可以是被叫UA的位置,也可以是一個代理服務(wù)器的位置速梗。接下來主叫UA如同直接呼叫被叫UA或者向代理服務(wù)器呼叫的流程一樣肮塞。
5.?位置服務(wù)器
位置服務(wù)器(Location Server)是為代理服務(wù)器和重定向服務(wù)器等提供UA信息的設(shè)備。位置服務(wù)器記錄了注冊服務(wù)器接收到的UA的信息姻锁。二者可以獨立存在枕赵,也可以作為邏輯組件存在于同一臺服務(wù)器上。
6.?注冊服務(wù)器
注冊服務(wù)器(Registrar Server)接受用戶注冊位隶,注冊的內(nèi)容(如本地號碼等信息)一般是存儲在位置服務(wù)器上烁设,供后續(xù)查詢使用。二者都是邏輯組件,一般存在于同一臺服務(wù)器上装黑。
SIP的功能和特點
1.?功能
SIP主要有五個基本功能:
l?確定用戶位置:確定被叫SIP用戶所在的位置。SIP的最強大之處就是用戶定位功能弓熏,它可以利用SIP終端在注冊服務(wù)器上的注冊信息實現(xiàn)用戶定位恋谭,也可以利用其他定位服務(wù)器,如DNS挽鞠、LDAP等提供的定位服務(wù)來增強其定位功能疚颊。
l?確定用戶可用性:確定被叫會話終端是否可以參加此會話。SIP支持多種地址描述和尋址方式信认,包括SIP-URI(比如sip:123456@172.18.24.11)材义、Tel-URL(比如tel:+1312000)和SIPS-URI(sips:123456@172.18.24.11)。這樣嫁赏,SIP主叫根據(jù)被叫地址其掂,就可以識別出被叫是否在傳統(tǒng)電話網(wǎng)上,然后通過一個與傳統(tǒng)電話網(wǎng)相連的網(wǎng)關(guān)向被叫發(fā)起并建立呼叫潦蝇。
l?確定用戶能力:確定被叫終端可用于參加會話的媒體類型及媒體參數(shù)款熬。SIP終端在消息交互過程中攜帶自身的媒體類型和媒體參數(shù),這使得會話雙方都可以明確對方的會話能力攘乒。
l?建立會話:建立主被叫雙方的會話贤牛。SIP會話雙方通過協(xié)商媒體類型和媒體參數(shù),最終選擇雙方都具有的能力建立起會話则酝。
l?管理會話:可以更改會話參數(shù)或中止會話殉簸。
2.?特點
SIP的特點如下:
l?標(biāo)準(zhǔn)的開放性」炼铮可以將不同運營商引進的各種新的功能般卑、產(chǎn)品和服務(wù)整合在一起,供用戶自由地選擇妥泉。
l?配置的靈活性椭微。兼容多種撥號方式,能在有線或無線的設(shè)備上實現(xiàn)盲链,可以進行高度靈活的配置蝇率,并且能夠和其它系統(tǒng)協(xié)同工作。
l?系統(tǒng)可擴容性刽沾。隨著企業(yè)規(guī)模的擴大本慕,系統(tǒng)也可以隨之?dāng)U充。
l?支持遠(yuǎn)端用戶侧漓。無論用戶身在何方锅尘,都可以將企業(yè)的網(wǎng)絡(luò)延伸到那里。
l?企業(yè)各部分通訊方式的一致性。分支機構(gòu)藤违、家庭辦公室和出差人員使用同樣的撥號方式和系統(tǒng)訪問方式浪腐,便于管理。
l?迅速啟動顿乒。當(dāng)建立新的分支機構(gòu)议街、吸納新的員工,或重新安排員工工作或改變其工作地點時璧榄,系統(tǒng)相應(yīng)變更非常迅速特漩。
l?易安裝、可維護骨杂。非專業(yè)人士也可以安裝或維護SIP系統(tǒng)涂身。
SIP消息
SIP消息采用文本方式編碼,包括請求消息與響應(yīng)消息兩類搓蚪。
SIP請求消息包括INVITE蛤售、ACK、OPTIONS陕凹、BYE悍抑、CANCEL和REGISTER等。RFC 3261定義的請求消息有以下六種杜耙。
l?INVITE請求消息用于邀請用戶加入一個呼叫搜骡。
l?ACK:用于對請求消息的響應(yīng)消息進行確認(rèn)。
l?OPTIONS:用于請求協(xié)商能力信息佑女。
l?BYE:用于釋放已建立的呼叫记靡。
l?CANCEL:用于釋放尚未建立的呼叫。
l?REGISTER:用于向SIP注冊服務(wù)器登記用戶位置等信息团驱。
SIP響應(yīng)消息用于對請求消息進行響應(yīng)摸吠,指示呼叫或注冊的成功或失敗狀態(tài)。不同類的響應(yīng)消息由狀態(tài)碼來區(qū)分嚎花,狀態(tài)碼包含三位整數(shù)寸痢,狀態(tài)碼的第一位用于定義響應(yīng)類型,另外兩位用于進一步對響應(yīng)進行更加詳細(xì)的說明紊选。響應(yīng)消息的分類表?1所示啼止。
狀態(tài)碼編號消息含義消息歸類
100~199請求被收到,正在處理中臨時消息
200~299收到請求兵罢,并被成功處理献烦,接受該請求處理成功
300~399要完成該請求需要更進一步的操作重定向
400~499消息語法錯誤,服務(wù)器不能處理該請求客戶端出錯
500~599由于UAS/Server的原因卖词,無法處理該請求服務(wù)器出錯
600~699該請求在任何UAS/Server上都不能完成全局錯誤
SIP工作原理簡介
1.?登記注冊
在完整的SIP系統(tǒng)中巩那,所有的SIP終端作為User Agent都應(yīng)該向注冊服務(wù)器登記注冊,以告知其位置、會話能力即横、呼叫策略等信息噪生。
通常,SIP終端開機啟動或者配置管理員執(zhí)行注冊操作時东囚,就向注冊服務(wù)器發(fā)送注冊請求消息(REGISTER)杠园,該消息中攜帶了所有需要登記的信息。注冊服務(wù)器收到注冊請求消息后向終端發(fā)送回應(yīng)消息舔庶,以告知其請求消息已收到。如果注冊成功陈醒,就再向終端發(fā)送“200 OK”消息惕橙。如圖?1所示。
圖 1?UA向Registrar注冊的消息交互
2.?建立呼叫
SIP協(xié)議采用Client/Server模型钉跷,主要通過UA與代理服務(wù)器之間的通信來完成用戶呼叫的建立過程弥鹦。
圖 2?UA通過Proxy Server建立呼叫
如圖?2所示,Telephone A需要呼叫電話Telephone B爷辙,兩臺路由器作為SIP終端(UA)棺棵。當(dāng)Telephone A撥完電話Telephone B的號碼后盈滴,Router A向Proxy Server發(fā)送會話請求消息。Proxy Server通過查找Telephone B的號碼所對應(yīng)的信息,向Router B發(fā)送會話請求消息轨域。Router B收到請求后,如果Telephone B可用硅急,就向Proxy Server發(fā)送應(yīng)答赊窥,并使Telephone B振鈴。Proxy Server收到應(yīng)答后臊旭,向Router A發(fā)送應(yīng)答消息落恼。這里所說的應(yīng)答包括:兩個臨時應(yīng)答(100 Trying?和180 Ringing)和一個成功應(yīng)答(200 OK)。整個過程中的消息交互如圖?3所示离熏。
圖 3?UA通過Proxy Server建立呼叫的流程圖
這個例子是一種簡單的應(yīng)用佳谦,只使用了一個代理服務(wù)器。在復(fù)雜的應(yīng)用中滋戳,可以有多個代理服務(wù)器钻蔑,以及注冊服務(wù)器。
3.?重定向呼叫
SIP重定向服務(wù)器收到會話請求消息后胧瓜,不是轉(zhuǎn)發(fā)會話請求消息矢棚,而是在回應(yīng)消息中告知被叫SIP終端的地址。主叫終端從而重新直接向被叫終端發(fā)送會話請求消息府喳。被叫終端也將直接向主叫終端發(fā)送應(yīng)答消息蒲肋。呼叫過程的消息交互如圖?4所示。
圖 4?UA重定向呼叫流程圖
這是比較常見的一種應(yīng)用。從原理上來說兜粘,重定向服務(wù)器也可以向主叫終端回復(fù)一個代理服務(wù)器的地址申窘,接下來的呼叫過程就和使用代理服務(wù)器的呼叫過程一樣。
SIP支持的傳輸協(xié)議
SIP是一個應(yīng)用層的會話協(xié)議孔轴,與一般協(xié)議不同的是剃法,SIP協(xié)議可以同時支持各種傳輸協(xié)議:
l?SIP支持UDP傳輸:UDP是一個無連接的協(xié)議,且不提供可靠性路鹰。在UDP上建立SIP連接存在不可靠性贷洲。
l?SIP支持TCP傳輸:增加了SIP報文和語音傳輸?shù)目煽啃裕ㄟ^TCP協(xié)議自身的特點為基于SIP的VoIP通信提供了面向連接和可靠的傳輸晋柱。SIP使用TCP傳輸協(xié)議后优构,SIP協(xié)議可以不需要考慮報文丟失和重傳問題。
l?SIP支持TLS(Transport Layer Security雁竞,傳輸層安全)傳輸:SIP支持TCP傳輸僅僅保證了SIP報文和語音傳輸?shù)目煽啃郧胀郑鳶IP支持TLS傳輸則保證了SIP報文傳輸?shù)陌踩裕唧w內(nèi)容請參見“信令加密”碑诉。
以上三種傳輸協(xié)議各具特點彪腔,用戶可以根據(jù)實際的應(yīng)用環(huán)境采用不同的傳輸協(xié)議,目前不支持呼叫中切換傳輸協(xié)議进栽。
TLS本身運行于TCP之上德挣,并且提供了通信雙方身份識別和加密SIP報文的一整套安全方案,為應(yīng)用層協(xié)議服務(wù)泪幌。建立TLS連接時需要認(rèn)證雙方用戶的身份盲厌,因此用戶雙方必須有各自合法的數(shù)字證書,只有通過認(rèn)證的用戶才可以進行后續(xù)的通信祸泪。使用TLS傳輸SIP報文吗浩,SIP報文在整個傳輸過程全部被加密,這樣能夠最大程度的保護用戶數(shù)據(jù)不被他人非法竊取没隘,提高了語音通信的安全性懂扼。
目前支持的媒體流協(xié)議包括:RTP(Real-time Transport Protocol,實時傳輸協(xié)議)和RTCP(Real-Time Transport Control Protocol右蒲,實時傳輸控制協(xié)議)阀湿。RTP用于為具有實時特征的數(shù)據(jù)(如交互音頻和視頻)提供端到端網(wǎng)絡(luò)的實時傳輸服務(wù);RTCP用于實時監(jiān)控傳輸質(zhì)量瑰妄,并提供擁塞控制和流控制陷嘴。RTP和RTCP配合使用,就能以有效的反饋和最小的開銷使傳輸效率最佳化间坐。在網(wǎng)絡(luò)中媒體流是明文傳輸?shù)脑职ぃ瑸榱吮WC通信內(nèi)容的安全性邑退,SRTP協(xié)議應(yīng)運而生。
SRTP(Secure Real-time Transport Protocol劳澄,安全RTP協(xié)議)通過對RTP/RTCP報文的有效負(fù)載進行加密地技,實現(xiàn)對RTP/RTCP報文的加密、認(rèn)證以及報文重傳保護秒拔。
采用SRTP加密媒體流莫矗,首先需要協(xié)商加密信息,目前僅支持在SDP(Session Description Protocol砂缩,會話描述協(xié)議)中通過crypto頭域進行加密協(xié)商作谚。發(fā)起方將本端支持的加密屬性信息發(fā)送給接收方進行協(xié)商,協(xié)商成功后庵芭,接收方返回相應(yīng)的加密屬性信息食磕。會話建立后,雙方各自使用自己的密鑰加密RTP/RTCP報文喳挑,使用對端的密鑰解密對方發(fā)送的RTP/RTCP報文。
SDP協(xié)商主要包括以下參數(shù)信息:
表 2?加密屬性參數(shù)
參數(shù)名稱參數(shù)含義說明
Tag加密屬性信息標(biāo)識符滔悉,在不同的加密屬性行中的tag值必須不同伊诵,接收方根據(jù)Tag值來決定使用哪一組加密屬性必選協(xié)商參數(shù)
Crypto-Suite加密套件,定義加密和認(rèn)證使用的算法回官。目前只支持AES_CM_128_HMAC_SHA1_80和AES_CM_128_HMAC_SHA1_32兩種套件必選協(xié)商參數(shù)
Key Parameters密鑰參數(shù)定義密鑰信息曹宴,主要包括密鑰生成方法和密鑰值必選協(xié)商參數(shù)
Session Parameters會話信息定義了與該會話相關(guān)的參數(shù),如密鑰衍生率歉提、UNENCRYPTED_SRTP笛坦、UNENCRYPTED_SRTCP、UNAUTHENTICATED_SRTP苔巨、FEC等可選協(xié)商參數(shù)版扩,暫不支持
使用SRTP協(xié)議加密RTP/RTCP報文時,如果使能加密引擎侄泽,則使用加密引擎進行報文加密和認(rèn)證處理礁芦,若未使能加密引擎,則使用CPU進行報文加密和認(rèn)證處理悼尾。
TLS可以保護通話中的控制信令柿扣,防止用戶信息被竊取。SRTP協(xié)議可以對語音媒體流進行加密和認(rèn)證等保護措施闺魏。兩者可以單獨使用未状,也可以同時使用,表?3列舉了四種組合方式析桥。
信令是否使用TLS媒體是否使用SRTP描述
是是信令報文是安全的司草,用戶的個人信息能夠得到有效保護
媒體報文是安全的艰垂,用戶的通話內(nèi)容能夠得到有效保護
推薦使用
否是信令報文是不安全的,用戶的個人信息無法得到有效保護
媒體報文是安全的翻伺,用戶的通話內(nèi)容能夠得到有效保護
是否信令報文是安全的材泄,用戶的個人信息能夠得到有效保護
媒體報文是不安全的,用戶的通話內(nèi)容無法得到有效保護
否否信令報文是不安全的吨岭,用戶的個人信息無法得到有效保護
媒體報文是不安全的拉宗,用戶的通話內(nèi)容無法得到有效保護
如圖?5所示,使用QSIG信令的ISDN網(wǎng)絡(luò)發(fā)起呼叫辣辫,跨越SIP網(wǎng)絡(luò)到達(dá)另一側(cè)使用QSIG的ISDN網(wǎng)絡(luò)旦事,在此應(yīng)用中,連接ISDN網(wǎng)絡(luò)和SIP網(wǎng)絡(luò)的接口網(wǎng)關(guān)設(shè)備充當(dāng)了對QSIG信令和SIP信令的互相轉(zhuǎn)換的功能急灭。目前的此類網(wǎng)關(guān)設(shè)備大多只能對基本呼叫信令進行轉(zhuǎn)換姐浮,對于大量的補充業(yè)務(wù)所涉及到的業(yè)務(wù)相關(guān)QSIG信令消息無法完全進行QSIG和SIP信令間的互相映射,這些都需要使用一種在SIP消息體中封裝攜帶原始的QSIG信令內(nèi)容的方法和新的流程葬馋,這種在SIP消息中以類似隧道的方式傳輸ISDN信令的方法稱為SIP-T協(xié)議卖鲤。
圖 5?SIP承載QSIG信令消息呼叫流程圖
SIP-T協(xié)議的核心就是對ISDN消息進行封裝及解封裝。以上圖為例畴嘶,Router A與Router B之間運行SIP協(xié)議蛋逾,SIP網(wǎng)絡(luò)連接兩端ISDN網(wǎng)絡(luò)。對于兩端ISDN網(wǎng)絡(luò)之間的呼叫窗悯,發(fā)送端的QSIG信息最終將由入口網(wǎng)關(guān)處理区匣,封裝到SIP報文中后再發(fā)送給出口網(wǎng)關(guān)。接收到SIP報文后蒋院,出口網(wǎng)關(guān)重新提取在SIP請求中封裝的QSIG信令發(fā)送到接收端ISDN側(cè)亏钩。
和簡單的對QSIG信令和SIP信令消息進行映射相比,SIP-T協(xié)議增強了ISDN信令內(nèi)容的完整性和豐富性欺旧,使一端發(fā)送的ISDN信令信息可以無損傳輸?shù)娇鏢IP網(wǎng)絡(luò)的ISDN另一側(cè)姑丑。
目前,設(shè)備僅支持在SIP消息中攜帶QSIG信令辞友。