SIP擴充與相關RFC介紹
Version 1.0
2008-9-15
SIP擴充綜述
SIP擴充可分成幾個類型:
- SIP能力的某些欠缺;
- 業務能力增強,如IM、REFER;
- 安全性、Qos能力增強;
- SIP適用於傳統電信網路應用程式模型的能力,包括IMS專用擴充;
- 事件通知
- RFC3265
增加了訊息SUBSCRIBE、NOTIFY,SIP頭Allow-Events、Subscription
State,響應202Accept、489等;該機制獨立於dialog;
SUBSCRIBE發起訂閱,訂閱擁有狀態(啟用、等待、終止);收到2xx響應或NOTIFY訊息時建立一個對話(與INVITE類似的對話?),後續SUBSCRIBE與NOTIFY在對話中傳遞;對話有一個expire時間,逾時前需要重新訂閱;SUBSCRIBE的逾時及取消機制與REGISTER類似;
事件包,一種擴充機制;事件模板包,一種特殊的事件包;事件包定義自己的MIME類型;在NOTIFY的payload中攜帶狀態資訊;
- 狀態發布
- RFC3903
PUBLISH方法,用於client主動向狀態代理髮布狀態,使用payload攜帶;
Event
head;
- IM
- RFC3428、RFC3862
兩種訊息互動方式:頁面模式與session模式;
頁面模式:每個訊息是獨立的,與它之前或之後的IM在protocol層無關;RFC3428定義的MESSAGE訊息用於其實現,訊息內容置於payload中,MIME本文填寫text/plain;RFC3862定義了與SIP客戶間的互操作,MIME使用message/cpim;
Session模式:使用SIP建立session,之後使用MSRP來攜帶訊息內容;
- PRACK
- RFC3262
與傳統電信網路中呼叫建立前信令對應的SIP臨時訊息,如180,在某些情境下不可缺少,故增加了臨時訊息可靠傳輸能力——對SIP基本狀態機器會產生什麼影響?
僅適用於INVITE的臨時響應;
本擴充的標識100rel;
RSeq頭,類似CSeq;PRACK的RACK頭,依次包括RSeq與CSeq頭的值;
不能對100
Trying使用可靠傳輸機制,因為100隻是用於終止INVITE等的重傳;
- UPDATE -
RFC3311
用於不影響當前dialog情況下更新會話描述,僅用於由INVITE產生的dialog,可在dialog的早期階段和確定階段發送,但不能在dialog建立前發送——如建立dialog的臨時響應發送、應答前;
早期階段(early
INVITE-initiated):client獲得1xx(非100)應答後,dialog可能在早期階段後直接終結;
確定階段:得到2XX應答後;
UPDATE僅用於dialog;
UPDATE攜帶SDP
offer,其2xx應答攜帶answer;
- Precondition
- RFC3312
用於session建立前的資源預留,對應SIP擴充標籤precondition;
Caller在初始SDP中指明本次會話的約束,called對其響應(IMS中好像使用183),但既不建立會話也不提交給使用者;在主被叫已知前提已經獲得滿足時主叫方再發送一個新的SDP
offer,被叫方發送answer後session才建立;這在IMS中使用UPDATE;
SDP中的約束資訊如:a=des:qos
sptimal e2e send
- REFER
- RFC3515
寄件者指引接收者去訪問REFER請求中所標識的資源;Refer-To、Referred-By頭域,202
Accepted響應;
REFER與NOTIFY綜合使用,實現來電轉接功能;NOTIFY被用於Transferee通知Transferor第二個呼叫的狀態;從NOTIFY看出,REFER建立了一個訂閱,該訂閱不帶expire參數,expire值由接收方決定;發起方可以發送SUBSCRIBE來延長該時間;由事件通知架構的要求,接收到REFER後需要立即產生和發送NOTIFY;
呼轉的類型:
- Unattended transfer,即盲轉blind
transfer,Transferor與Transferee之間存在一個呼叫,但與Transfer
Target之間不存在呼叫;
可能的過程:Transferor向Transferee發送REFER,Transferee回送202
Accepted;Transferee向Transferor發NOTIFY(100 Trying),並向Transfer
Target發起INVITE,在收到200 OK時使用NOTIFY(100 OK)通知Transferor,然後Transferor或Transferee任一方BYE掛斷primary
call;
- Attended transfer,即supervised
transfer,Transferor與Transferee及Transfer Target間都存在呼叫;
成功的呼轉並不改變Transferor與Transferee間的媒體流,並不影響原有的session;任一方都可以在REFER後通過發送BYE訊息來結束原有的session;
- Path head
– RFC3327
Path擴充可用於記錄REGISTER從UA到registrar所經過的路徑,即經過的proxy;IMS中用于歸屬網路向UA發請求;Path文法與record-route頭類似;擴充標識“path”;
如果UA支援path擴充,如果proxy希望發往UA的任何後續請求都通過自己或某個URI,則它在UA的REGISTER中加入一個path頭記錄該URI;registrar記錄path及AOR及contact,在後續發往UA的請求中,path記錄的URI被放到route頭中,以使訊息發送經過所指定的URI;
- Private
- RFC3325
用於可信網路中判斷終端使用者、系統的身份;及提供終端使用者指示其隱私要求的機制;
- 信令壓縮
- RFC3486
RFC3320,信令壓縮規範,將文本信令壓縮成二進位流;
URI參數
comp=SigComp
使用request
URI與via、route頭,指示節點的壓縮支援;
- INFO - RFC2976
提供一種在sip
session執行建立操作開始後,獨立於sip信令路徑發送session相關“控制”資訊的機制——文獻[2];INFO的發送時機與UPDATE一樣;
- SIP-T
– RFC3372
在SIP訊息體中封裝ISUP訊息;使用INFO(RFC
2976)訊息傳輸呼叫中的信令;
- SIP訊息分段
– RFC3420
MIME類型message/sipfrag;
- SIP-Sec-Agree
– RFC3329
- Media authorization
– RFC3313
P-Media-Authorization
- 服務路由發現 -
RFC3608
UA可以在發出的請求中包含一系列Route頭,來使請求經過特定的proxy,從而獲得相應服務;
Service-Route頭,用於UA學習服務路由;registrar在響應REGISTER的200
OK中使用Service-Route頭,從而提供給UA;
- IMS擴充頭
– RFC3455
專用於3GPP
IMS;
P-Charging-Vector,IMS計費ID(ICID)和相關接入網計費資訊;
P-Charging-Function-Address,歸屬網路中計費功能的地址;
P-Visited-Network-ID,註冊時傳遞拜訪網路的標識;
P-Access-Network-Info,拜訪網路向歸屬網路傳遞資訊;
P-Called-Party-ID,
P-Associated-URI,與使用者相關聯的其他URI;
其他SIP相關RFC介紹
- RFC3665
Session
Initiation Protocol (SIP) Basic Call Flow Examples
- 3PCC - RFC3725
3rd
party call control in sip
- SDP
– RFC2327 RFC3264 RFC4566
新的SDP標準是RFC4566(2006.7),替換了RFC2327與RFC3266;
- RFC3960
Early
Media and Ringing Tone Generation in the Session Initiation
- 伺服器定位
–RFC3263
Session
Initiation Protocol (SIP): Locating SIP Servers
- RFC2806
URLS
for telephone calls
- RFC3108
Conventions
for the use of the Session Description Protocol (SDP) for ATM Bearer
Connections
- RFC3204
MIME
media types for ISUP and QSIG Objects
- RFC3323
A
Privacy Mechanism for SIP
- RFC3326
The
Reason Header Field
相關規範列表
RFC
3261: SIP Session initiation protocol.
RFC
3263: Session Initiation Protocol (SIP): Locating SIP Servers.
RFC
2327: SDP Session Description Protocol.
RFC
3420: Internet Media Type message/ipfrag.
RFC
2976: The SIP INFO Method
RFC
2806: URLS for telephone calls
RFC
3108: Conventions for the use of the Session Description Protocol (SDP)
for ATM Bearer Connections
RFC
3204: MIME media types for ISUP and QSIG Objects
RFC
3262: Reliability of Provisional Responses in SIP
RFC
3264: An Offer/Answer Model with the Session Description Protocol (SDP)
RFC
3265: SIP-Specific Event Notification
RFC
3310: HTTP Digest Authentication Using AKA
RFC
3311: The SIP UPDATE method
RFC
3313: Media Authorization
RFC
3323: A Privacy Mechanism for SIP
RFC
3325: Asserted Identity within Trusted Networks
RFC
3326: The Reason Header Field
RFC
3327: Extension Header Field for Registering Non-Adjacent Contacts (Path)
RFC
3372 : SIP for Telephones (SIP-T): Context and Architectures
RFC
3428: The SIP MESSAGE method
RFC
3455: Private Header Extensions to SIP for 3GPP
RFC
3515: The SIP REFER method
RFC
3581: An Extension to SIP for Symmetric Response Routing.
RFC
3608: SIP Extension Header Field for Service Route Discovery During
Registration
RFC
3842: A Message Summary and Message Waiting Indication Event Package
for SIP
RFC
3856: SIP Extensions for Presence
RFC
3891: The SIP "Replaces" Header
RFC
3892: The SIP Referred-By Mechanism
RFC
3959: early session disposition type for SDP
RFC
4028: Session Timers in SIP
ITU-T
T.38 Annex D (04/2004) and RFC 3362 for support of T.38 in SIP
IETF
draft-levy-sip-diversion-08.
draft-ietf-sipping-kpml-07.
參考文獻
[1] Miikka
Poikselka等,The IMS IP Multimedia Concepts and Services,機械工業,2007.7;
[2] Dialogic,Dialogic
Global Call IP,2008.3;