SIP:構(gòu)筑下一代SoftSwitch的協(xié)議
黃偉峰 2001/02/06
一、SIP的提出和發(fā)起
SIP(Session Initiation Protocol,會話發(fā)起協(xié)議)是由IETF(Interne工程任務(wù)組) 提出的IP電話信令協(xié)議。它的主要目的是為了解決IP網(wǎng)中的信令控制,以及同SoftSwitch的通信,從而構(gòu)成下一代的增值業(yè)務(wù)平臺,對電信,銀行,金融等行業(yè)提供更好的增值業(yè)務(wù)。其結(jié)構(gòu)圖如下所示。
各功能模塊說明如下:
使用SIP作為SoftSwitch和Application Server之間的接口,可以實現(xiàn)呼叫控制的所有功能。同時SIP已被SoftSwitch接受為通用的接口標(biāo)準(zhǔn),從而可以實現(xiàn)SoftSwitch之間的互連。
二、SIP的功能和特點
正如其名字所隱含的,SIP用于發(fā)起會話,它能控制多個參與者參加的多媒體會話的建立和終結(jié),并能動態(tài)調(diào)整和修改會話屬性,如會話帶寬要求、傳輸?shù)拿襟w類型(語音、視頻和數(shù)據(jù)等)、媒體的編解碼格式、對組播和單播的支持等。
SIP在設(shè)計上充分考慮了對其他協(xié)議的擴展適應(yīng)性。它支持許多種地址描述和尋址,包括: 用戶名@主機地址、被叫號碼@PSTN網(wǎng)關(guān)地址和如Tel:010-62281234這樣普通電話號碼的描述等。這樣,SIP主叫按照被叫地址,就可以識別出被叫是否在傳統(tǒng)電話網(wǎng)上,然后通過一個與傳 統(tǒng)電話網(wǎng)相連的網(wǎng)關(guān)向被叫發(fā)起并建立呼叫。SIP的最強大之處就是用戶定位功能。SIP本身含有向注冊服務(wù)器注冊的功能,也可以利用其他定位服務(wù)器如DNS、LDAP等提供的定位服務(wù)器來增強其定位功能。
三.SIP中服務(wù)器的分類和功能
SIP中有客戶機和服務(wù)器之分。客戶機是指為了向服務(wù)器發(fā)送請求而與服務(wù)器建立連接的應(yīng)用程序。用戶代理(User Agent)和代理(Proxy)中含有客戶機。服務(wù)器是用于向客戶機發(fā)來 的請求提供服務(wù)并回送應(yīng)答的應(yīng)用程序。
共有4類基本服務(wù)器:
用戶終端程序往往需要包括用戶代理客戶機和用戶代理服務(wù)器。代理服務(wù)器、重定向服務(wù)器 和注冊服務(wù)器可以看作是公眾性的網(wǎng)絡(luò)服務(wù)器。在SIP中還經(jīng)常提到"定位服務(wù)器"的概念,但是定位服務(wù)器不屬于SIP服務(wù)器。SIP服務(wù)器請求定位服務(wù)的方式也不在SIP的討論范圍之內(nèi)。其在IP網(wǎng)絡(luò)中的實現(xiàn)如下所示。
SIP獨立于低層協(xié)議,一般使用UDP等無連接的協(xié)議,而采用自己的應(yīng)用層可靠性機制來保證消息的可靠傳輸。
四、SIP的消息定義和格式
SIP的消息定義完全基于文本的格式。分為消息頭和消息體,其主要有如下幾個字段。
To
注冊的目的地址。
From
注冊的頭地址。如果是第一次注冊,則與目的地址相同。
Content-Type
消息的類型
Content-Length
消息的長度
Request-URI
注冊請求的目的地址
Call-ID
所有的來自一個客戶機的注冊都是用相同的Call-ID
Cseq
以相同Call-Id的注冊必須擁有遞增的Cseq號。
五、SIP的方法
SIP主要用以下六個方法來實現(xiàn)對呼叫的控制。
(1)INVITE
INVITE方法說明一個用戶或業(yè)務(wù)參加一個會話。消息體部分包含了被叫的信息說明。對于雙方呼叫,主叫需說明他能接受和發(fā)送的媒質(zhì)類型。示例如下:
INVITE A -> Proxy 1
INVITE sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
From: BigGuy
To: LittleGuy
Call-ID: 12345600@here.com
CSeq: 1 INVITE
Contact: BigGuy
Content-Type: application/sdp
Content-Length: 147
v=0
o=UserA 2890844526 2890844526 IN IP4 here.com
s=Session SDP
c=IN IP4 100.101.102.103
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
(2)ACK
ACK方法主要用于確認(rèn)客戶端對INVITE方法的請求已經(jīng)響應(yīng)。
示例如下:
ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=2d4790.1
Via: SIP/2.0/UDP here.com:5060
Route:
From: BigGuy
To: LittleGuy ;tag=314159
Call-ID: 12345601@here.com
CSeq: 1 ACK
Content-Length: 0
(3)BYE
客戶機用BYE方法向服務(wù)器發(fā)消息來結(jié)束該呼叫。
示例如下:
BYE sip: UserA@here.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060
Route: .
From: LittleGuy ;tag=314159
To: BigGuy
Call-ID: 12345601@here.com
CSeq: 1 BYE
Content-Length: 0
(4)CANCEL
CANCEL方法用于取消一個掛起的呼叫。
示例如下:
CANCEL sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
From: BigGuy
To: LittleGuy
Call-ID: 12345600@here.com
CSeq: 1 CANCEL
Content-Length: 0
(5)REGISTER
用于向定位服務(wù)器注冊客戶機的相關(guān)信息。
(6)OPTIONS
用于查詢服務(wù)器的相關(guān)信息和功能。
六、狀態(tài)碼的定義
SIP主要定義了如下的五種類型的響應(yīng)狀態(tài)。
1xx: 信息。表示請求已經(jīng)收到,可以繼續(xù)處理請求。
2xx: 正確。表示呼叫已經(jīng)正確的被接受和處理。
3xx: 重定向。表示該呼叫需被重定向處理。
4xx: 客戶機錯誤。表示該消息存在表達錯誤,不能被服務(wù)器處理。
5xx: 服務(wù)器錯誤。表示服務(wù)器不能處理該消息。
七. SIP的優(yōu)越性
H.323和SIP設(shè)計之初都是作為多媒體通信的應(yīng)用層控制(信令)協(xié)議,目前一般用于IP電話。它們能實現(xiàn)的信令功能基本相同,也都利用RTP作為媒體傳輸?shù)膮f(xié)議。但兩者的設(shè)計風(fēng)格截然不 同,這是由于其推出的兩大陣營(電信領(lǐng)域與Internet領(lǐng)域)都想沿襲自己的傳統(tǒng)。H.323是由 國際電聯(lián)提出來的,它企圖把IP電話當(dāng)作是眾所周知的傳統(tǒng)電話,只是傳輸方式由電路交換變成了分組交換,就如同模擬傳輸變成數(shù)字傳輸、同軸電纜傳輸變成了光纖傳輸。而SIP側(cè)重于將IP 電話作為Internet上的一個應(yīng)用,較其他應(yīng)用(如FTP,E-mail等)增加了信令和QoS的要求。H.323推出較早,協(xié)議發(fā)展得比較成熟;由于其采用的是傳統(tǒng)的實現(xiàn)電話信令的模式,便于與現(xiàn) 有的電話網(wǎng)互通,但相對復(fù)雜得多。SIP借鑒了其他Internet標(biāo)準(zhǔn)和協(xié)議的設(shè)計思想,有其突出的優(yōu)點。
1、首先,它是基于文本的協(xié)議,而H.323采用基于ASN.1和壓縮編碼規(guī)則的二進制方法表示其消息,因此,SIP對以文本形式表示的消息的詞法和語法分析就比較簡單。
2、其次,SIP會話請求過程和媒體協(xié)商過程等是一起進行的,因此呼叫建立時間短,而在H.323中呼叫建立過程和進行媒體參數(shù)等協(xié)商的信令控制過程是分開進行的。
3、再次,H.323為實現(xiàn)補充業(yè)務(wù)定義了專門的協(xié)議,如 H.450.1、H.450.2和H.450.3等,而SIP只要充分利用已定義的頭域,必要時對頭域進行簡單擴展就能很方便地支持補充業(yè)務(wù)或智能業(yè)務(wù)。
4、最后,H.323進行集中、層次式控制。盡管集中控制便于管理(如便于計費和帶寬管理等),但是當(dāng)用于控制大型會議電話時,H.323中執(zhí)行會議控制 功能的多點控制單元很可能成為瓶頸。而SIP類似于其他的Internet協(xié)議,設(shè)計上就為分布式的呼叫模型服務(wù)的,具有分布式的組播功能。
在我國的IP電話領(lǐng)域,采用H.323協(xié)議已是定論。但我們也應(yīng)看到SIP簡單靈活、分布式控制等優(yōu)點。并且隨著SoftSwitch等技術(shù)的發(fā)展,SIP必將取代H.323,成為IP領(lǐng)域內(nèi)運用最廣泛的信令控制協(xié)議。
附錄:一個完整的SIP運用
Basic Call Flow:
Messages 1 to 7 trace successful connected end-to-end call.
PSTN SS#1 SS#3 PSTN
|----IAM----->| | |
1| |-----INVITE----->| |
| | |----IAM----->|
2| |<---100 TRYING---| |
| | |<----ACM-----|
3| |<--180 RINGING---| |
|<----ACM-----| | |
| | |<----ANM-----|
4| |<----200 OK------| |
|<----ANM-----| | |
5| |------ACK------->| |
|=================Conversation================|
|-----REL---->| | |
|<----RLC-----| | |
6| |------BYE------->| |
7| |<----200 OK------| |
| | |-----REL---->|
| | |<----RLC-----|
1: INVITE sip:4081230003@everest SIP/2.0
Via: SIP/2.0/UDP fujiyama.
From: 4081230001@fujiyama.
To: 4081230003@everest.
Call-ID: LEV55519990720180211264011@fujiyama.
CSeq: 1 INVITE.
Content-Type: Application/sdp.
Content-Length: 123..
v=0.
o=Level3 2580642516 2580642516 IN IP4 gibralter.
s=VoIP Call.
c=IN IP4 192.168.0.94.
t=2580642516 0.
m=audio 3400 RTP/AVP 0.
2: SIP/2.0 100 TRYING
Via: SIP/2.0/UDP fujiyama.
From: 4081230001@fujiyama.
To: 4081230003@everest.
Call-ID: LEV55519990720180211264011@fujiyama.
CSeq: 1 INVITE.
Content-Type: Application/sdp.
Content-Length: 123..
v=0.
o=Level3 2580642516 2580642516 IN IP4 gibralter.
s=VoIP Call.
c=IN IP4 192.168.0.95.
t=2580642516 0.
m=audio 3400 RTP/AVP 0.
3: SIP/2.0 180 RINGING
Via: SIP/2.0/UDP fujiyama.
From: 4081230001@fujiyama.
To: 4081230003@everest.
Call-ID: LEV55519990720180211264011@fujiyama.
CSeq: 1 INVITE.
Content-Type: Application/sdp.
Content-Length: 123..
v=0.
o=Level3 2580642516 2580642516 IN IP4 gibralter.
s=VoIP Call.
c=IN IP4 192.168.0.95.
t=2580642516 0.
m=audio 3400 RTP/AVP 0.
4: SIP/2.0 200 OK
Via: SIP/2.0/UDP fujiyama.
From: 4081230001@fujiyama.
To: 4081230003@everest.
Call-ID: LEV55519990720180211264011@fujiyama.
CSeq: 1 INVITE..
5: ACK sip:4081230003@everest SIP/2.0
Via: SIP/2.0/UDP fujiyama.
From: 4081230001@fujiyama.
To: 4081230003@everest.
Call-ID: LEV55519990720180211264011@fujiyama.
CSeq: 1 INVITE..
6: BYE sip:4081230003@everest SIP/2.0
Via: SIP/2.0/UDP fujiyama.
From: 4081230001@fujiyama.
To: 4081230003@everest.
Call-ID: LEV55519990720180211264011@fujiyama.
CSeq: 2 BYE..
7: SIP/2.0 200 OK
Via: SIP/2.0/UDP fujiyama.
From: 4081230001@fujiyama.
To: 4081230003@everest.
Call-ID: LEV55519990720180211264011@fujiyama.
CSeq: 2 BYE..
《計算機世界》 2001/02/06
分析三種非接觸式移動支付技術(shù)標(biāo)準(zhǔn) 2009-09-09 |
PTN技術(shù)的標(biāo)準(zhǔn)進展和展望 2009-08-28 |
M2M模塊兼容構(gòu)建統(tǒng)一技術(shù)標(biāo)準(zhǔn)規(guī)范 2009-08-24 |
移動支付的桎梏:技術(shù)標(biāo)準(zhǔn)不統(tǒng)一 2009-08-13 |
AVS需變推廣模式 重點鎖定數(shù)字電視應(yīng)用 2009-07-21 |