SIPCORE Working Group Y. Song Internet-Draft Y. Jiang Intended status: Standards Track China Mobile Expires: February 2, 2013 Aug 2012 Private Header (P-Header) Extensions to the Session Initiation Protocol (SIP) for support of Indication of Dialog Type draft-songyue-dispatch-invite-usage-indication-00 Abstract This document describes private extensions to the Session Initiation Protocol (SIP) that enable a SIP entity to indicate in the INVITE message the exact purpose of the INVITE transaction, e.g. media negotiation, session refresh or creation of an pure signaling dialog. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on February 2, 2013. Copyright Notice Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Song & Jiang Expires February 2, 2013 [Page 1] Internet-Draft INVITE Usage Indication Aug 2012 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. P-INVITE-Type Header Field definition . . . . . . . . . . . . 5 4. UA behavior . . . . . . . . . . . . . . . . . . . . . . . . . 6 5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5.1. Creating a normal session with media negotiation . . . . . 7 5.2. Creating a pure signaling session . . . . . . . . . . . . 8 5.3. Doing session refresh . . . . . . . . . . . . . . . . . . 9 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13 9. Normative References . . . . . . . . . . . . . . . . . . . . . 14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 15 Song & Jiang Expires February 2, 2013 [Page 2] Internet-Draft INVITE Usage Indication Aug 2012 1. Introduction The Session Initiation Protocol (SIP) provides capability to create a dialog using INVITE transaction. When creating dialog with INVITE, there always media negotiation accompanied. When the UAC includes an SDP offer in the INVITE message, the UAS will also includes SDP answer in the response message. If there is no body in the INVITE message, the UAS will include SDP offer in the response message, for example 200 OK, then the UAC must send SDP answer in the ACK message, so the media negotiation is done. In some scenarios the using of INVITE transaction is only to create a pure signaling session, no media is needed. Example could be the media server control using MSML. The controller uses INVITE to create a control dialog with the media server, and then send INFO messages that carrying MSML body within the dialog. The second example is within the Third Generation Partnership Project (3GPP) IP Multimedia Subsystem (IMS). When Unstructured Supplementary Service Data (USSD) service is provided in IMS, a dialog is created between UE and the network, then the USSD data is transmit using INFOs within the dialog. In such scenarios, the media negotiation is unnecessary and it may make overhead to reserve media resource. Third example is for the session refresh, in which the refresher sends INVITE only to refresh the session timer, media re-negotiation is unnecessary. This document attempts to provide a mechanism that enables the SIP entity to indicate in the INVITE message the exact purpose of the INVITE transaction. Song & Jiang Expires February 2, 2013 [Page 3] Internet-Draft INVITE Usage Indication Aug 2012 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. Song & Jiang Expires February 2, 2013 [Page 4] Internet-Draft INVITE Usage Indication Aug 2012 3. P-INVITE-Type Header Field definition The P-INVITE-Type header field conveys the usage of the INVITE message. It is place only in INVITE requests. The syntax of the P-INVITE-Type header field is as follow: P-INVITE-Type = "P-INVITE-Type" HCOLON invite-type Invite-type = "media-negotiation"/"ini-sig-dialog"/ "refresh-session" The P-INVITE-Type value "media-negotiation" indicates that the INVITE request is to create a normal session with media negotiation, which is the current usage of INVITE request. The value "ini-sig-session" indicates that the current INVITE request is to create a pure signaling dialog, no media negotiation is needed. The value "refresh-session" indicates that the INVITE request is used to refresh an existing session. Song & Jiang Expires February 2, 2013 [Page 5] Internet-Draft INVITE Usage Indication Aug 2012 4. UA behavior When UAC is sending an INVITE request, it SHOULD insert a P-INVITE- Type header into the message and set the value according to the purpose of this INVITE request. If the value is set to "ini-sig- session" or "refresh-session", the UAC MUST NOT include SDP body in the INVITE request. If the UAC is to create a normal session with media negotiation, it may not insert the P-INVITE-Type header field. When UAS receive an INVITE request with a P-INVITE-Type header field, it must check the value of this header. If the value is "ini-sig- session" or "refresh-session" the UAS will know that this INVITE transaction does not do media negotiation and MUST NOT include any SDP body in the corresponding response messages. If the INVITE request does not contain P-INVITE-Type header field, the UAS MUST treat it as the P-INIVTE-Type value is "media-negotiation". Song & Jiang Expires February 2, 2013 [Page 6] Internet-Draft INVITE Usage Indication Aug 2012 5. Examples 5.1. Creating a normal session with media negotiation Alice Bob |(1) INVITE | |P-INVITE-Type: | |media-negotiation | |----------------->| |(2) 200 OK | |<-----------------| |(3) ACK | |----------------->| | | |------------------| | media setup | |------------------| Figure 1: Example of creating normal session Figure 1 gives an example of a normal use of INVITE request. In this example, UAC includes a P-INVITE-Type header field in the INVITE message and the value is set to "media-negotiation". The INVITE request generated by UAC (message 1) might look like this: INVITE sip:bob@example.com SIP/2.0 Via: SIP/2.0/UDP alice.example.com;branch=z9hG4bKnashds8 Max-Forwards: 70 To: Bob From: Alice ;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 1 INVITE Contact: P-INVITE-Type: media-negotiation Content-Type: application/sdp Content-Length: 200 (Alice's SDP not shown) This request indicates that Alice wants to create a normal session with Bob and the SDP body is included in the message. When Bob receive this message, deals with the SDP offer in the request then send SDP answer in the 200 OK response. Song & Jiang Expires February 2, 2013 [Page 7] Internet-Draft INVITE Usage Indication Aug 2012 5.2. Creating a pure signaling session Alice Bob |(1) INVITE | |P-INVITE-Type: | |ini-sig-session | |----------------->| |(2) 200 OK | |<-----------------| |(3) ACK | |----------------->| | | |------------------| | no media setup | |------------------| | | |(4) INFO | |----------------->| |(5) 200 OK | |<-----------------| |(6) IFNO | |<-----------------| |(7) 200 OK | |----------------->| |(8) BYE | |----------------->| |(9) 200 OK | |<-----------------| Figure 2: Example of creating pure signaling session Figure 2 shows how to use INVITE request to create a pure signaling session. In this example, a signaling dialog is first created between Alice and Bob, then they exchange data using INFO request within the dialog. Alice inserts P-INVITE-Type into the INVITE message and sets the value to "ini-sig-dialog". The INVITE message sent by Alice (message 1) has no body and may look like this: INVITE sip:bob@example.com SIP/2.0 Via: SIP/2.0/UDP alice.example.com;branch=z9hG4bKnashds8 Max-Forwards: 70 To: Bob From: Alice ;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 1 INVITE Contact: P-INVITE-Type: ini-sig-dialog Song & Jiang Expires February 2, 2013 [Page 8] Internet-Draft INVITE Usage Indication Aug 2012 Content-Length: 0 Bob receives the INVITE request and finds that the P-INIVTE-Type header is set to "ini-sig-dialog", then it will not include any message body in the response message. The INFO requests sent between Alice and Bob use the same Call-ID as the previous INVITE request, like this: INFO sip:bob@example.com SIP/2.0 Via: SIP/2.0/UDP alice.example.com;branch=z9hG4bKnashDFSD2 Max-Forwards: 70 To: Bob From: Alice ;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 2 INFO Contact: Content-Type: -- content-type -- Content-Length: -- content-length-- -- Content in the INFO request -- 5.3. Doing session refresh Alice Bob | | |------------------| | session exsiting | |------------------| | | |(1) INVITE | |P-INVITE-Type: | |refresh-session | |----------------->| |(2) 200 OK | |<-----------------| |(3) ACK | |----------------->| Figure 3: Example of session refreshing Figure 3 gives an example of session refreshing. A session has been created between Alice and Bob, and session timer is required. When Alice sends INVITE request for session refreshing, it inserts a P-INVITE-Type header into the message and sets the value to "refresh- session", no message body is included in the request. Message 1 may Song & Jiang Expires February 2, 2013 [Page 9] Internet-Draft INVITE Usage Indication Aug 2012 look like this: INVITE sip:bob@example.com SIP/2.0 Via: SIP/2.0/UDP alice.example.com;branch=z9hG4bKnashds8 Max-Forwards: 70 To: Bob From: Alice ;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 3 INVITE Contact: P-INVITE-Type: refresh-session Content-Length: 0 Song & Jiang Expires February 2, 2013 [Page 10] Internet-Draft INVITE Usage Indication Aug 2012 6. Security Considerations Song & Jiang Expires February 2, 2013 [Page 11] Internet-Draft INVITE Usage Indication Aug 2012 7. IANA Considerations Song & Jiang Expires February 2, 2013 [Page 12] Internet-Draft INVITE Usage Indication Aug 2012 8. Acknowledgements Song & Jiang Expires February 2, 2013 [Page 13] Internet-Draft INVITE Usage Indication Aug 2012 9. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. Song & Jiang Expires February 2, 2013 [Page 14] Internet-Draft INVITE Usage Indication Aug 2012 Authors' Addresses Yue Song China Mobile 32 Xuanwumenxi Ave, Xuanwu District Beijing 100053 P.R.China Email: songyue@chinamobile.com Yi Jiang China Mobile 32 Xuanwumenxi Ave, Xuanwu District Beijing 100053 P.R.China Email: jiangyi@chinamobile.com Song & Jiang Expires February 2, 2013 [Page 15]