SIP擴充與相關RFC介紹(轉)
SIP擴充綜述
SIP擴充可分成幾個類型:
1. SIP能力的某些欠缺;
2. 業務能力增強,如IM、REFER;
3. 安全性、Qos能力增強;
4. SIP适用于傳統電信網絡應用模型的能力,包括IMS專用擴充;
1. 事件通知 - RFC3265
增加了消息SUBSCRIBE、NOTIFY,SIP頭Allow-Events、Subscription State,響應202Accept、489等;該機制獨立于dialog;
SUBSCRIBE發起訂閱,訂閱擁有狀态(激活、等待、終止);收到2xx響應或NOTIFY消息時建立一個對話(與INVITE類似的對話?),後續SUBSCRIBE與NOTIFY在對話中傳遞;對話有一個expire時間,逾時前需要重新訂閱;SUBSCRIBE的逾時及取消機制與REGISTER類似;
事件包,一種擴充機制;事件模闆包,一種特殊的事件包;事件包定義自己的MIME類型;在NOTIFY的payload中攜帶狀态資訊;
2. 狀态釋出 - RFC3903
PUBLISH方法,用于client主動向狀态代理釋出狀态,使用payload攜帶;
Event head;
3. IM - RFC3428、RFC3862
兩種消息互動方式:頁面模式與session模式;
頁面模式:每個消息是獨立的,與它之前或之後的IM在protocol層無關;RFC3428定義的MESSAGE消息用于其實作,消息内容置于payload中,MIME正文填寫text/plain;RFC3862定義了與SIP客戶間的互操作,MIME使用message/cpim;
Session模式:使用SIP建立session,之後使用MSRP來攜帶消息内容;
4. PRACK - RFC3262
與傳統電信網絡中呼叫建立前信令對應的SIP臨時消息,如180,在某些場景下不可缺少,故增加了臨時消息可靠傳輸能力——對SIP基本狀态機會産生什麼影響?
僅适用于INVITE的臨時響應;
本擴充的辨別100rel;
RSeq頭,類似CSeq;PRACK的RACK頭,依次包括RSeq與CSeq頭的值;
不能對100 Trying使用可靠傳輸機制,因為100隻是用于終止INVITE等的重傳;
5. UPDATE - RFC3311
用于不影響目前dialog情況下更新會話描述,僅用于由INVITE産生的dialog,可在dialog的早期階段和确定階段發送,但不能在dialog建立前發送——如建立dialog的臨時響應發送、應答前;
早期階段(early INVITE-initiated):client獲得1xx(非100)應答後,dialog可能在早期階段後直接終結;
确定階段:得到2XX應答後;
UPDATE僅用于dialog;
UPDATE攜帶SDP offer,其2xx應答攜帶answer;
6. Precondition - RFC3312
用于session建立前的資源預留,對應SIP擴充标簽precondition;
Caller在初始SDP中指明本次會話的限制,called對其響應(IMS中好像使用183),但既不建立會話也不送出給使用者;在主被叫已知前提已經獲得滿足時主叫方再發送一個新的SDP offer,被叫方發送answer後session才建立;這在IMS中使用UPDATE;
SDP中的限制資訊如:a=des:qos sptimal e2e send
7. REFER - RFC3515
發送者指引接收者去通路REFER請求中所辨別的資源;Refer-To、Referred-By頭域,202 Accepted響應;
REFER與NOTIFY綜合使用,實作呼叫轉移功能;NOTIFY被用于Transferee通知Transferor第二個呼叫的狀态;從NOTIFY看出,REFER建立了一個訂閱,該訂閱不帶expire參數,expire值由接收方決定;發起方可以發送SUBSCRIBE來延長該時間;由事件通知架構的要求,接收到REFER後需要立即産生和發送NOTIFY;
呼轉的類型:
1. 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;
2. Attended transfer,即supervised transfer,Transferor與Transferee及Transfer Target間都存在呼叫;
成功的呼轉并不改變Transferor與Transferee間的媒體流,并不影響原有的session;任一方都可以在REFER後通過發送BYE消息來結束原有的session;
8. 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;
9. Private - RFC3325
用于可信網絡中判斷終端使用者、系統的身份;及提供終端使用者訓示其隐私要求的機制;
10. 信令壓縮 - RFC3486
RFC3320,信令壓縮規範,将文本信令壓縮成二進制流;
URI參數 comp=SigComp
使用request URI與via、route頭,訓示節點的壓縮支援;
11. INFO - RFC2976
提供一種在sip session執行建立操作開始後,獨立于sip信令路徑發送session相關“控制”資訊的機制——文獻[2];INFO的發送時機與UPDATE一樣;
12. SIP-T – RFC3372
在SIP消息體中包裝ISUP消息;使用INFO(RFC 2976)消息傳輸呼叫中的信令;
13. SIP消息分段 – RFC3420
MIME類型message/sipfrag;
14. SIP-Sec-Agree – RFC3329
安全協商,允許UA與其第一跳伺服器之間就後續通信中所使用的安全機制進行協商;
15. Media authorization – RFC3313
P-Media-Authorization
16. 服務路由發現 - RFC3608
UA可以在發出的請求中包含一系列Route頭,來使請求經過特定的proxy,進而獲得相應服務;
Service-Route頭,用于UA學習服務路由;registrar在響應REGISTER的200 OK中使用Service-Route頭,進而提供給UA;
17. 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介紹
1. RFC3665
Session Initiation Protocol (SIP) Basic Call Flow Examples
2. 3PCC - RFC3725
3rd party call control in sip
3. SDP – RFC2327 RFC3264 RFC4566
新的SDP标準是RFC4566(2006.7),替換了RFC2327與RFC3266;
4. RFC3960
Early Media and Ringing Tone Generation in the Session Initiation
5. 伺服器定位 –RFC3263
Session Initiation Protocol (SIP): Locating SIP Servers
6. RFC2806
URLS for telephone calls
7. RFC3108
Conventions for the use of the Session Description Protocol (SDP) for ATM Bearer Connections
8. RFC3204
MIME media types for ISUP and QSIG Objects
9. RFC3323
A Privacy Mechanism for SIP
10. 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;