SIP的核心思想是邀請新成員加入一個已經(jīng)存在的會話或創(chuàng)建一個新的會話,各成員之間可以通過組播(multicast)、單播(unicast)或兩者結(jié)合的方式進(jìn)行交互。
1.SIP的基本功能及特點(diǎn)
SIP支持會話描述,它允許參與者在一組兼容媒體類型上達(dá)成一致,同時通過代理和重定向請求到用戶當(dāng)前位置來支持用戶移動性。SIP不與任何特定的會議控制協(xié)議捆綁。SIP提供以下功能:
● 名字翻譯和用戶定位:無論被呼叫方在哪里都確保呼叫達(dá)到被叫方。執(zhí)行任何描述信息到定位信息的映射。
● 特征協(xié)商:它允許與呼叫有關(guān)的組(這可以是多方呼叫)在支持的特征上達(dá)成一致。例如是否支持視頻等多種需要協(xié)商的特征。
● 呼叫參與者管理:呼叫中參與者能夠引入其它用戶,加入呼叫或取消到其它用戶的連接。
● 呼叫特征改變:用戶應(yīng)該能夠改變呼叫過程中的呼叫特征。
SIP既可以用于建立各種會話,也可以用來傳送即時消息和文件。能夠靈活、方便地提供業(yè)務(wù),具有多方面優(yōu)點(diǎn)。
● 協(xié)議可擴(kuò)展性:SIP協(xié)議具有強(qiáng)大的擴(kuò)充機(jī)制。SIP協(xié)議的擴(kuò)展性主要體現(xiàn)在其消息的擴(kuò)展上,SIP消息的三個基本部分:消息類型、消息頭、消息體,都可以被不斷擴(kuò)充。SIP消息基于文本方式,使得各種擴(kuò)充工作都變得十分簡潔。
● 開放的業(yè)務(wù)生成環(huán)境:SIP網(wǎng)絡(luò)的業(yè)務(wù)提供主要由Proxy Server完成,生成一個業(yè)務(wù)就是設(shè)計(jì)一個業(yè)務(wù)邏輯從而對一個特定的消息流進(jìn)行控制,或?qū)ο⒄埱笞龀鱿鄳?yīng)的響應(yīng)。
● 支持移動性:SIP的動態(tài)注冊機(jī)制,使用戶端移動變得十分方便。
2.SIP協(xié)議的分層結(jié)構(gòu)
SIP是一個分層結(jié)構(gòu)協(xié)議,它的行為根據(jù)一組平等獨(dú)立的處理階段來描述,每一階段之間只是松耦合。
SIP的最底層是語法和編碼。它的編碼使用增強(qiáng)Backus-Nayr形式語法(BNF)來規(guī)定。
第二層是傳輸層,定義了網(wǎng)絡(luò)上客戶機(jī)與服務(wù)器發(fā)送請求和接收響應(yīng)的方式,所有的SIP元素包含傳輸層。
第三層是事務(wù)層。事務(wù)是SIP的基本元素。事務(wù)層具有客戶機(jī)組成部分(稱為客戶機(jī)事務(wù))和服務(wù)器組成部分(稱為服務(wù)器事務(wù)),一個事務(wù)由客戶機(jī)事務(wù)發(fā)送給服務(wù)器事務(wù)的請求(使用傳輸層),以及服務(wù)器事務(wù)發(fā)送對應(yīng)該請求的響應(yīng)組成。
事務(wù)層之上的層為事務(wù)用戶(TU)。當(dāng)一個TU希望發(fā)送請求時,生成一個客戶機(jī)事務(wù)實(shí)例并向它傳遞請求和IP地址、端口和用來發(fā)送請求的傳輸機(jī)制。
3.SIP協(xié)議的消息機(jī)制
SIP采用C/S結(jié)構(gòu),通過消息機(jī)制來建立會話。SIP消息包括請求消息和響應(yīng)消息,二者具有相同的消息格式。
SIP消息是UAC和UAS之間通信的基本信息單元,采用的是基于UTF-8的文本編碼格式,語法信息以擴(kuò)展Backus-Naur形式(EBNF)描述,消息格式遵循RFC2822。
SIP消息的通用格式是:
Generic-message = start-line
*message-header
CRLF
[message-body]
start-line: SIP消息起始行。
*message-header:多個頭域。
CRLF:空行,表示消息頭域的結(jié)束
message-body:消息體部分。
SIP消息有兩種:客戶機(jī)到服務(wù)器的請求(Request), 服務(wù)器到客戶機(jī)的響應(yīng)(Response) .
4. SIP系統(tǒng)得功能實(shí)體及工作流程
SIP系統(tǒng)采用C\S模式,利用消息機(jī)制建立并管理會話。按邏輯功能,SIP系統(tǒng)可分為四大功能實(shí)體:SIP用戶代理、SIP代理服務(wù)器、SIP重定向服務(wù)器和SIP注冊服務(wù)器,它們共同構(gòu)成了SIP系統(tǒng)的基本模型。
SIP用戶代理(SIP UA):又稱為SIP終端,是SIP系統(tǒng)中的最終用戶,在RFC3261中將它們定義為一個應(yīng)用。根據(jù)它們在會話中扮演的角色的不同,又可分為用戶代理客戶機(jī)(UAC)和用戶代理服務(wù)器(UAS)兩種。其中前者用于發(fā)起呼叫請求,后者用于當(dāng)接到SIP請求時聯(lián)系用戶,并代表用戶返回響應(yīng)。
SIP代理服務(wù)器(SIP Proxy Server):是一個中間元素,它既是一個客戶機(jī)又是一個服務(wù)器,能夠代理前面的用戶向下一跳服務(wù)器發(fā)出呼叫請求。SIP代理服務(wù)器除了路由能力外,也可以集成防火墻、radius(AAA)等功能。
SIP重定向服務(wù)器(SIP Redirect Server):是一個規(guī)劃SIP呼叫路徑的服務(wù)器,在獲得了下一跳的地址后,立刻告訴前面的用戶,讓該用戶直接向下一跳地址發(fā)出請求而自己則退出對這個呼叫的控制。
SIP注冊服務(wù)器(SIP Register Server):用來完成對UAS的登錄,在SIP系統(tǒng)的網(wǎng)元中,所有UAS都要在某個登錄服務(wù)器中登錄,以便UAC通過服務(wù)器能找到它們。注冊服務(wù)并不做請求的身份認(rèn)證的判定。在SIP中授權(quán)和認(rèn)證可以通過建立在基于請求/應(yīng)答的模式上的上下文相關(guān)的請求來實(shí)現(xiàn),也可以使用更底層的方式來實(shí)現(xiàn)。
圖表中用戶Alice使用安裝了支持語音和視頻功能的客戶程序的PC,用戶Bob使用SIP電話。兩者都已經(jīng)向本域內(nèi)的SIP代理服務(wù)器注冊了他們的狀態(tài)和IP地址。用戶A發(fā)起呼叫;代理服務(wù)器收到A的請求后向注冊服務(wù)器查詢B的位置信息;向B發(fā)出代理呼叫;B通知代理服務(wù)器接受A的邀請并已作好接受數(shù)據(jù)的準(zhǔn)備;代理服務(wù)器通知A后SIP會話建立完畢。當(dāng)Bob要結(jié)束會話時,直接向Alice發(fā)送結(jié)束請求,在Alice確認(rèn)這個請求以后會話結(jié)束。