8. SIP: The Protocol and the Application
摘要
SIP已經成為VoIP的主要通訊協定,其相關研究及通訊標準,日益蓬勃。
本章主要探討
SIP的協定內容,了解其成為主要信令控制協定的原因,並進
而探討為了和現有的PSTN公眾網路
銜接而制定的SIP延伸協定:SIP-T、SIP-I,比較其優缺點。
本章也探討了SIP 的一個重要應用,IMS多媒體子系統。
IMS除了已經是成為行動電話中packet
switching domain的標準之外,許多後續的應用服務及技術發展,
以及標準的制定,都把IMS當成一個重要的核心技術。
8.1 前言
在以IP為主的通訊網路中,若要提供一個任何點對點之間的連線,一
個通用的信令控制協議是非常重要的。SIP(Session Initiation Protocol)原本
只是其中的一種通訊協定,但隨著他的一些特性,使得他無論在通用性或是
擴充性上面,都使這個些協定比起其他隊等的協定來得更為人接受與用來發
展更為擴展的應用。所以從協定本身的了解到其延伸,並且進而了解其相關
應用的發展,甚或評估他對未來應用的影響,這些都是非常重要且值得探導
的課題。本篇就以這樣的思路,對從SIP為開始,進而其延伸和應用,到最
後IP-based網路和這些應用的一些發展,作一些粗淺的描述。
8.2 SIP及其延伸
SIP(Session Initiation Protocol)通訊協定主要是作為一個或多個使用
者在網路上建立、修改、維護和終止會談的通訊使用。是屬於應用層
(application layer)的一種通訊協定。然而SIP為了拓展應用範圍,勢必需
要考慮與其他現有通信網路協議之間的溝通性,因而有人制定了SIP的延伸
協議。這些協議擴大了SIP應用的範圍,使得SIP成為一個以IP-base下一
代通訊網路的中心關鍵技術。
8.2.1 SIP
在VoIP的服務裡,至少須包含兩個部分的通訊協定,第一個部分是
呼叫控制協定,另一個是媒體傳輸協定(包含媒體控制和及時傳輸控制),
當然還有其他業務和維護的協定。其中呼叫控制協定有許多不同的選擇,
最主流的就屬H.323和SIP。H.323是由ITU-T這個組織的研究小組所制定
的,但由於H.323過於複雜,協定中的命令與訊息都是由二進位碼所組
成,且又以ASN.1這種需要產生代碼生成器進行語法分析編碼原則來壓
縮處理,實行(implement)起來非常困難,使得相對較為簡易、開放的
SIP協定得以受到越來越多的重視。
8.2.2 SIP的特點:
SIP已為IETF組織接受,定義於RFC2543,最後的版本被定義於RFC3261。
SIP的特點如下:
- 簡單:SIP的通訊模式與
HTTP通訊協定的類似,採用請求(request)/回應(response)的模
式,提供數種的要求命令(command)和回應代碼(status
code),並配合夾帶檔頭欄位(header fields)訊息和通訊內容
(content),來完成呼叫控制。
- 以文字為主:類似HTTP的作法,
將協定的訊息以文字
(Text)表達並使用標準的字元編碼,如ASC-II或UTF-8。使用文
字模式有幾種好處,首先是容易實作,特別是容易進行偵
錯(debug);再者是擴充性較佳,增
加額外的訊息不需要大幅更動原有的解析程式。
- 與傳輸層分離:SIP在傳輸層之上運作,
可以提升網路傳輸的適應性和支援性,例如在封包漏失較為嚴重
的網路環境中使用TCP連線,而在較好的環境中就使用UDP。
- 支援移動性:SIP在制定時,就將支援移動性
納入考量,使得無
論在呼叫階段或是交談過程中,都可以藉由轉送或是重新邀請
(re-invite)的方式來維繫會談session。
較早被運用於VoIP 的通訊協定是H.323,但H.323
並非為了VoIP而設計的,因此在支援VoIP有許多缺陷。
反觀 SIP 卻是專為VoIP而設計的,因此比SIP
有許多顯著的優點。
表8.1 SIP 與 H.323 的比較
8.3 SIP的架構
SIP最主要的任務在於建立、維繫及管理會談(session),
建立會談的第一步是要找到受話者的位址,然後呼叫受話者,
受話者同意建立會談後再交換建立會談的一些重要約定訊息,
協商之後便開是建立會談,讓雙方自行傳輸語音封包,然
後再繼續管控會談過程,直到通話結束為止。這些動作都是標準
傳統的呼叫過程,為了實現上述的運作,SIP定義了許多的元件。
每一個元件皆具有特定的功能,而承載這些功能的硬體設備可有
不同的安排。這些功能可以各自存在於不同的硬體設備,也可能
數個功能共存於同一硬體設備上。
圖8.1 SIP 元件
四種基本的元件,包括:
User Agent
:簡稱UA,負責為CPE(終端設備)提供服務,
又可細分為用戶端User Agent Client(UAC)和User Agent Server(UAS),
UAC 負責提出請求,UAS負責回應訊息。每一個SIP UA都可以扮演UAC
或UAS,服務呼叫者(Caller)的UA,執行UAC 的角色;反之,服務
被呼叫(Callee)的UA則是 UAS。
Proxy Server:
代理伺服器是SIP運作時的中心,Proxy Server會將
呼叫者的請求轉送到另外一端,所以它同時會扮演UAC和UAS。
Redirect Server:
Redirect Server用來實現邏輯位址和實體位址的分離,
每個使用者擁有一個固定不變的邏輯位址,但實體位址可以隨意
變動,每當使用者移動時,必須由UA 負責向一個Redirect Server
註冊,所以他人可以以被呼叫者的邏輯位址詢問Redirect Server獲知
被呼叫者的實際位址。Redirect Server 可以用來實現
Call Forward 這類功能。
經由Redirect Server的運作,被呼叫端
實際的位址可以在建立會談時被告知給呼叫端,與Proxy Server不同
的是,Redirect Server不會轉送任何SIP訊息。
Registrar Sever:
登錄伺服器,其目的為紀錄或更新用戶位址及狀
態。當User Agent上線時,會先執行SIP的REGISTER命令,用以
將目前UA的位址及狀態紀錄或更新,當有呼叫者提出會談的請求
時,相關的其他元件就能順利的找到被呼叫端。每次UA登錄時都有
一定的期限,UA必須在期限內重新註冊,否則相關的會期(Session)
狀態,就無法維護,此設計讓SIP具有支援移動性的能力。
其他一些伺服器像是Location Server和Media Gateway等,雖
然這些伺服器都不會處理跟SIP的訊息,但通常一個SIP的系統都會
需要用到這些伺服器,才能建立完整的通話。
SIP的語法是以BNF規則所定義的,該語法規則非常類似HTTP的
通訊協定,最基本的單位為SIP Message,Message是由三部分所組
成:起始行(Start Line)、訊息表頭(Message Header)、訊息本體
(Message Body)。而Message又分兩種:請求(Request)和回應
(Response)。
Start Line:
以Request的訊息而言,在Start Line行以一個大寫的
英文單字開頭,代表不同的功能,如INVITE、ACK、BYE、CANCEL、
REGISTER、INFO和OPTION 等方法。Response訊息則在Start Line
以一個三位數的十進位回應碼 (Status Code) 開頭代表不同的回應
訊息,如1XX 表示一些進行中狀態的說明(Provisional);2XX 表示
成功;3XX 表示轉向(Redirect)的狀況;4XX表示請求端的錯誤
(Client-Error);5XX表示服務端的錯誤(Server-Error);6XX表示一些
全域性的錯誤(Global-Error)。
Message Header:
主要是用來說明Request和Response訊息的
詳細資料。
Message Body:
則主要是傳遞會談描述協定(SDP)的訊息。
SIP在每次的會談中稱作交談(Dialog)。在Dialog中可能會包含
許多訊息交易(Transaction),所謂的Transaction就是由請求端發出
請求命令到另一端回應的訊息被接收完畢為止。每個Transaction都
會有個序號ID,用來辨識每個交易的順序及回應關係。
除了語法與物件的定義外,SIP也描述了幾種建立呼叫的模型,包
括只包含兩個UA參與的直接呼叫(Direct Call);和經過Proxy Server
的代理呼叫(Proxy Call)、多重代理呼叫;透過Redirect Server的重
定向呼叫(Redirect Call)。另外還有透過第三方的呼叫控制(3rd Party
Call Control, 3PCC),來完成像是REFER、CONFERENCE等應用。
另外還有一些進階的功能,如一號多機、一機多號、請勿打擾(Do Not
Disturb)、自動轉接(Call Forward)、自動回撥、呼叫保留和話中插接
等功能不一而足。詳細的內容須參考IETF RFC 3261及相關的RFC文
件。其他與SIP協定相關的網路協定還包括:
SDP:
會談描述協定。此協定主要是用來協商雙方建立多媒體資料封
包通道(Traffic channel)之用。雙方會在邀請(Invite)訊息的三向交握
(hand-shake)過程中交換彼此可以使用的通訊方式及資料格式。
RTP:
即時傳輸協定。用於及時的資料傳遞,如語音影像資料。由於
VoIP所傳輸的多媒體資料大多及時性優先於資料的完整性,所以利
用RTP的特性來編排、補償及傳遞這些資料內容,最為合適。
LDAP:
輕量級目錄訪問協定。此協議主要是讓SIP server用來與位
址服務的伺服器(Location Server)溝通,已取得某個查詢目的的正確
位置。
8.4 SIP-T
為了讓VoIP的服務擴展,VoIP網路與現有網路(如公眾交換網路PSTN)
的互通性便為一個重要的議題。作為VoIP裡主要的通訊協定SIP,當然
有必要加以延伸,以作為和其他網路連接的工具。SIP-T (SIP for
Telephone)便是在此需求下而產生,被定義於IETF 3372。此協定當初由
IETF小組制定的原因是因為該小組是和制定SIP協定的同一組人,對SIP
的了解最深入,由他們來制定最合適不過,而且若是在制定過程中發現
SIP的不足時,還可以去修改原來SIP的協定。
SIP-T的目的是在於提供PSTN與IP網路之間,訊號轉譯與互相運作
的一套機制,使得從兩端服務都能夠透通地彼此連接。在SIP-T協定中定
義了三種連接的方式,分別為
1. SIP Bridging:
就是由PSTN的用戶發起(origination),中間經過以SIP
作協定的VoIP網路,再由PSTN網路終結(termination)。
(Phone-to-Phone)。
圖8.2 SIP in Bridging Mode
|
|
|
|
圖8.3 Call Flow of SIP in Bridging Mode
|
2. PSTN origination :
IP termination: 就是由PSTN的用戶發起,由IP網
路的SIP用戶終結。
(例如: Phone-to-PC VoIP)
圖8.4 PSTN Origination Mode
|
|
|
|
圖8.5 Call Flow of PSTN Origination Mode
|
3. IP origination :
PSTN termination: 就是由IP網路的SIP用戶發起,
由PSTN的用戶終結。
(例如: PC-to-Phone VoIP)
圖8.6 IP Origination Mode
|
|
|
|
圖8.7 Call Flow of IP Origination Mode
|
三種呼叫的模型,其中最主要的整合工作就是在作SIP和ISUP(ISDN
User Part)訊息的轉譯和傳送。ISUP為PSTN上面負責通話控制的信令協
定,被定義於ITU-T的Q.761-Q.764。除了ISUP,SIP-T也支援在
PBX(private branch exchanges)裡所使用的通訊協議QSIG,該協議為
一種類比式的信令控制的協定。
為了增加對PSTN各方面的應用支援及與ISUP的互通性,SIP-T也提
出兩種方法,分別為封裝(Encapsulating)與對應(Mapping),分別定義
於RFC3204與RFC3398。所謂的封裝就是將ISUP的訊息在進入SIP-ISUP
閘道時,會被完整的封裝起來,以確保所有與ISUP服務業務相關的資訊
被複製進SIP網路而不致遺失。因為這些資訊需要以二進位碼的方式儲
存,而且不定常對,所以SIP-T定義了使用Multipurpose Internet Mail
Extensions(MIME) Multipart的方式封裝。以MIME的方式編碼就可以確
保二進位碼的方式可以在以文字為主的SIP網路中傳送;而Multipart的
語法則可以支援不定長度的資料裝載。而所謂的對應,就是將許多ISUP
的一些服務,定義出對應的SIP訊息,以便讓SIP網路可以支援一些常用
的呼叫服務,像是自動回覆、自動轉接、無人回應,呼叫取消等功能,藉
著對應的SIP功能來完成服務。至於只在ISUP網路有效的服務,則只能
藉由封裝將訊息載送到另一端的ISUP網路。
8.5 SIP-I
SIP-I又稱為SIP with encapsulated ISUP,此協定是由ITU-T的工
作小組(ITU-TSG11)所制定,其內容包含Technical report TRQ.2815和
Recommendation Q.1912.5標準草案。其中TRQ.2815主要是定義SIP
和Bearer Independent Call Control(BICC) 協議或ISUP協議之間的
互通技術需求、互通介面模型、互通單元(Interworking Unit, IWU)所應支
援的能力等等。Q.1912.5則定義了SIP和BICC/ISUP的互通機制、訊息
的對應及封裝,將這些功能完整地定義於互通單元裡(IWU)。所謂的互通
單元就是執行各種介面節點之間的訊息交換,轉交或遞送訊息到SIP網
路。在不同的網路之間的稱作Network-to-Network Interface(NNI),這
些介面都需要IWU來作為橋梁。
8.6 SIP-T 與SIP-I之間的比較
相較於SIP-I豐富的內容,SIP-T只有定義一些基本通訊功能的介面轉
換,可以說相對的實用性低了很多。這些以互聯網起家的IETF技術人員
所制定的標準,終究不比以傳統通訊本家的組織人員(ITU-T)鎖定義的標
準。SIP-I協定不但沿用了許多IETF的標準,還在基本的呼叫服務之外,
制定包括CLIP、CLIR等附屬業務間的互通;除了呼叫信令的互通,還考
慮了資源預留、品質確保、媒體資訊轉換、與PSTN/3GPP等完整互通的
問題。而且SIP-I所制定的協議,也比較清晰嚴謹,沒有像IETF許多協議
較為彈性卻相對模糊的特性。這些因素使得目前以SIP-I較廣為各家營運
商、電信商所接受,漸漸成為整合其他網路的核心協定。
8.7 IMS
IMS(IP Multimedia Subsystem)是由3GPP和3GPP2這兩個組織所
制定,它是一個建構在封包交換網域(packet-switching domain)中的子系
統,並以SIP為基礎來實行信令與會談管理的功能。
以3GPP為例,在3GPP R5之後便有了IMS的雛形,相關的需求及技
術細節被定義在3GPP TS 22.228。在IMS裡定義了在IP網路裡及時語音多
媒體傳輸服務會使用到的實體和程序,並用SIP來執行呼叫控制和交談管理
的即時服務。在IMS架構中最重要的的實體(Entity)就是通話狀態控制功能
(Call State Control Function, CSCF),依據不同任務,這些CSCF又可區
分為三種:服務通話狀態控制功能(Serving CSCF, S-CSCF)、代理通話狀態
控制功能(Proxy CSCF, P-CSCF)、協詢通話狀態控制功能(Interrogating
CSCF, I-CSCF)。
Serving CSCF:
主要是提供使用者會談控制服務,負責維護通訊狀態給已
註冊的使用者,管理所有進行中的會談,並且執行相關功能,如註冊管理、
SIP通訊控制管理及轉送SIP訊息、扮演SIP 代理伺服器(Proxy Server)的
功能以及其他像是通話明細紀錄(Call Detail Record, CDR)和服務相關之
事件通知,另外S-CSCF也負責和其他應用伺服器(Application server)
之間溝通的介面。
Proxy CSCF:
是手機與IMS的溝通的進入點,它的功能就是扮演接收及轉
送手機發出SIP 請求訊息的代理伺服器Proxy Server,此外它也包含一個
決策控制功能(Policy Control Function, PCF)主要是用來決定GGSN應
如何藉由底層通道來傳遞資料,P-CSCF也負責轉送註冊訊息或其他SIP訊
息於手機和網路之間,在轉送過程中,也會視需要修改SIP訊息,其他功
能還包括維護安全性資料、偵測緊急呼叫以及產生通話明細資料。
Interrogating CSCF:
這是是一種非必要的功能,但其重要性卻仍不亞於
其他種類的控制功能。舉凡核心網路內各伺服器之間,或是不同網域
(Operator Network)之間伺服器的連接,都是靠I-CSCF來完成,I-CSCF
扮演居中連絡的角色。當手機的SIP訊息被P-CSCF收到後,會先經由
I-CSCF,I-CSCF會選擇一個S-CSCF來處理接下來的SIP訊息。
整個IMS是由這些CSCF再加上一些媒體閘道器這些主要元件,並以
各種不同的介面彼此連接,IMS的全貌如圖8.8:
圖8.8 IMS 架構
其他在IMS裡的元件還包括:Media Gateway Control
Function(MGCF)和IM Media Gateway(IM-MGW),這兩個元件主要是
分別擔負在PSTN和IMS或核心網路(Core Network)之間,信令控制和媒
體資料傳送閘道控制的功能。Multimedia Resource Function
Processor(MRFP)則是負責各媒體串流資料的轉換處理。Multimedia
Resource Function Controller(MRFC)負責轉譯各CSCF之間的SIP信令
並控制MRFP中的媒體串流資源,MRFC也負責產生通話明細資料(CDR)。
Breakout Gateway Control Function(BGCF) 是一個IMS與外部網路的
分界點,負責選擇IMS到PSTN之間信令傳送的出口位置。
這些元件彼此之間都會使用各個不同的介面來連接,這些介面大致可
分為:信令和服務控制介面,包括CSCF和MGCF、BGCF、MRFC之間的
界面,這些介面主要是傳遞SIP訊息用。媒體閘道控制介面則是定義媒體閘
道的介面。還有像是與資訊伺服器(如HSS)之間的界面以及與外部網路連接
的介面。
IMS藉由原來3GPP行動能力的架構,藉由Home network的HSS,
手機透過IMS可以指定Home network的S-CSCF來提供SIP的服務,包
括提供一個服務平台,讓其他所有的應用服務都可以在上面運作,如SIP相
關的Application server、CAMEL service environment、OSA
Application Server等。
當手機在IMS建立連線時,遵循SIP信令的程序,先向S-CSCF註冊,
以便S-CSCF記錄手機位置,接著再由手機提出邀請(Invite)的訊息,透過
P-CSCF及I-CSCF的連接,再由S-CSCF轉接到目的端的S-CSCF,再由
I-CSCF、P-CSCF轉送至目的端的手機,之後便由此路徑完成信令的動作,
再由其他的媒體閘道器負責媒體串流的傳送或必要的轉換。由於IMS有良好
的開放是界面的設計,使得它很容易成為其他服務的一個通用的平台,這使
得接下來許多相關的服務都以IMS作為架構的基礎。
8.8 IMS 相關應用
使用IMS作為下一代通訊網路的核心架構,已經成為一種趨勢,許多
通訊組織在制定NGN架構規範時,都確定以IMS為基礎來做為解決方案,
如ITU-T的FGNGN和ETSI的TISPAN。這些組織都陸續於2003年之後開始
進行關於IMS在控制與信令(control and signaling)、網路安全、網路服務
品質(QoS)和行動管理能力等相關研究。以ETSI TISPAN為例,ETSI TISPAN
提出的NGN架構中重用了IMS的網路架構作為其核心網子系統,並且盡可
能重用IMS R6中的相關規範,並要求支援更多的接入方式,包括xDSL、
WLAN、LAN、MAN等。
已經有許多的研究提出對於使用SIP/IMS作為IP-base通訊網路架構,
其中相關的技術與問題探討或是一些價購方案。例如行動能力的規劃,提供
一種seamless mobility的架構,來整合所有通用的連線通訊技術,以建立
未來NGN的實現提出一種可能性。
在Kalmanek等人所提出的無接縫式的行動服務架構中,基本上是一
種能夠符合3GPP互連模式等級5(Interworking Level 5)需求的一種解決方
案,在該架構中作者提出一些的構建區塊的模型(如圖6),來建立一個無接
縫式的行動服務。
在該模型中,整合所有可能的通訊技術,包括行動電話通訊、無線網
路(Wi-Fi或WiMax)、IP網路、UMA(Unlicensed Mobile Access)等,透
過一個無縫式行動中間層,提供上層的應用服務如IP Central Exchange、
IP-PBX、VoIP等通訊服務。而這裡最重要的關鍵就是IMS,利用IMS的架
構搭配一些元件,就可以提供類似中間層的一種服務平台。
為了達到這樣的目標,作在現有IMS的框架中作一些延伸,就是將一
個智慧型網路應用伺服器來和SIP中的呼叫控制作整合,以便強化IMS能完
全符合無縫式行動通訊的服務。整個架構的設計如圖7:
其中最重要的部分就是要整合各個不同無線的通訊技術,當移動端從
手機網路到無線區域網路時,這個智慧型的行動伺服器(Mobility Server)必
須要能偵測到,並且須通知IMS的核心(包含P-CSCF、S-CSCF、I-CSCF),
再由IMS提供通話延續性的相關服務,以保持通話的品質。而且這樣的服務
除了語音的通訊服務外,也必須考慮其他的數據加值服務,當然也必須整合
現有在公眾網路(PSTN)裡所提供的各種服務(如ISDN等等)。然而這樣的架
構要能實際運作,還必須考量到許多因素,像是整個架構的延伸性
(Scalability),一旦網路的規模擴大,這個智慧型的行動伺服器必須能以分
散式的架構來運作,另外一方面包括在提供無縫式的交遞時,對於品質服務
QoS的控制與對應也必須同時考慮到。目前許多技術或相關標準都已在進行
中,相信以技術的觀點,這樣的服務已經是越來越可行。
8.9 結論
從VoIP所發展出來的SIP,儼然成為IP-Base封包交換網路的一個重
要的核心協定,而且陸陸續續被提出或被定義的延伸應用,也不斷地在發
展,相信在不久的將來一個完整的下一代通訊網路(NGN)的雛形應該就可預
見,這樣的網路將能整合目前所有的IP網路。但是雖然技術上可行,但還必
須考量到真正能讓技術廣為應用的一些驅動的因素,像是各國的通訊相關法
規、網路通訊營運商的商業模式等等,可能才是影響相關技術是否能成為符
合一般應用的關鍵。
參考資料
- J. Rosenberg et al., SIP: “Session Initiation Protocol,”IETF RFC
3261, June 2002, work in progress.
- A. Vemuri et al., “Session Initiation Protocol for Telephones (SIP-T):
Context and Architectures”, IETF RFC 3372, September 2002.
- E. Zimmerer et al., “MIME media types for ISUP and QSIG
Objects”, IETF RFC 3204, December 2001.
- G. Camarillo et al., “Integrated Services Digital Network (ISDN)
User Part (ISUP) to Session Initiation Protocol (SIP) Mapping,” IETF
RFC 3398, November 2002.
- SIP/IMS Standardization , http://www.tech-invite.com
- Li Zhaowei, “Comparison of SIP-T and SIP-I,” ZTE Technology,
February 2005 Issue 63
- Jyh-Cheng Chen and Tao Zhang, “IP-Based Next-Generation
Wireless Networks: Systems, Architectures, and Protocols,” New
York :John Wiley, 2004
- Charles Kalmanek et al., “A Network-Based Architecture for
Seamless Mobility Services,” IEEE Communication Mag., June 2006