Internet DRAFT - draft-hautakorpi-reason-header-for-warnings

draft-hautakorpi-reason-header-for-warnings






SIPPING Working Group                                 J. Hautakorpi, Ed.
Internet-Draft                                              G. Camarillo
Expires: April 15, 2006                                         Ericsson
                                                        October 12, 2005


  Extending the Session Initiation Protocol Reason Header with Warning
                                 Codes
           draft-hautakorpi-reason-header-for-warnings-00.txt

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

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

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on April 15, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   This document specifies a new protocol value, called 'SIP-Warning',
   for the Session Initiation Protocol (SIP) Reason header.  The values
   for the name space of 'SIP-Warning' are taken from the Warning codes
   (warn-codes) of SIP.  In addition, this document also defines one new
   SIP Warning code to be used in situations where User Agent Server
   (UAS) does not accept calls from an anonymous source.




Hautakorpi & Camarillo   Expires April 15, 2006                 [Page 1]

Internet-Draft      Reason header with warning codes        October 2005


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 3
   3.  Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
   4.  Example Use Cases . . . . . . . . . . . . . . . . . . . . . . . 4
   5.  New Warning Code for SIP  . . . . . . . . . . . . . . . . . . . 6
   6.  Security Considerations . . . . . . . . . . . . . . . . . . . . 6
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 7
     8.1.  Normative References  . . . . . . . . . . . . . . . . . . . 7
     8.2.  Informational References  . . . . . . . . . . . . . . . . . 7
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . . 8
   Intellectual Property and Copyright Statements  . . . . . . . . . . 9





































Hautakorpi & Camarillo   Expires April 15, 2006                 [Page 2]

Internet-Draft      Reason header with warning codes        October 2005


1.  Introduction

   The main purpose of this document is to introduce a new protocol
   value for Session Initiation Protocol (SIP) [3] Reason header field
   [2].  The Reason header field provides information on why a SIP
   request was issued.

   The protocol value defined in this draft is called 'SIP-Warning' and
   it consists of the Warning codes (warn-codes) defined in the Section
   20.43 of [3].  With 'SIP-Warning', it is possible to convey richer
   information about the reason why a SIP request was generated.

   This draft defines also one new Warning code for the situations where
   the User Agent Server (UAS) does not accept calls from an anonymous
   source.


2.  Terminology

   In this document, the key words "MUST", "MUST NOT", "REQUIRED",
   "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
   RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
   described in BCP 14, RFC 2119 [1] and indicate requirement levels for
   compliant implementations.


3.  Usage

   A SIP entity MAY add a Reason header field with the 'SIP-Warning'
   protocol value to a SIP request.  Example syntax is as follows:


     Reason: SIP-Warning; cause=304; text="Media type not available"

   Currently, the Reason header field can convey the status code of the
   response that triggered the generation of the SIP request in
   question.  By utilizing the possibility to convey more than one
   Reason header field in one request, and by defining a new 'SIP-
   Warning' protocol value, it is possible to also convey the
   information contained in the Warning header field of the triggering
   response to the final recipient.

   The use of 'SIP-Warning' is especially useful in the context of SIP
   Request History Information [4].  This is because SIP Request History
   Information uses Reason entries to inform about which kind of
   responses user agents return.





Hautakorpi & Camarillo   Expires April 15, 2006                 [Page 3]

Internet-Draft      Reason header with warning codes        October 2005


4.  Example Use Cases

   This section contains two example use cases of the 'SIP-Warning'
   protocol value.  The first example contains two user agent and one
   third party call controller in the following example use case.  A
   simplified message exchange is illustrated in Figure 1.


     A                Controller                          B
     | 1 INVITE           |                               |
     |<-------------------|                               |
     |                    |                               |
     | 2 200 OK           |                               |
     |------------------->|                               |
     |                    |                               |
     | 3 ACK              |                               |
     |<-------------------|                               |
     |                    |                               |
     |                    | 4 INVITE                      |
     |                    |------------------------------>|
     |                    |                               |
     |                    | 5 480 Temporatily unavailable |
     |                    |<------------------------------|
     |                    | Warning: 399 pc2.example.org "Low battery"
     |                    |                               |
     |                    | 6 ACK                         |
     |                    |------------------------------>|
     | 7 BYE              |                               |
     |<-------------------|                               |
     | Reason: SIP; cause=487; text="Request Terminated"  |
     | Reason: SIP-Warning; cause=399; text="Low battery" |
     |                    |                               |
     | 8 200 OK           |                               |
     |------------------->|                               |
     |                    |                               |

   Figure 1: Example Use Case with Third Party Call Controller

   The third party call controller tries to establish a session between
   A and B. However, B has a terminal with a battery, which is running
   out.  So, B do not want to take this call because it would drain out
   the battery completely.  If there would not be a way to convey
   Warning codes in Reason header field, A would not have any way of
   knowing why the session establishment really failed.

   In the second use case user A tries to establish a sessions with B.
   User B has registered three user agents, which are B1, B2 and B3.  A
   simplified message exchange is illustrated in Figure 2.  When A send



Hautakorpi & Camarillo   Expires April 15, 2006                 [Page 4]

Internet-Draft      Reason header with warning codes        October 2005


   an INVITE, the proxy sends INVITEs in sequence to B's registered user
   agents.


     A1       Proxy            B1             B2             B3
     | 1 INVITE |              |              |              |
     |--------->| 2 INVITE     |              |              |
     |          |------------->|              |              |
     |          |              |              |              |
     |          | 3 488 Not Acceptable Here   |              |
     |          |<-------------|              |              |
     |          | Warning: 305 pc1.example.org "Incomp. media"
     |          |              |              |              |
     |          | 4 ACK        |              |              |
     |          |------------->|              |              |
     |          |              |              |              |
     |          | 5 INVITE     |              |              |
     |          |---------------------------->|              |
     |          | H-I: <sip:b@b1.org?Reason=SIP;cause=488?   |
     |          |       Reason=SIP-Warning;cause=305>;idx=1  |
     |          |              |              |              |
     |          | 6 488 Not Acceptable Here   |              |
     |          |<----------------------------|              |
     |          | Warning: 370 pc2.example.org "Insuf. bandwidth"
     |          |              |              |              |
     |          | 7 ACK        |              |              |
     |          |---------------------------->|              |
     |          |              |              |              |
     |          | 8 INVITE     |              |              |
     |          |------------------------------------------->|
     |          | H-I: <sip:b@b1.org?Reason=SIP;cause=488?   |
     |          |       Reason=SIP-Warning;cause=305>;idx=1, |
     |          |      <sip:b@b2.org?Reason=SIP;cause=488?   |
     |          |       Reason=SIP-Warning;cause=370>;idx=2  |
     |          |              |              |              |
     |          | 9 200 OK     |              |              |
     |          |<-------------------------------------------|
     |          |              |              |              |
     |          | 10 ACK       |              |              |
     |          |------------------------------------------->|
     |          |              |              |              |

   Figure 2: Example Use Case with a SIP Proxy

   INVITEs to B1 and B2 fail, and their warning codes are conveyed in
   responses 3 and 6.  Proxy attaches the returned warning codes to
   History-Info header field (denoted as 'H-I' on the figure).  So, when
   the B3 gets an INVITE, it can see why the previous INVITEs have



Hautakorpi & Camarillo   Expires April 15, 2006                 [Page 5]

Internet-Draft      Reason header with warning codes        October 2005


   failed.


5.  New Warning Code for SIP

   The following SIP Warning code (warn-code) conveys information about
   the event, where UAS has not accepted a call because it was
   originated from an anonymous source.


     390 Anonymous calls not allowed: UAS does not accept anonymous
         calls.

   The motivation behind the definition of this new Warning code is that
   there are cases where there is a need to take automated actions based
   on the fact the UAS has not accepted a call from anonymous source.
   An example from such case is a situation where an anonymous call from
   Public Switched Telephone Network (PSTN) is going to an IP network,
   and then the UAS does not accept it.  In this case, the gateway on
   the communication path may need to take automated actions based on
   the fact that callee does not accept anonymous calls.

   Open issue: SIP's RFC [3] allows only such Warning codes that are
   related to the Session Description Protocol (SDP).  Should this be
   the case also in the future?


6.  Security Considerations

   An attacker may attempt to add, modify, or remove the values that
   belong to 'SIP-Warning' name space on Reason header field.  This
   could result in an application behaving in a non-desirable way.  So,
   it is strongly RECOMMENDED that integrity protection be applied to
   the SIP messages in question.  Eavesdropping does not pose any
   threats or vulnerabilities, and it does not prevent a proper
   operation.

   A new Warning code, specified in Section 5 does not have any security
   considerations in itself.


7.  IANA Considerations

   This document has two separate IANA considerations.  The first one is
   that this defines a new protocol value for the SIP Reason header
   field:





Hautakorpi & Camarillo   Expires April 15, 2006                 [Page 6]

Internet-Draft      Reason header with warning codes        October 2005


     Protocol value  Protocol Cause                    Reference
     --------------  ------------------------------    ---------
     SIP-Warning     Warning code                      [RFC XXXX]

   The second IANA consideration is that a new Warning code for SIP
   Warning code (warn-code) Registry is defined:


     Code  Description                                        Reference
     ----  -------------------------------------------------  ---------
     390   Anonymous calls not allowed: UAS does not accept   [RFC XXXX]
           anonymous calls.

   The 'RFC XXXX' tag needs to be replaced with the RFC number of this
   document.


8.  References

8.1.  Normative References

   [1]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997.

   [2]  Schulzrinne, H., Oran, D., and G. Camarillo, "The Reason Header
        Field for the Session Initiation Protocol (SIP)", RFC 3326,
        December 2002.

   [3]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
        Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
        Session Initiation Protocol", RFC 3261, June 2002.

8.2.  Informational References

   [4]  Barnes, M., "An Extension to the Session Initiation Protocol for
        Request History  Information", draft-ietf-sip-history-info-06
        (work in progress), January 2005.














Hautakorpi & Camarillo   Expires April 15, 2006                 [Page 7]

Internet-Draft      Reason header with warning codes        October 2005


Authors' Addresses

   Jani Hautakorpi (editor)
   Ericsson
   Hirsalantie 11
   Jorvas  02420
   Finland

   Email: Jani.Hautakorpi@ericsson.com


   Gonzalo Camarillo
   Ericsson
   Hirsalantie 11
   Jorvas  02420
   Finland

   Email: Gonzalo.Camarillo@ericsson.com

































Hautakorpi & Camarillo   Expires April 15, 2006                 [Page 8]

Internet-Draft      Reason header with warning codes        October 2005


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Copyright Statement

   Copyright (C) The Internet Society (2005).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




Hautakorpi & Camarillo   Expires April 15, 2006                 [Page 9]