首頁>>>技術(shù)>>>交換機  交換/排隊機產(chǎn)品

 

SIP:構(gòu)筑下一代SoftSwitch的協(xié)議

黃偉峰 2001/02/06

 

一、SIP的提出和發(fā)起

SIPSession Initiation Protocol,會話發(fā)起協(xié)議)是由IETFInterne工程任務(wù)組) 提出的IP電話信令協(xié)議。它的主要目的是為了解決IP網(wǎng)中的信令控制,以及同SoftSwitch的通信,從而構(gòu)成下一代的增值業(yè)務(wù)平臺,對電信,銀行,金融等行業(yè)提供更好的增值業(yè)務(wù)。其結(jié)構(gòu)圖如下所示。

 

各功能模塊說明如下:

使用SIP作為SoftSwitchApplication 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)地址和如Tel010-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)對呼叫的控制。

1INVITE

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

2ACK

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

 

3BYE

客戶機用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

4CANCEL

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

5REGISTER

用于向定位服務(wù)器注冊客戶機的相關(guān)信息。

6OPTIONS

用于查詢服務(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.323SIP設(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)用(如FTPE-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.2H.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

 



相關(guān)鏈接:
分析三種非接觸式移動支付技術(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