Internet DRAFT - draft-gunn-sip-req-for-rph-in-responses

draft-gunn-sip-req-for-rph-in-responses




SIP WG                                                      Janet Gunn
Internet-Draft                                                     CSC
                                                          Martin Dolly
Expires: May 12, 2008                                        AT&T Labs
                                                            Tim Dwight
                                                               Verizon
                                                      November 9, 2007
                          
      Requirements for SIP Resource Priority Header in SIP Responses
               draft-gunn-sip-req-for-rph-in-responses-00


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 May 9th, 2008.

Copyright Notice

   Copyright (C) The IETF Trust (2007).

Abstract

   The Session Initiation Protocol (SIP) Resource Priority Header
   (RPH), in its current form, is ignored in SIP responses.  This was 
   a design choice during RFC 4412's development. This is now 
   considered a bad design choice in certain scenarios. The Internet 
   Draft "Allowing SIP Resource Priority Header in SIP Responses" 
   (draft-polk-sip-rph-in-responses-00) describes a modification to 
   RFC4412 to permit RPH in responses. This document describes one of 
   the requirements associated with systems using RPH, that could be 
   satisfied by the modification of RFC 4412 to permit RPH on 
   responses, and is not easily met by other methods. This ID provides
 

Gunn                 Expires May 9th, 2008                    [Page 1]

Internet-Draft   Requirements for SIP RPH in Responses   November 2007

   additional motivation for SIP RPH in Responses.

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


1.  Introduction

   The Session Initiation Protocol (SIP) Resource Priority Header
   (RPH) [RFC4412], in its current form, is ignored by SIP entities if 
   in SIP responses.  It was a design choice during RFC 4412's 
   development that only stateful SIP elements would grant SIP 
   messages preferential treatment. Limiting servers which process the
   RPH to only being transaction stateful is now considered a bad 
   design choice in certain scenarios, such as those entities within
   trusted networks.  This document describes in greater detail a 
   requirement, within a trusted network, which cannot be met by 
   RFC 4412 in its current form, without RPH on responses.  The 
   requirement can be met if RPH on responses is permitted.

   As stated in RFC 3487 [RFC3487] and RFC 4412, one of the motivation 
   for RPH is to support the migration of the Government Emergency 
   Telecommunications Service (GETS) and Wireless Priority Service 
   (WPS) from the service providers' Circuit Switched Networks to the  
   same service providers' Packet Switched Networks, using IP and SIP.
   The ets and wps name spaces, each with 5 priority values, are 
   intended to support this.

   We have simplified the description of the GETS/WPS service and call
   flow, in order to focus on the facet that is most directly related
   to the need for RPH in responses.

   In the GETS/WPS paradigm, each authorized user (a "Service User") 
   is assigned a priority (out of 5) when GETS/WPS is invoked, for 
   times in which congestion may be experienced, reducing the 
   probability of successful communications.  GETS/WPS treatment
   is especially important for resources in the access networks where
   bottlenecks are most likely.

   The user does NOT submit the priority level when requesting 
   GETS/WPS service- in fact, in many cases, the Service User does 
   not know his/her priority level, and nor does the User Equipment 
   (UE) at which s/he is subscribed.  This paradigm introduces some 
   requirements that are not met by RFC 4412 without RPH in responses.

   Note that this is different from the MLPP paradigm associated with 
   the dsn and dsrn namespaces.  In the MLPP paradigm, the user 
   requests a specific priority level.  The authentication/
   authorization process then determines whether the user is entitled 
   to the requested priority level.



Gunn                  Expires May 9th, 2008                   [Page 2]

Internet-Draft   Requirements for SIP RPH in Responses   November 2007

2.  Problem Statement

   The high level call flow (whether in the circuit switched network
   or the IP network) for a GETS/WPS call is that the user initiates 
   a call requesting the GETS/WPS service (but not specifying the 
   priority level).  (In the current system this is indicated in the 
   "dialed digits".  In SIP this will be reflected in the URI.) The 
   specialized GETS/WPS server (referred to as the GETS Application 
   Server, or GETS AS) then determines whether the user and/or 
   equipment are authenticated and authorized to use GETS/WPS.  If so,
   it extracts the user's priority level from a data base.  The GETS 
   AS also extracts or generates the URI for the called party.

   In the SIP domain, the wps namespace (with the user's priority 
   value), in conjunction with the ets namespace, in the RPH is used to
   convey the priority value extracted from the data base.  The rest 
   of this requirement statement will focus on the wps namespace with 
   the user's priority value.  

   (In the circuit switched domain, using SS7, the  Calling Party 
   Category (CPC) setting is used to indicate a request for priority 
   service, and the Precedence Parameter is used to indicate the 
   priority level extracted from the database- without implying any 
   preemption.)

   The network then proceeds to allocate/reserve resources in both the 
   originating and terminating access networks, whether IP or circuit 
   switched. In the IP network it would typically use preconditions, 
   as described in RFC 3312 [RFC3312]. At a PSTN gateway, the 
   indication that it is a GETS/WPS call, and the priority level, 
   would be translated into the appropriate ISUP parameters, and the 
   legacy GETS/WPS mechanisms would be used to ensure a high 
   probability of completion in the ISUP network. In either case, 
   the user's priority level is needed in allocating resources 
   in both the originating and terminating access networks.
 
   The INVITE that is sent toward the called party's UA will contain 
   the RPH with the calling user's priority level.  The same 
   information needs to be sent toward the calling party, so it can 
   be used in the originating access network.

   Typically, the messages sent back toward the calling party (once 
   the priority value has been extracted from the data base, but 
   before the bearer path is established) would be responses (e.g., 
   183) rather than requests.  


2.1 Sample Call Flow

   Figure 1 shows the call flow for basic session establishment using
   preconditions (as described in  RFC 3312). 



Gunn                  Expires May 9th, 2008                   [Page 3]

Internet-Draft   Requirements for SIP RPH in Responses   November 2007

               A                                            B

               |                                            |
               |-------------(1) INVITE SDP1--------------->|
               |                                            |
               |<------(2) 183 Session Progress SDP2--------|
               |  ***                                 ***   |
               |--*R*-----------(3) PRACK-------------*R*-->|
               |  *E*                                 *E*   |
               |<-*S*-------(4) 200 OK (PRACK)--------*S*---|
               |  *E*                                 *E*   |
               |  *R*                                 *R*   |
               |  *V*                                 *V*   |
               |  *A*                                 *A*   |
               |  *T*                                 *T*   |
               |  *I*                                 *I*   |
               |  *O*                                 *O*   |
               |  *N*                                 *N*   |
               |  ***                                 ***   |
               |  ***                                       |
               |  ***                                       |
               |-------------(5) UPDATE SDP3--------------->|
               |                                            |
               |<--------(6) 200 OK (UPDATE) SDP4-----------|
               |                                            |
               |<-------------(7) 180 Ringing---------------|
               |                                            |
               |-----------------(8) PRACK----------------->|
               |                                            |
               |<------------(9) 200 OK (PRACK)-------------|
               |                                            |
               |                                            |
               |                                            |
               |<-----------(10) 200 OK (INVITE)------------|
               |                                            |
               |------------------(11) ACK----------------->|
               |                                            |
               |                                            |

         Figure 1: Basic session establishment using preconditions


   Figure 2 shows the addition of the GETS AS, to authenticate and 
   authorize the GETS/WPS request, and to extract the user's priority 
   level from the database. Note that the GETS AS is B2BUA that remains
   in the call/session path in order to monitor call/session progress 
   and initiate subsequent call processing. It also shows the addition
   of the RPH with the wps namespace in subsequent requests.  In this 
   case, A knows that GETS/WPS service has been requested, but does no
   know the user's priority level. Based on the information included 
   in the initial INVITE, the GETS Application server authenticates the
   user, and looks up the user's priority level in the co-located 


Gunn                  Expires May 9th, 2008                   [Page 4]

Internet-Draft   Requirements for SIP RPH in Responses   November 2007


    A                            GETS AS                             B
    |                                |                                |
    |-----------(1) INVITE SDP1----->|                                |
    |                    Look up in data base for                     |
    |                         priority level (=3)                     |
    |                                |                                |
    |                                |----(2) INVITE SDP1 RPH wps.3-->|
    |                                |                                |
    |                                |<-(3) 183 Session Progress SDP2-|
    |<-(4) 183 Session Progress SDP2-|                                |
    |  ***                           |                                |
    |--*R*---------(5) PRACK-------->|                          ***   |
    |  *E*                           |---(6) PRACK RPH wps.3----*R*-->|
    |  *S*                           |                          *E*   |
    |  *E*                           |<--(7) 200 OK (PRACK)-----*S*---|
    |<-*R*-----(8) 200 OK (PRACK)----|                          *E*   |
    |  *V*                           |                          *R*   |
    |  *A*                           |                          *V*   |
    |  *T*                           |                          *A*   |
    |  *I*                           |                          *T*   |
    |  *O*                           |                          *I*   |
    |  *N*                           |                          *O*   |
    |  ***                           |                          *N*   |
    |  ***                           |                          ***   |
    |  ***                           |                          ***   |
    |--(9) UPDATE SDP3-------------->|                                |
    |                                |-(10) UPDATE SDP3  RPH wps.3--->|
    |                                |                                |
    |                                |<---(11) 200 OK (UPDATE) SDP4---|
    |<--(12) 200 OK (UPDATE) SDP4----|                                |
    |                                |                                |
    |                                |<---------(13) 180 Ringing------|
    |<-------(14) 180 Ringing--------|                                |
    |                                |                                |
    |--------------(15) PRACK------->|                                |
    |                                |------(16) PRACK RPH wps.3----->|
    |                                |                                |
    |                                |<--(17) 200 OK (PRACK)----------|
    |<--------(18) 200 OK (PRACK)----|                                |
    |                                |                                |
    |                                |                                |
    |                                |                                |
    |                                |<--(19) 200 OK (INVITE)---------|
    |<-----(20) 200 OK (INVITE)------|                                |
    |                                |                                |
    |---------------(21) ACK-------->|                                |
    |                                |-------(22) ACK RPH wps.3------>|
    |                                |                                |
 
        Figure 2: Modified session establishment using preconditions,
                  with addition of GETS AS


Gunn                  Expires May 9th, 2008                   [Page 5]

Internet-Draft   Requirements for SIP RPH in Responses   November 2007

   database. In this case it determines that the user priority 
   corresponds to wps priority level 3.
   
   The GETS AS therefore inserts an RPH with "wps.3" in the INVITE (2) 
   it sends on to B.  When B receives the INVITE with the RPH, it uses
   the "wps priority level 3" information, in addition to the 
   information in SDP1, in making the reservation at the B end.

   B then sends 183 Session Progress back to A, by way of the GETS AS. 
   In order to properly set up the reservation at the "A" end, A also 
   needs to know that it should use "wps priority level 3" in setting 
   up the reservation.  If The RPH can be included in the 183 (4)
   response sent from the GETS AS to A, then A will have the 
   information it needs. If the RPH cannot be included in the 
   response, it is not clear how A will get the "wps priority level 3"
   information. This call flow illustrates the requirement that cannot
   be met by RPH without RPH in responses. There are of course, a 
   number of other possible call flows, but the problem of conveying 
   "wps.3" to A remains.

3. Potential Solution Approaches

   Connected Identity, or other approaches using "UPDATE" have been 
   suggested as a solution to conveying the user's priority level back
   to A.

   The UPDATE method described in RFC 3311 [RFC3311] is used to modify
   a session after the initial dialog has been established, but before
   the initial INVITE has been accepted  (e.g., before the call is 
   answered).  In principle this could be used to convey the user's 
   priority level.  However the UPDATE can not be sent until after the 
   dialog is established.  In the example given, the dialog is 
   established by the 183 which contains the SDP.  So, by the time you
   could send an UPDATE, it is already too late, the reservation 
   process has begun.

   Another theoretical possibility would be to modify the SDP 
   contained in the 183. However, it is undesirable to modify a 
   separate protocol (SDP) to satisfy a SIP requirement. 

   Another would be to somehow modify the 183 to indicate that the UA 
   should "wait for an UPDATE" before beginning the reservation/
   allocation process.  However, it is counterproductive, and not 
   acceptable for this service, to introduce additional delay, and
   introduce additional error/failure conditions (what happens if the
   promised UPDATE doesn't arrive?) when the network is congested.

   The use of distinct logical ports has been suggested as a way to 
   identify the priority of a response.  While this may address some 
   of the other proposed uses of RPH in Responses, it does not 
   address this requirement, because the response use the same logical
   port as the request that triggered it.  That will only work when 


Gunn                  Expires May 9th, 2008                   [Page 6]

Internet-Draft   Requirements for SIP RPH in Responses   November 2007

   the UA sending the request already knows the priority level. 


4.  Acknowledgements

   Thanks to Keith Drage, Dean Willis, Brian Rosen, Jeroen van Bemmel,
   Henry Sinnreich, Joel Halpern, and John Elwell for useful 
   discussion on the list. Thanks to James Polk for assistance in 
   understanding the issues and presenting the requirement.
   Thanks to John Rosenburg for background discussions about the 
   importance of resolving this issue.


5.  IANA Considerations

    IANA considerations are discussed in [RPHresp].
   

6.  Security Considerations

   The Security considerations that apply to RFC 4412 [RFC4412] and 
   those discussed in [RPHresp] apply here.  

   There are legitimate security concerns about using RPH in responses
   to update the user's priority value.  There is no way to challenge 
   responses.  In an open network, it is not easy to prevent "Joe End 
   User" from arbitrarily adding an RPH with wps.0 (the highest 
   priority level) to his responses.

   First of all, the requirement described here does not apply to the
   open Internet network.  This requirement only applies to closely 
   managed networks, for which the Service Provider has contracted to 
   provide GETS service.  Solutions, never the less, must also work in
   unmanaged networks

   Secondly, while there may be other reasons for wanting RPH in 
   responses, the requirement describe here only applies to the UA 
   that is going to be reserving resources, and only when the RPH is 
   in a response coming from a pre-identified device (e.g., the GETS 
   AS), probably via a secure connection.  This UA can (and should) 
   be configured to ignore the priority level conveyed in the RPH in 
   other responses (coming from other sources, or not via a secure 
   connection) in terms of updating the user's priority level.  
   Other UAs, which do not reserve resources, can, and probably should,
   be configured to ignore the priority level in the RPH in a response
   coming from any source, over a secure or insecure connection.

   Due to the potential for fraud, SIP devices are advised to ignore 
   RPH in responses unless they are certain that the response came 
   from a trusted source from which, based on local policy, they are 
   authorized to receive such information.  The definition of trusted
   device is a matter of network policy.


Gunn                  Expires May 9th, 2008                   [Page 7]

Internet-Draft   Requirements for SIP RPH in Responses   November 2007

7.  References

7.1 Informative References

 [RFC3487] H. Schulzrinne, "Requirements for Resource Priority
           Mechanisms for the Session Initiation Protocol (SIP)", 
           RFC 3487, February 2003.

 [RFC3312] G. Camarillo, W. Marshall, J. Rosenberg, "Integration of 
           Resource Management and Session Initiation Protocol (SIP)",
           RFC 3312, October 2002

 [RFC3311] J. Rosenberg, "The Session Initiation Protocol (SIP) UPDATE
           Method," RFC 3311, September 2002.

 [RPHresp] J. Polk,"Allowing SIP Resource Priority Header in SIP 
           Responses", draft-polk-sip-rph-in-responses-00 (work in 
           Progress) , June 2007

7.2  Normative References

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

 [RFC4412] Schulzrinne, H., Polk, J., "Communications Resource 
           Priority for the Session Initiation Protocol (SIP)", RFC 
           4411, Feb 2006


Author's Addresses

    Janet Gunn
    CSC
    15000 Conference Center Drive
    Chantilly, VA 20151
    USA

    Phone: +1-703-818-4725
    Fax:   +1-703-818-5947
    Email: jgunn6@csc.com

    Tim Dwight
    Verizon
    2400 North Glenville Drive
    Richardson, TX 75082
    USA
 
    Phone: +1-972-729-5199
    Fax  : +1-972-729-5392
    Email: timothy.dwight@verizon.com




Gunn                  Expires May 9th, 2008                   [Page 8]

Internet-Draft   Requirements for SIP RPH in Responses   November 2007


    Martin Dolly
    AT&T Labs
    Middletown Township, New Jersey 07748
    USA

    Phone: +1-732-420-4574
    Email: mdolly@att.com


Full Copyright Statement

   Copyright (C) The IETF Trust (2007).

   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.

   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, THE 
   IETF TRUST 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.


Intellectual Property

   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.



Gunn                  Expires May 9th, 2008                   [Page 9]

Internet-Draft   Requirements for SIP RPH in Responses   November 2007


Acknowledgment

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).

















































Gunn                  Expires May 9th, 2008                   [Page 10]