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 ; tag=1234567 To: Company Supported: histinfo Max-Forwards: 70 Call-Id: 12345600@example.com Record-Route: CSeq: 1 INVITE Contact: Alice Content-Type: application/sdp Content-Length: 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 ; tag=1234567 To: sip:+12125551212@phone2net.com;user=phone Supported: histinfo Max-Forwards: 69 Call-Id: 12345600@example.com Record-Route: History-Info: ;index=1 ;index=1.1;mp=1 CSeq: 1 INVITE Contact: Alice Content-Type: application/sdp Content-Length: 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]