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 <sip:bob@example.com>
      From: Alice <sip:alice@example.com>;tag=1928301774
      Call-ID: a84b4c76e66710
      CSeq: 1 INVITE
      Contact: <sips:alice@example.com>
      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 <sip:bob@example.com>
   From: Alice <sip:alice@example.com>;tag=1928301774
   Call-ID: a84b4c76e66710
   CSeq: 1 INVITE
   Contact: <sips:alice@example.com>
   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 <sip:bob@example.com>
   From: Alice <sip:alice@example.com>;tag=1928301774
   Call-ID: a84b4c76e66710
   CSeq: 2 INFO
   Contact: <sips:alice@example.com>
   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 <sip:bob@example.com>
   From: Alice <sip:alice@example.com>;tag=1928301774
   Call-ID: a84b4c76e66710
   CSeq: 3 INVITE
   Contact: <sips:alice@example.com>
   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]