1.SIP概述
SIP(Session Initiation Protocol,會話發起協定)是由IETF 提 出的IP電話信令協定。SIP用於發起會話,能控制多個參與者參加的多媒體會話的建立和終結,並能動態調整和修改會話屬性,如會話頻寬要求、傳輸的媒體類型(語音、視頻和數據等)、媒體的編解碼格式、對多播和單播的支持等。
2.SIP的特點
(1)協定格式:SIP借鑑了超文本傳輸協定(HTTP)的設計思路和體系結構,使用了許多HTTP的訊息類型和報頭域,用實體(內容類型的描述)標識信息流的內容,並且考慮認證、授權,所使用的認證、授權方法類同於Web中所使用的認證、授權方法。而H.323採用基於ASN.1和壓縮編碼規則的二進制方法表示其訊息,因此,SIP更易於閱讀和調試。
(2)協定的擴展性:SIP在設計上充分考慮了對其他協定的擴展適應性,支持許多種地址描述和定址,包括用戶名@主機地址、被叫號碼@PSTN網關地址和如Tel:020-62581234這樣普通電話號碼的描述等。這樣,SIP主叫按照被叫地址,就可以識別出被叫是否在PSTN上,然後通過一個與PSTN相連的網關向被叫發起並建立呼叫。
(3)用戶定位:SIP的最強大之處就是通過統一資源定位符(URL)來實現用戶定位功能。SIP的URL甚至可以被嵌入到Web頁或其他超文本鏈路中,用戶只需用滑鼠一點即可發出一個呼叫,這樣就使得音頻和視頻的套用與其他多媒體的套用綜合變得簡單。而且SIP本身含有向註冊伺服器註冊的功能,也可以利用其他定位伺服器如DNS、LDAP等提供的定位伺服器來增強其定位功能。
(4)呼叫建立:SIP會話請求過程和媒體協商過程等是一起進行的,因此呼叫建立時間短,而在H.323中呼叫建立過程和進行媒體參數等協商的信令控制過程是分開進行的。這種快速呼叫建立機制可以通過訊息數目比較得出:H.323在建立媒體信道前,需要建立H.225初始化訊息和H.245控制通道以及相關的確認訊息,控制協定非常繁瑣。利用SIP建立媒體信道的效率很高——被叫到主叫的媒體通道在一個往返中就能建立,而且被叫媒體通道可以在一個半往返時間內建立。
(5)補充功能的擴充:H.323為實現補充業務定義了專門的協定,如 H.450.1、H.450.2和H.450.3等,而SIP只要充分利用已定義的頭域,必要時對頭域進行簡單擴展就能很方便地支持補充業務或智慧型業務。
(6)多點傳送:H.323不支持多點傳送(Multicast)協定,只能採用多點控制單元(MCU)構成多點會議,因而同時只能支持有限的多點用戶。SIP本身就是由IETF MMUSIC(Multiparty Multimedia Session Control,多方多媒體會話控制)工作組制定的,所以支持多點協定是它無可厚非的優勢。會話參加者和媒體種類可以隨時加入一個已存在的會議。
3.SIP的描述語法
SIP使用的SDP(Session Description Protocol)會話描述協定是IETF制定的一個標準。SDP的基本目的是為傳送訊息定義標準的語法,如UDP目的連線埠、使用的音頻或視頻的編碼標準、活動時間表、會話的名稱/簡短描述等。它用於傳輸類似於H.245協定中容量交換機制的協定信息。例如在呼叫中,SDP可被用於傳輸交換過程中的編解碼標識。SDP也被用來實時信息協定(RTSP)的訊息。
SDP是種易讀的文本協定,由幾個<TYPE>=<VALUE>行組成,每行用CRLF結束。與H.323 ASN.1那樣的二進制編碼不同,它是犧牲頻寬來方便編程和調試的。但是在實際運用過程中,這種專業性不強便於多方參與的描述協定更容易被用戶方所接受。
4.SIP的實體
SIP的設計思路建立在主機間按對等層(Peer-to-Peer)原則的會話上,SIP定義了可選用的SIP伺服器,用來取代複雜的H.323定址過程以縮短呼叫建立時間。SIP採用的模式是非常適於在Web環境中使用客戶機/伺服器(Client/Serve)操作型類型。客戶機是指為了向伺服器傳送請求而與伺服器建立連線的應 用程式。用戶代理(User Agent)和代理(Proxy)中含有客戶機。伺服器是用於向客戶機發來的請求提供服務並回送應答的應用程式。共有4類基本伺服器。
(1)用戶代理伺服器:當接到SIP請求時聯繫用戶,並代表用戶返迴響應。
(2)代理伺服器:可以一邊作為一個伺服器接受請求,一邊作為一個客戶端傳送請求。代理伺服器能夠將請求不加任何改變地轉發到最終目的地,也能在請求通過的時候過濾原請求訊息中的內容。
(3)重走向伺服器:接收SIP請求,把請求中的原地址映射成零個或多個新地址,返回給客戶機。
(4)註冊伺服器:接收客戶機的註冊請求,完成用戶地址的註冊。它工作的實質就是完成用戶SIP位址到IP位址的映射。
用戶終端程式往往需要包括用戶代理客戶機和用戶代理伺服器。代理伺服器、重定向伺服器和註冊伺服器可以看作是公眾性的網路伺服器。在SIP中還經常提到“定位伺服器”的概念,但是定位伺服器不屬於SIP伺服器。SIP伺服器請求定位服務的方式也不在SIP的討論範圍之內。
5.SIP呼叫概要
(1)呼叫建立:SIP端點通過使用UDP或TCP信令傳送邀請訊息(invite)呼叫另一個SIP端點。邀請訊息通常包含足夠的信息使被叫終端能立刻建立與主叫端點之間被請求的媒體連線。這些信息包括主叫端點能夠支持的媒體性能,以及主叫端點希望被叫端傳送媒體數據的傳送地址。
(2)編解碼協商:當被叫端不接受主叫端編解碼方式時,會送附有協商失敗的原因和提議使用方式的訊息;主叫端可以通過網路中代理伺服器重新發起一個邀請訊息,經代理伺服器轉換後滿足被叫端編解碼的要求。
(3)通話過程:雙方在已知的連線埠地址上傳送媒體信息。需要指出的是,SIP 沒有像H.323所定義的邏輯通道的概念。當一個客戶提議在幾個UDP或TCP連線埠上接收幾種類型的媒體時,它必須立即準備好在其中任何一個連線埠上接收媒體。
(4)終止呼叫:當任何一方要求終止呼叫時,它應該向另一方傳送一個結束請求(bye),經確認後整個呼叫就徹底完成。
SIP尚在開發試驗階段,不像H.323那樣已被廣泛接受,但已有不少廠家(如3Com、思科、北電網路等)在積極開發中,今後的發展趨勢是SIP或H.323與MGCP配合使用。