Internet DRAFT - draft-kaplan-dispatch-sip-205-response

draft-kaplan-dispatch-sip-205-response




DISPATCH Working Group                                        H. Kaplan 
Internet Draft                                                   Oracle 
Intended status: Standards Track                          July 29, 2013 
Expires: January 30, 2014                                               
                                                                        
                                                                        
                                                                        
    
    
            Session Initiation Protocol (SIP) Success Response 
              Code for Indication of Alternate Target Answerer 
                 draft-kaplan-dispatch-sip-205-response-00 
    
    
Abstract
    
   This document defines a new Session Initiation Protocol (SIP) 
   response, 205 Alternate Answerer, that a SIP User Agent Server (UAS) 
   can use to indicate to the User Agent Client (UAC) that the UAS is 
   answering the request for which it was not the intended target.  
   This is useful for cases where the UAC might wish to perform 
   different actions based on such knowledge, such as terminate the 
   dialog or re-attempt the request in a different way. 
    
Status of this Memo
    
   This Internet-Draft is submitted to IETF in full conformance with 
   the provisions of BCP 78 and 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 January 29, 2014.  
    



 
 
Kaplan                   Expires January 2014                 [Page 1] 
Internet-Draft          205 Alternate Answerer               July 2013 
 
 
Copyright Notice
    
   Copyright (c) 2013 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. 
    
Table of Contents
    
   1. Introduction..................................................2 
   2. Terminology...................................................3 
   3. Applicability and Limitation..................................3 
      3.1. Rationale for 205 vs. 200................................3 
   4. User Agent Server Behavior....................................4 
   5. User Agent Client Behavior....................................5 
   6. Proxy Behavior................................................5 
   7. Open Issues...................................................5 
   8. Security Considerations.......................................5 
   9. IANA Considerations...........................................6 
   10. Acknowledgments..............................................6 
   11. References...................................................6 
      11.1. Normative References....................................6 
      11.2. Informative References..................................6 
   Author's Address..................................................7 
    
    
1. Introduction
    
   In certain cases user agents other than the intended target may 
   answer a SIP request with a 2xx-class response.  For example, a 
   Back-to-Back User Agent (B2BUA) might answer a [draft-traceroute] 
   INVITE request with a 200 response if the received Max-Forwards 
   header field value is 0, in order to establish a media-loopback 
   dialog.  Another example is a voicemail or announcement server might 
   wish to answer an INVITE request intended for a temporarily or 
   permanently unavailable Address-of-Record target user, in order to 
   establish a dialog with the UAC to play and record media. 
    
   In such cases, the answering UAS may wish to indicate it is not the 
   intended target in order to let the UAC perform additional logic 
   based upon this knowledge.  For example, in order to let the UAC 
 
 
Kaplan                   Expires January 2014                 [Page 2] 
Internet-Draft          205 Alternate Answerer               July 2013 
 
 
   generating [draft-traceroute] requests know that it has not yet 
   reached the final target and should increase the Max-Forwards value 
   for its next request.  In the voicemail case, the UAS voicemail 
   server might indicate to the UAC it is not the intended target so 
   that the UAC can terminate the dialog immediately instead of leaving 
   a voicemail message. 
    
   This document defines a new SIP response code: 205 Alternate 
   Answerer.  A UAS can send a 205 response instead of a 200 response 
   in order to indicate it is an alternate answerer, instead of the 
   originally intended target.  The SIP Reason header field is also 
   included in the 205 response message, to indicate the underlying 
   cause that made the UAS answer the request. 
    
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 RFC 2119.  The 
   terminology in this document conforms to RFC 2828, "Internet 
   Security Glossary". 
    
3. Applicability and Limitation 
    
   The 205 response code MAY be used in response of any SIP method 
   request outside of a dialog.  The 205 response code does not change 
   the rules for dialog establishment defined in RFC 3261, and behaves 
   in all ways as a 200 OK response.  A UAC that does not implement 
   explicit support for 205 will treat it as a 200. 
    
   In some cases a UAS that answers a request does not know it is not 
   the originally intended target; for example an upstream proxy might 
   have redirected the request and changed the target before forwarding 
   the request to the UAS.  In such cases, the SIP proxy MAY change a 
   received 200 from the UAS to a 205 response code as described in 
   section 6, and include a Reason header field for why it retargeted 
   the request to the UAS. 
    
   In some cases a SIP proxy or B2BUA might change a 205 response code 
   to a 200 response, before the response reaches the UAC.  The Reason 
   header field might still reach the UAC in such cases, however. 
    
3.1. Rationale for 205 vs. 200 
    
   The 205 response provides a means for the UAS to indicate to the UAC 
   that some entity other than the original target is answering the 
   request, in order to let the UAC perform different actions than it 
   otherwise would have with a 200 OK response.   
    
 
 
Kaplan                   Expires January 2014                 [Page 3] 
Internet-Draft          205 Alternate Answerer               July 2013 
 
 
   In the INVITE-based sip-traceroute case this is necessary to let the 
   UAC know when it has not yet reached the final target of its 
   traceroute testing.  Likewise it might be useful for an OPTIONS-
   based traceroute as described in section 11 of [RFC3261].  
    
   For voicemail cases this is useful in order to avoid wasting 
   resources on the UAS if the calling agent will not leave a voicemail 
   in the end anyway.  It might also be useful if the UAC can 
   immediately terminate the dialog and automatically attempt another 
   target AoR it might know about, instead of having the calling user 
   hang up and try a different called party. 
    
   For [RFC3428] MESSAGE-based requests a 205 response might be useful 
   to indicate the instant message is being stored on another server 
   until the intended target user retrieves it some time later.  [Note: 
   this used to be possible with a 202 response code, but it appears 
   the 202 has been deprecated by RFC 6665?] 
    
4. User Agent Server Behavior 
    
   When a UAS receives a request that it is not the intended target 
   for, and if it is going to answer the request with a 200 anyway, it 
   MAY instead send a 205 Alternate Answerer response.  A Reason header 
   field [RFC3326] SHOULD be inserted in the response, with a cause 
   parameter value and reason-text string indicating the failure code 
   that caused it to answer the request. 
    
   Generally a UAS will not answer a request that is not targeted for 
   it with a 200 OK, but will instead respond with a 404 Not Found per 
   RFC 3261.  Local policy can dictate otherwise, for example a B2BUA 
   might answer an INVITE as part of the sip-traceroute mechanism, or a 
   voicemail system might answer an INVITE on behalf of a temporarily 
   or permanently unavailable user. 
    
   The Reason header field cause parameter value SHOULD be based on the 
   failure condition that triggered the UAS to answer the request 
   instead of the true target, or the failure SIP response code it 
   would otherwise have returned in a failure response. 
    
   For example, a B2BUA answering a sip-traceroute request per [draft-
   traceroute] would generate a 205 Alternate Answerer response with a 
   Reason header field of: 
    
       Reason: SIP;cause=483;text="Too Many Hops" 
    




 
 
Kaplan                   Expires January 2014                 [Page 4] 
Internet-Draft          205 Alternate Answerer               July 2013 
 
 
   A voicemail server or answering machine might answer an INVITE for 
   an unavailable user with a 205 Alternate Answerer response and a 
   Reason header field of: 
    
       Reason: SIP;cause=480;text="Temporarily Unavailable" 
    
   Or an announcement server or dialing-operator system might answer an 
   INVITE for an unknown Address-of-Record for its domain with a 205 
   Alternate Answerer response and a Reason header field of: 
    
       Reason: SIP;cause=404;text="Not Found" 
    
5. User Agent Client Behavior 
    
   A UAC receiving a 205 response MUST follow the rules for 2xx 
   responses defined in RFC 3261, as if the response was a 200 OK.  The 
   UAC MAY have additional specific logic for subsequent processing 
   when receiving the 205 response and Reason header field cause 
   parameter.  For example it might decide to immediately terminate an 
   INVITE-based session by sending a BYE request (after sending the 
   ACK). 
    
6. Proxy Behavior 
    
   A proxy that retargets a request to a different UAS based upon a 
   failure to reach the original intended target MAY change a 200 OK 
   response from the retargeted-to UAS to a 205 Alternate Answerer.  
   The proxy SHOULD insert a Reason header field with a cause parameter 
   value indicating the failure code that caused it to retarget the 
   request. 
    
   For example, if a proxy retargets a request to a voicemail server 
   because the original target is busy, and the voicemail server 
   responds with a 200 OK, then the proxy might change it to a 205 
   Alternate Answerer response with a Reason header field of: 
    
       Reason: SIP;cause=486;text="User Busy" 
    
7. Open Issues 
    
     o  Should the 205 only apply to INVITEs, OPTIONS and MESSAGE 
        request methods? (I can't imagine a purpose for REGISTER, 
        SUBSCRIBE, or PUBLISH request method types) 
         
    
8. Security Considerations 
    
   SIP response codes are not protected from modification between the 
   UAS and UAC, and thus a middleman might change a 205 to a 200, or 
 
 
Kaplan                   Expires January 2014                 [Page 5] 
Internet-Draft          205 Alternate Answerer               July 2013 
 
 
   vice-versa.  This might be abused in order to force the UAC to 
   perform an action it would otherwise not perform; for example to 
   make it perform additional sip-traceroute requests when it should 
   stop instead, or stop performing them when it should continue 
   instead. 
    
   Having voicemail servers or answering machines generate a 205 
   response might benefit malicious auto-dialers, since it enables them 
   to conserve resources and to move on more quickly to other targets 
   in search of human answerers. 
     
9.   IANA Considerations 
    
   This document registers one new response code.  The response code is 
   defined by the following information, which is to be added to the 
   method and response-code sub-registry under 
   http://www.iana.org/assignments/sip-parameters. 
    
   Response Code Number:   205 
   Default Reason Phrase:  Alternate Answerer 
    
    
10.  Acknowledgments 
    
   The concept of creating a new 205 response code with a Reason header 
   field came out of discussions with Paul Kyzivat and Brett Tate. 
 
11.  References 
    
11.1.     Normative References 
    
    [RFC3261] 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. 
     
    [RFC3326] Schulzrinne, H., Oran, D., Camarillo, G., "The Reason 
         Header Field for the Session Initiation Protocol (SIP)", RFC 
         3326, December, 2002. 
     
    
11.2.     Informative References 
    
    [RFC3428] Campbell, B., ed., et al, "Session Initiation Protocol 
         (SIP) Extension for Instant Messaging", RFC 3428, December 
         2002. 
     
    [draft-traceroute] Kaplan, H., "A Media-based Traceroute Function 
         for the Session Initiation Protocol (SIP)", draft-ietf-straw-
         sip-traceroute-00, July 2013. 
 
 
Kaplan                   Expires January 2014                 [Page 6] 
Internet-Draft          205 Alternate Answerer               July 2013 
 
 
     
 
 
Author's Address
    
   Hadriel Kaplan
   Oracle
   Email: hadriel.kaplan@oracle.com
 
    







































 
 
Kaplan                   Expires January 2014                 [Page 7]