Network Working Group                                          M. Mohali
Internet-Draft                                                B. Chatras
Intended status: Standards Track                   France Telecom Orange
Expires: April 16, 2011                                 October 13, 2010


   Extending the Session Initiation Protocol (SIP) Reason Header for
                              Applications
          draft-mohali-sipcore-reason-extension-application-00

Abstract

   This document defines a new protocol value "Application" for the
   Reason Header field and a new IANA Registry for registering
   application types.  This new value enables signaling that a request
   or response has been issued as a result of a decision made by a
   particular type of application or that an initial request has been
   retargeted as a result of an application decision.

Requirements Language

   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].

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 April 16, 2011.

Copyright Notice

   Copyright (c) 2010 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



Mohali & Chatras         Expires April 16, 2011                 [Page 1]


Internet-Draft   Reason Header extension for Application    October 2010


   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.


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Reason header extension . . . . . . . . . . . . . . . . . . . . 3
   3.  Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
     3.1.  Reason when issuing a Response  . . . . . . . . . . . . . . 4
     3.2.  Reason for Retargeting  . . . . . . . . . . . . . . . . . . 5
   4.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8
   5.  Security Considerations . . . . . . . . . . . . . . . . . . . . 9
   6.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 9
   7.  Normative References  . . . . . . . . . . . . . . . . . . . . . 9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . . 9





























Mohali & Chatras         Expires April 16, 2011                 [Page 2]


Internet-Draft   Reason Header extension for Application    October 2010


1.  Introduction

   The Reason header field [RFC3326] provides a mechanism to signal the
   reason why a SIP request or response was issued or why an initial
   request was retargeted.  This document requests IANA registration of
   a new protocol value "Application" for the Reason Header field and a
   new IANA Registry for registering application types.  This extension
   enables signaling that a request or response has been issued as a
   result of a decision made by a particular type of application or that
   an initial request has been retargeted as a result of an application
   decision (e.g.  Freephone number translation).


2.  Reason header extension

   The syntax of the Reason Header as defined in [RFC3326] is as
   follows:

   Reason            =  "Reason" HCOLON reason-value *(COMMA reason-value)
    reason-value      =  protocol *(SEMI reason-params)
    protocol          =  "SIP" / "Q.850" / token
    reason-params     =  protocol-cause / reason-text
                       / reason-extension
    protocol-cause    =  "cause" EQUAL cause
    cause             =  1*DIGIT
    reason-text       =  "text" EQUAL quoted-string
    reason-extension  =  generic-param



   This document adds a new protocol value "Application".

   When this protocol value is used, the protocol-cause and the reason-
   text fields shall be set to values registered in a new IANA Registry
   for registering application types.


   This document registers protocol causes for the following cases:


   o  Universal Access Number:
      A Universal Access Number application has influenced processing of
      the call (e.g. by translating a dialed Universal Access number to
      a routable directory number).

   o  Freephone:
      A Freephone application has influenced processing of the call
      (e.g. by translating a dialed Free Phone number to a routable



Mohali & Chatras         Expires April 16, 2011                 [Page 3]


Internet-Draft   Reason Header extension for Application    October 2010


      directory number).

   o  Premium Rate:
      A Premium Rate application has influenced processing of the call
      (e.g. by translating a dialed Premium Rate number to a routable
      directory number).

   o  Directory Enquiry:
      A Directory Enquiry application has influenced processing of the
      call (e.g. completion of the call to the Directory Number
      responding to the enquiry).

   o  VPN:
      A VPN application has influenced processing of the call (e.g. by
      translating a private number to a routable Directory Number).

   o  Credit Card Calling:
      A Credit Card Calling application has influenced processing of the
      call (e.g. it has completed the call to a directory number dialed
      in-band by the calling user).

   o  Voice Activated Dialing:
      A Voice-Activated Dialing application has influenced processing of
      the call (e.g. it has retargeted the call to a directory number
      determined by speech recognition).

   o  Customized Call Routing:
      An Customized Call Routing application has influenced processing
      of the call (e.g. by translating a dialed number into a routable
      directory number based on customized criteria such as time of day
      or caller's location).

   o  Prepaid:
      A Prepaid application has influenced processing of the call (e.g.
      it has requested that the call be released due to exhaustion of
      credit available on the user account).


3.  Use Cases

   The following text provides two examples illustrating when this new
   class of Reason values could be used either as a result of a call
   completion failure or in a retargeting situation.

3.1.  Reason when issuing a Response

   This section presents the case where an application inserts the
   Reason header in a SIP response and wants to signal that a call is



Mohali & Chatras         Expires April 16, 2011                 [Page 4]


Internet-Draft   Reason Header extension for Application    October 2010


   cleared due to a failure caused by a particular application:

   A served user having a prepaid calling card wants to call a friend.
   First, the served user joins the Prepaid application where it gets
   authenticated.  Then, the user dials a number corresponding to an
   international destination.  Unfortunately, the user has not enough
   credits left on his card and at some point in time the Prepaid
   application ends the call by sending a BYE method with a Reason
   header set as follows:

   Reason: application ;cause=9 ;text="Prepaid",

   SIP ;cause=402; text="Payment Required"

   Note: [RFC3326] states that a SIP message MAY contain more than one
   Reason value (i.e., multiple Reason lines), but all of them MUST have
   different protocol values and an implementation is free to ignore
   Reason values that it does not understand.

3.2.  Reason for Retargeting

   There are other situations where a call is retargeted as a result of
   an application decision (e.g.  Freephone service).  The proposed SIP
   extension of the Reason header allows to remain this application
   information in the signaling.

   [RFC4244] defines a SIP header field, History-Info, to provide a
   standard mechanism for capturing requests history information.  This
   allows receiving applications to determine hints about how and why
   the call arrived at the application/user.  The History-Info header
   field can contain an optional reason, by including the Reason Header
   [RFC3326] escaped in the hi-targeted-to-uri field.

   There are situations where a call is retargeted as a result of
   receiving a SIP response (e.g. 3XX response) in which case the Reason
   Header contains the SIP status code.  There are other situations
   where a call is retargeted as a result of an application decision
   (e.g.  Freephone service).  The extension of the Reason header
   defined in the present document covers the second type of situation
   and allows to convey the identification of such applications in the
   signaling.  This might help other applications invoked downstream to
   take appropriate decisions to avoid undesired service interactions.

   The following example illustrates the case where the Reason header is
   set due to retargeting by a Freephone service running in a SIP
   Application Server.





Mohali & Chatras         Expires April 16, 2011                 [Page 5]


Internet-Draft   Reason Header extension for Application    October 2010


   Reason: application ;cause=2 ;text="Freephone"


   More specifically, in such a case, the Reason header would appear in
   a History-Info header as described in [RFC4244] and illustrated
   below:

   Alice calls the Company dialing a Freephone service number.











































Mohali & Chatras         Expires April 16, 2011                 [Page 6]


Internet-Draft   Reason Header extension for Application    October 2010


     Alice        Free Phone Service   Company
       |                |                 |
       |    INVITE F1   |                 |
       |--------------->|   INVITE F2     |
       |                |---------------->|
       |                |                 |
       |                |                 |


   F1: INVITE Alice -> proxy.example.com

INVITE sip:+89955510044@example.com;user=phone SIP/2.0
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK-klj79f
From: Alice <sip:alice@example.com>; tag=1234567
To: Company <sip:info@company.biloxie.com>
Supported: histinfo
Max-Forwards: 70
Call-Id: 12345600@example.com
Record-Route: <sip:proxy.example.com;lr>
CSeq: 1 INVITE
Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp
Content-Length: <appropriate value>

 <!--SDP Not Shown-->

   F2: INVITE proxy.example.com -> Company

INVITE sip:+12125551212@phone2net.com SIP/2.0
Via: SIP/2.0/TCP as.example.com:5060;branch=z9hG4bK-vlk25e
Via: SIP/2.0/TCP proxy.example.com:5060;branch=z9hG4bK-klj79f
From: Alice <sip:alice@example.com>; tag=1234567
To: sip:+12125551212@phone2net.com;user=phone
Supported: histinfo
Max-Forwards: 69
Call-Id: 12345600@example.com
Record-Route: <sip:proxy.example.com;lr>
History-Info: <sip:+89955510044@example.com;user=phone?Reason:application
              ;cause=2;text="Freephone">;index=1
              <sip:+12125551212@phone2net.com>;index=1.1;mp=1
CSeq: 1 INVITE
Contact: Alice <sip:alice@192.0.2.3>
Content-Type: application/sdp
Content-Length: <appropriate value>


 <!--SDP Not Shown-->




Mohali & Chatras         Expires April 16, 2011                 [Page 7]


Internet-Draft   Reason Header extension for Application    October 2010


4.  IANA Considerations

   This document adds to one existing IANA Registry and creates one new
   Registry according to Section 27 of [RFC3261].


   The existing IANA Registry for the SIP Reason Header is as follows:

      Protocol Value   Protocol Cause            Reference
      --------------   --------------            ---------
      SIP              Status code               RFC 3261
      Q.850            Cause value in decimal    ITU-T Q.850
      Preemption       Cause value in decimal*   RFC 4411

   This document adds to that Registry with the following entry:

      Protocol Value   Protocol Cause            Reference
      --------------   --------------            ---------
      Application      Cause value in decimal    [RFCXXXX]


   Below is a new IANA Registry for SIP Reason Header reason-text
   strings and reason-param cause values, associated with the protocol
   value "application".  Per [RFC3326], the reason-text string is a
   quoted default string with only human understandability meant.  These
   strings can be changed by local policy.

   The following cause values and associated reason text are defined:

                   Reason-
      Protocol     param      Reason-text                Reference
      --------     -------    ------------               ---------
      Application  Cause=1    Universal Access Number    [RFCXXXX]
      Application  Cause=2    Freephone                  [RFCXXXX]
      Application  Cause=3    Premium Rate               [RFCXXXX]
      Application  Cause=4    Directory Enquiry          [RFCXXXX]
      Application  Cause=5    VPN                        [RFCXXXX]
      Application  Cause=6    Credit Card Calling        [RFCXXXX]
      Application  Cause=7    Voice Activated Dialing    [RFCXXXX]
      Application  Cause=8    Customized Call Routing    [RFCXXXX]
      Application  Cause=9    Prepaid                    [RFCXXXX]



   Note to the RFC-Editor: RFCXXXX should be replaced by this RFC
   reference when available.

   The cause values created by the Application Protocol namespace in



Mohali & Chatras         Expires April 16, 2011                 [Page 8]


Internet-Draft   Reason Header extension for Application    October 2010


   this document are defined in Section 2.  Each cause value has a
   Reason-text string as a general description of what the cause value
   is for.  Section 3 provides an example for the above cause codes with
   a message flow diagram.

   The above cause values are included in this registry.  New cause
   values can be added and are allocated as First Come First Served.


5.  Security Considerations

   This specification does not add any security constraint beyond the
   security considerations for the Reason header field described in
   [RFC3326] apply.


6.  Acknowledgements


7.  Normative References

   [RFC2119]  "Key words for use in RFCs to Indicate Requirement
              Levels", RFC 2119, March 1997.

   [RFC3261]  "SIP: Session Initiation Protocol", RFC 3261, June 2002.

   [RFC3326]  "The Reason Header Field for the Session Initiation
              Protocol (SIP)", December 2002.

   [RFC4244]  "An Extension to the Session Initiation Protocol (SIP) for
              Request History Information", RFC 4244, November 2005.


Authors' Addresses

   Marianne Mohali
   France Telecom Orange
   38-40 rue du General Leclerc
   Issy-Les-Moulineaux Cedex 9  92794
   France

   Phone: +33 1 45 29 45 14
   Email: marianne.mohali@orange-ftgroup.com








Mohali & Chatras         Expires April 16, 2011                 [Page 9]


Internet-Draft   Reason Header extension for Application    October 2010


   Bruno Chatras
   France Telecom Orange
   38-40 rue du General Leclerc
   Issy-Les-Moulineaux Cedex 9  92794
   France

   Phone: +33 1 45 29 41 48
   Email: bruno.chatras@orange-ftgroup.com











































Mohali & Chatras         Expires April 16, 2011                [Page 10]