一、SIP協(xié)議的背景和功能
SIP( 會(huì)話(huà)初始協(xié)議)的開(kāi)發(fā)目的是用來(lái)幫助提供跨越因特網(wǎng)的高級(jí)電話(huà)業(yè)務(wù)。因特網(wǎng)電話(huà)(IP電話(huà))正在向一種正式的商業(yè)電話(huà)模式演進(jìn),SIP就是用來(lái)確保這種演進(jìn)實(shí)現(xiàn)而需要的NGN(下一代網(wǎng)絡(luò))系列協(xié)議中重要的一員。
SIP是IETF標(biāo)準(zhǔn)進(jìn)程的一部分,它是在諸如SMTP(簡(jiǎn)單郵件傳送協(xié)議)和HTTP(超文本傳送協(xié)議)基礎(chǔ)之上建立起來(lái)的。它用來(lái)建立,改變和終止基于IP網(wǎng)絡(luò)的用戶(hù)間的呼叫。為了提供電話(huà)業(yè)務(wù)它還需要結(jié)合不同的標(biāo)準(zhǔn)和協(xié)議:特別是需要確保傳輸(RTP),與當(dāng)前電話(huà)網(wǎng)絡(luò)的信令互連,能夠確保語(yǔ)音質(zhì)量(RSVP),能夠提供目錄(LDAP),能夠鑒權(quán)用戶(hù)(RADIUS)等等。
SIP被描述為用來(lái)生成,修改和終結(jié)一個(gè)或多個(gè)參與者之間的會(huì)話(huà)。這些會(huì)話(huà)包括因特網(wǎng)多媒體會(huì)議,因特網(wǎng)(或任何IP網(wǎng)絡(luò))電話(huà)呼叫和多媒體發(fā)布。會(huì)話(huà)中的成員能夠通過(guò)多播或單播聯(lián)系的網(wǎng)絡(luò)來(lái)通信。SIP支持會(huì)話(huà)描述,它允許參與者在一組兼容媒體類(lèi)型上達(dá)成一致。它同時(shí)通過(guò)代理和重定向請(qǐng)求到用戶(hù)當(dāng)前位置來(lái)支持用戶(hù)移動(dòng)性。SIP不與任何特定的會(huì)議控制協(xié)議捆綁。
本質(zhì)上,SIP提供以下功能:
名字翻譯和用戶(hù)定位:無(wú)論被呼叫方在哪里都確保呼叫達(dá)到被叫方。執(zhí)行任何描述信息到定位信息的映射。確保呼叫(會(huì)話(huà))的本質(zhì)細(xì)節(jié)被支持。
特征協(xié)商:它允許與呼叫有關(guān)的組(這可以是多方呼叫)在支持的特征上達(dá)成一致(注意:不是所有方都能夠支持相同級(jí)別的特征)。例如視頻可以或不可以被支持??傊?,存在很多需要協(xié)商的范圍。
呼叫參與者管理:呼叫中參與者能夠引入其它用戶(hù)加入呼叫或取消到其它用戶(hù)的連接。此外,用戶(hù)可以被轉(zhuǎn)移或置為呼叫保持。
呼叫特征改變:用戶(hù)應(yīng)該能夠改變呼叫過(guò)程中的呼叫特征。例如,一呼叫可以被設(shè)置為”voice-only”,但是在呼叫過(guò)程中,用戶(hù)可以需要開(kāi)啟視頻功能。也就是說(shuō)一個(gè)加入呼叫的第三方為了加入該呼叫可以開(kāi)啟不同的特征。
二、SIP網(wǎng)絡(luò)元素
SIP中有兩個(gè)要素。SIP用戶(hù)代理和SIP網(wǎng)絡(luò)服務(wù)器。用戶(hù)代理是呼叫的終端系統(tǒng)元素,而SIP服務(wù)器是處理與多個(gè)呼叫相關(guān)聯(lián)信令的網(wǎng)絡(luò)設(shè)備。
用戶(hù)代理本身具有一客戶(hù)機(jī)元素(用戶(hù)代理客戶(hù)機(jī)UAC)和一服務(wù)器元素(用戶(hù)代理服務(wù)器UAS)??蛻?hù)機(jī)元素初始呼叫而服務(wù)器元素應(yīng)答呼叫。這允許點(diǎn)到點(diǎn)的呼叫通過(guò)客戶(hù)機(jī)-服務(wù)器協(xié)議來(lái)完成。
SIP服務(wù)器元素提供多種類(lèi)型的服務(wù)器。有三種服務(wù)器形式存在于網(wǎng)絡(luò)中–SIP有狀態(tài)代理服務(wù)器,SIP無(wú)狀態(tài)代理服務(wù)器和SIP重定向服務(wù)器。由于呼叫者未必知道被呼叫方的IP地址或主機(jī)名,SIP服務(wù)器的主要功能是提供名字解析和用戶(hù)定位??梢垣@得的是email形式的地址或與被呼叫方關(guān)聯(lián)的電話(huà)號(hào)碼。使用該信息,呼叫者的用戶(hù)代理能夠確定特定服務(wù)器來(lái)解析地址信息–這可能涉及網(wǎng)絡(luò)中很多服務(wù)器。
SIP代理服務(wù)器接收請(qǐng)求,決定將這些請(qǐng)求傳送到何處,并且將它們傳送到下一服務(wù)器(使用下一跳路由原理)。在網(wǎng)絡(luò)中可以有多跳。
有狀態(tài)和無(wú)狀態(tài)代理服務(wù)器的區(qū)別是有狀態(tài)代理服務(wù)器記住它接收的入請(qǐng)求,以及回送的響應(yīng)和它轉(zhuǎn)送的出請(qǐng)求。無(wú)狀態(tài)代理服務(wù)器一旦轉(zhuǎn)送請(qǐng)求后就忘記所有的信息。這允許有狀態(tài)代理服務(wù)器生成請(qǐng)求以并行地嘗試多個(gè)可能的用戶(hù)位置并且送回最好的響應(yīng)。無(wú)狀態(tài)代理服務(wù)器可能是最快的,并且是SIP結(jié)構(gòu)的骨干。有狀態(tài)代理服務(wù)器可能是離用戶(hù)代理最近的本地設(shè)備,它控制用戶(hù)域并且是應(yīng)用服務(wù)的主要平臺(tái)。
重定向服務(wù)器接收請(qǐng)求,但不是將這些請(qǐng)求傳遞給下一服務(wù)器而是向呼叫者發(fā)送響應(yīng)以指示被呼叫用戶(hù)的地址。這使得呼叫者可以直接聯(lián)系在下一服務(wù)器上被呼叫方的地址。
三、SIP協(xié)議的實(shí)現(xiàn)機(jī)制
SIP是一個(gè)分層結(jié)構(gòu)的協(xié)議,這意味著它的行為根據(jù)一組平等獨(dú)立的處理階段來(lái)描述,每一階段之間只是松耦合。協(xié)議分層描述是為了表達(dá),從而允許功能的描述可在一個(gè)部分跨越幾個(gè)元素。它不指定任何方式的實(shí)現(xiàn)。當(dāng)我們說(shuō)某元素包含某層,我們是指它順從該層定義的規(guī)則集。
不是協(xié)議規(guī)定的每個(gè)元素都包含各層。而且,由SIP規(guī)定的元素是邏輯元素,不是物理元素。一個(gè)物理實(shí)現(xiàn)可以選擇作為不同的邏輯元素,甚至可能在一個(gè)個(gè)事務(wù)的基礎(chǔ)上。
SIP的最底層是語(yǔ)法和編碼。它的編碼使用增強(qiáng)Backus-Nayr形式語(yǔ)法(BNF)來(lái)規(guī)定。
第二層是傳輸層。它定義了網(wǎng)絡(luò)上一個(gè)客戶(hù)機(jī)如何發(fā)送請(qǐng)求和接收響應(yīng)以及一個(gè)服務(wù)器如何接收請(qǐng)求和發(fā)送響應(yīng)。所有的SIP元素包含傳輸層。
第三層是事務(wù)層。事務(wù)是SIP的基本元素。一個(gè)事務(wù)是由客戶(hù)機(jī)事務(wù)發(fā)送給服務(wù)器事務(wù)的請(qǐng)求(使用傳輸層),以及對(duì)應(yīng)該請(qǐng)求的從服務(wù)器事務(wù)發(fā)送回客戶(hù)機(jī)的所有響應(yīng)組成。事務(wù)層處理應(yīng)用層重傳,匹配響應(yīng)到請(qǐng)求,以及應(yīng)用層超時(shí)。任何用戶(hù)代理客戶(hù)機(jī)(UAC)完成的任務(wù)使用一組事務(wù)產(chǎn)生。用戶(hù)代理包含一個(gè)事務(wù)層,有狀態(tài)的代理也有。無(wú)狀態(tài)的代理不包含事務(wù)層。事務(wù)層具有客戶(hù)機(jī)組成部分(稱(chēng)為客戶(hù)機(jī)事務(wù))和服務(wù)器組成部分(稱(chēng)為服務(wù)器事務(wù)),每個(gè)代表有限的狀態(tài)機(jī),它被構(gòu)造來(lái)處理特定的請(qǐng)求。
事務(wù)層之上的層稱(chēng)為事務(wù)用戶(hù)(TU)。每個(gè)SIP實(shí)體,除了無(wú)狀態(tài)代理,都是事務(wù)用戶(hù)。當(dāng)一個(gè)TU希望發(fā)送請(qǐng)求,它生成一個(gè)客戶(hù)機(jī)事務(wù)實(shí)例并且向它傳遞請(qǐng)求和IP地址,端口,和用來(lái)發(fā)送請(qǐng)求的傳輸機(jī)制。一個(gè)TU生成客戶(hù)機(jī)事務(wù)也能夠刪除它。當(dāng)客戶(hù)機(jī)取消一個(gè)事務(wù)時(shí),它請(qǐng)求服務(wù)器停止進(jìn)一步的處理,將狀態(tài)恢復(fù)到事務(wù)初始化之前,并且生成特定的錯(cuò)誤響應(yīng)到該事務(wù)。這由CANCEL請(qǐng)求完成,它構(gòu)成自己的事務(wù),但涉及要取消的事務(wù)。
SIP通過(guò)EMAIL形式的地址來(lái)標(biāo)明用戶(hù)地址。每一用戶(hù)通過(guò)一等級(jí)化的URL來(lái)標(biāo)識(shí),它通過(guò)諸如用戶(hù)電話(huà)號(hào)碼或主機(jī)名等元素來(lái)構(gòu)造(例如:SIP: user@company.com)。因?yàn)樗cEMAIL地址的相似性,SIP URLs容易于用戶(hù)的EMAIL地址關(guān)聯(lián)。
SIP提供它自己的可靠性機(jī)制從而獨(dú)立于分組層,并且只需不可靠的數(shù)據(jù)包服務(wù)即可。SIP可典型地用于UDP或TCP之上。
SIP提供必要的協(xié)議機(jī)制以保證終端系統(tǒng)和代理服務(wù)器提供以下業(yè)務(wù):
● 用戶(hù)定位
● 用戶(hù)能力
● 用戶(hù)可用性
● 呼叫建立
● 呼叫處理
● 呼叫前轉(zhuǎn),包括:(1)等效800類(lèi)型的呼叫,(2)無(wú)應(yīng)答呼叫前轉(zhuǎn),(3)遇忙呼叫前轉(zhuǎn),(4)無(wú)條件呼叫前轉(zhuǎn)
● 呼叫號(hào)碼傳遞,該號(hào)碼可以是任何命名機(jī)制。
● 個(gè)人移動(dòng)性,例如通過(guò)一個(gè)單一的、位置無(wú)關(guān)的地址來(lái)到達(dá)被呼叫方,即使被呼叫方改變了終端。
● 終端類(lèi)型的協(xié)商和選擇:呼叫者可以給出選擇如何到達(dá)對(duì)方,例如通過(guò)因特網(wǎng)電話(huà),移動(dòng)電話(huà)或應(yīng)答業(yè)務(wù)等。
● 終端能力協(xié)商
● 呼叫者和被呼叫者鑒權(quán)
● 不知情和指導(dǎo)式的呼叫轉(zhuǎn)移
● 多播會(huì)議的邀請(qǐng)