SIP協議概述

SIP是由IETF提出來的一個應用控制(信令)協議 。正如名字所隱含的--用于發起會話 。它可用來 創建、修改以及終結多個參與者參加的多媒體會話進程 。參與會話的成員可以通過組播方式、單播 連網或者兩者結合的形式進行通信 。SIP中有客戶機和服務器之分 ??蛻魴C是指為了向服務器發送請求而與服務器建立連接的應用程 序 。用戶代理(User Agent)和代理(Proxy)中含有客戶機 。服務器是用于向客戶機發出的請求 提供服務并回送應答的應用程序 。共有四類基本服務器:
·用戶代理服務器:當接到SIP請求時它聯系用戶,并代表用戶返回響應 。
·代理服務器:代表其它客戶機發起請求,既充當服務器又充當客戶機的媒介程序 。在轉發請 求之前,它可以改寫原請求消息中的內容 。
·重定向服務器:它接收SIP請求,并把請求中的原地址映射成零個或多個新地址,返回給客戶機 。
·注冊服務器:它接收客戶機的注冊請求,完成用戶地址的注冊 。用戶終端程序往往需要包括用戶 代理客戶機和用戶代理服務器 。代理服務器、重定向服務器和注冊服務器可以看出是公眾性的網絡 服務器 。在SIP中還經常提到定位服務器的概念,但是定位服務器不屬于SIP服務 。
SIP在設計上充分考慮了對其它協議的擴展適應性 。它支持許多種地址描述和尋址,包括用戶名 @主機地址:被叫號碼@PSTN網關地址:Tel:010-62281234普通電話的描述等 。這樣,SIP主叫按照 被叫地址就可以識別出被叫在傳統電話網上的位置,然后通過一個與傳統電話網相連的網關發起并 建立呼叫 。SIP最強大之處就是用戶定位功能 。SIP本身含有向注冊服務器注冊的功能,也可以利用 其它定位服務器DNS、LDAP等提供的定位服務來增強其定位功能 。
SIP共規定了六種信令:INVITE、ACK、CANCEL、OPTIONS、BYE、REGISTER 。其中INVITE和 ACK用于建立呼叫,完成三次握手,或者用于建立以后改變會話屬性;BYE用以結束會話;TIONS用 于查詢服務器能力;CANCEL用于取消已經發出但未最終結束的請求;REGISTER用于客戶出向注冊服 務器注冊用戶位置等消息 。
SIP協議支持三種呼叫方式:由用戶代理服務機(UAC)向用戶代理服務器(UAS)直接呼叫, 由UAC在重定向服務器的輔助下進行重定向呼叫和由代理服務器代表UAC向被叫發起呼叫 。通過 SIP代理建立呼叫的例子 如圖6-8所示 。
H.323和SIP協議的比較
H.323和SIP分別是通信領域與因特網兩大陣營推出的建議 。H.323企圖把IP電話當作是眾所周 知的傳統電話,只是傳輸方式發生了改變,由電路交換變成了分組交換 。而SIP協議側重于將IP電話 作為因特網上的一個應用,較其實應用(如FTP,E-mail等)增加了信令和QoS的要求,它們支持的 業務基本相同,也都利用RTP作為媒體傳輸的協議 。但H.323是一個相對復雜的協議 。
H.323采用基于ASN.1和壓縮編碼規則的二進制方法表示其消息 。ASN.1通常需要非凡的代碼生 成器來進行詞法和語法分析 。而SIP的基于文本的協議,類似于HTTP ?;谖谋镜木幋a意味著頭域的 含義是一目了然的,如From、To、Subject等域名 。這種分布式、幾乎不需要復雜的文檔說明的標 準規范夫風格,其優越性已在過去的實踐中得到了充分的證實(現在廣為流行的郵件協議SMTP就是 這樣的一個例子) 。SIP的消息體部份采用SDP進行描述,SDP中的每一項格式為=,也比較簡單 。
在支持會議電話方面,H.323由于由多點控制單元(MCU)集中執行會議控制功能,所有參加會 議終端都向MCU發送控制消息,MCU可能會成為頸,非凡是對于具有附加特性的大型會議;并且 323不支持信令的組播功能,其單功能限制了可擴展性,降低了可靠性 。而SIP設計上就為分布式的 呼叫模型,具有分布式的組播功能,其組播功能不僅便于會議控制,而且簡化了用戶定位、群組邀 請等,并且能節約寬帶 。但是H.323集是中控制便于計費,對寬帶的治理也比較簡單、有效 。

推薦閱讀