view Side-By-Side changes
SIPNetwork Working GroupJ. Polk Internet-Draft Cisco Expires: August 21st, 2005H. Schulzrinne Internet-Draft Columbia U.February 21st,Expires: September 12, 2005 J. Polk Cisco March 14, 2005 Communications Resource Priority for the Session Initiation Protocol (SIP)draft-ietf-sip-resource-priority-06draft-ietf-sip-resource-priority-07 Status of this Memo This document is an Internet-Draft and is subject to all provisions of section 3 of RFC 3667. By submitting this Internet-Draft,I certifyeach author represents that any applicable patent or other IPR claims of whichI amhe or she is aware have been or will be disclosed, and any of whichIhe or she become aware will be disclosed, in accordance with RFC 3668. 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 asInternet- Drafts.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 athttp:// www.ietf.org/ietf/1id-abstracts.txt.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 onAugust 21st,September 12, 2005. Copyright Notice Copyright (C) The Internet Society (2005).All Rights Reserved.Abstract This document defines two new SIP header fields for communicating resource priority, namely "Resource-Priority" and"Accept-Resource- Priority"."Accept-Resource-Priority". The "Resource-Priority" header field can influence the behavior of SIP user agents, such as telephone gateways and IP telephones, and SIP proxies. It does not directly influencethe forwarding behavior of IP routers. Polk &Schulzrinne[page& Polk Expires September 12, 2005 [Page 1] Internet-Draft SIP Resource PriorityFebruary 21st,March 2005 the forwarding behavior of IP routers. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . .34 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . .57 3. The Resource-Priority and Accept-Resource-Priority SIP Header Fields . . . . . . . . . . . . . . . . . . . . . . . .67 3.1 The 'Resource-Priority' Header Field . . . . . . . . . . .67 3.2 The 'Accept-Resource-Priority' Header Field . . . . . . .78 3.3 Usage of the 'Resource-Priority' and 'Accept-Resource-Priority' Header Fields . . . . . . . . .79 3.4 The 'resource-priority' Option Tag . . . . . . . . . . . .89 4. Behavior of SIP Elements that Receive Prioritized Requests . .89 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 10 4.2 General Rules . . . . . . . . . . . . . . . . . . . . . .9 4.210 4.3 Usage of Require Header with Resource-Priority . . . . . .. 9 4.311 4.4 OPTIONS Request with Resource-Priority . . . . . . . . . .. 9 4.4 Alternatives11 4.5 Algorithms for Preferential Treatment of Requests . . . .10 4.4.111 4.5.1 PreemptionPolicy. . . . . . . . . . . . . . . . . . .10 4.4.2. . . 12 4.5.2 PriorityQueuing PolicyQueueing . . . . . . . . . . . . . . . .10 4.5 Rejection Messages. . 12 4.6 Error Conditions . . . . . . . . . . . . . . . . . . . .11 4.6 Error Conditions. 13 4.6.1 Introduction . . . . . . . . . . . . . . . . . . . . .12 4.6.113 4.6.2 No Known Namespaceandor Priority Value . . . . . . . . . 13 4.6.3 Authentication Failure .12 4.6.2 Handling Unknown Namespaces and Priority Values. . .12 4.7 User Agent Client Behavior. . . . . . . . . . . . 14 4.6.4 Authorization Failure . . . .13 4.7.1 User Agent Client Behavior with a Preemption Policy. .13 4.7.2 User Agent Client Behavior with a Priority Queue Policy 13 4.8 User Agent Server Behavior. . . . . . . . . . 14 4.6.5 Insufficient Resources . . . . . .13 4.8.1 User Agent Servers and Preemption Policy. . . . . . . .14 4.8.1 User Agent Servers and Priority-Queue Policy. . 14 4.6.6 Busy . . . .14 4.9 Proxy Behavior. . . . . . . . . . . . . . . . . . . . . 15 4.7 Element-Specific Behaviors .14 5. Third-Party Authentication. . . . . . . . . . . . . . . 15 4.7.1 User Agent Client Behavior . . .15 6. Backwards Compatibility. . . . . . . . . . . 15 4.7.2 User Agent Server Behavior . . . . . . . .15 7. Multiple Namespaces in a Message. . . . . . 16 4.7.3 Proxy Behavior . . . . . . . .16 8. Namespace Definitions. . . . . . . . . . . . 17 5. Third-Party Authentication . . . . . . . .18 8.1 Namespace Descriptions .. . . . . . . . . . 17 6. Backwards Compatibility . . . . . . . .18 8.1.1 The "DSN" Namespace. . . . . . . . . . . 18 7. Examples . . . . . . .18 8.1.2 The "DRSN" Namespace. . . . . . . . . . . . . . . . . .19 8.1.3 The "Q735" Namespace. . 18 7.1 Simple Call . . . . . . . . . . . . . . . .20 8.1.4 The "ETS" Namespace. . . . . . . 18 7.2 Receiver Does Not Understand Namespace . . . . . . . . . . 19 8. Handling Multiple Concurrent Namespaces .20 8.1.5 The "WPS" Namespace. . . . . . . . . . 21 8.1 General Rules . . . . . . . .22 8.2 Future Namespace Considerations. . . . . . . . . . . . . .24 9.21 8.2 Examples of Valid Orderings . . . . . . . . . . . . . . . 22 8.3 Examples of Invalid Orderings . . . . . . . . . . . .25 9.1 Simple Call .. . 22 9. Registering Namespaces . . . . . . . . . . . . . . . . . . . .25 9.2 Receiver Does Not Understand23 10. Namespace Definitions . . . . . . . . . .26 10. Security Considerations. . . . . . . . . 24 10.1 Introduction . . . . . . . . . .28 10.1 Authentication and Authorization. . . . . . . . . . . . .2924 10.2Confidentiality and IntegrityThe "DSN" Namespace . . . . . . . . . . . . . .30 10.3 Anonymity. . . . . 24 10.3 The "DRSN" Namespace . . . . . . . . . . . . . . . . . . .3125 10.4Denial-of-Service AttacksThe "Q735" Namespace . . . . . . . . . . . . . . . .31 11. IANA Considerations. . . 25 10.5 The "ETS" Namespace . . . . . . . . . . . . . . . . . .31 11.1 IANA Registration of 'Resource-Priority' and 'Accept-Resource-Priority' Header Fields. 26 Schulzrinne & Polk Expires September 12, 2005 [Page 2] Internet-Draft SIP Resource Priority March 2005 10.6 The "WPS" Namespace . . . . . . . . .32 11.2 IANA Registration for Option Tag resource-priority. . . .32 Polk & Schulzrinne [page 2] Internet-Draft SIP Resource Priority February 21st, 2005 11.3 IANA Registration for Response Code 417. . . . . . 26 11. Security Considerations . . .32 11.4 IANA Namespace Registrations. . . . . . . . . . . . . . .32 11.5 IANA Priority-Value Registrations27 11.1 General Remarks . . . . . . . . . . . .33 12. Acknowledgments. . . . . . . . . 27 11.2 Authentication and Authorization . . . . . . . . . . . . . 27 11.3 Confidentiality and Integrity .33 13. References. . . . . . . . . . . . . 28 11.4 Anonymity . . . . . . . . . . . . .34 13.1 Normative References. . . . . . . . . . . 29 11.5 Denial-of-Service Attacks . . . . . . . .34 13.2 Informative References. . . . . . . . 29 12. IANA Considerations . . . . . . . . . .35 Authors' Addresses. . . . . . . . . . 29 12.1 Introduction . . . . . . . . . . . .36 Intellectual Property and Copyright Statements. . . . . . . .36 1. Introduction During emergencies, communications resources including telephone circuits, IP bandwidth and gateways between the circuit-switched. . . 29 12.2 IANA Registration of 'Resource-Priority' andIP networks may become congested. Congestion can occur due to heavy'Accept-Resource-Priority' Header Fields . . . . . . . . . 30 12.3 IANA Registration for Option Tag resource-priority . . . 30 12.4 IANA Registration for Response Code 417 . . . . . . . . . 31 12.5 IANA Resource-Priority Namespace Registration . . . . . . 31 12.6 IANA Priority-Value Registrations . . . . . . . . . . . . 31 13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 32 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 32 14.1 Normative References . . . . . . . . . . . . . . . . . . . . 32 14.2 Informative References . . . . . . . . . . . . . . . . . . . 33 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 35 Intellectual Property and Copyright Statements . . . . . . . . 36 Schulzrinne & Polk Expires September 12, 2005 [Page 3] Internet-Draft SIP Resource Priority March 2005 1. Introduction During emergencies, communications resources including telephone circuits, IP bandwidth and gateways between the circuit-switched and IP networks may become congested. Congestion can occur due to heavy usage, loss of resources caused by the natural or man-made disaster and attacks on the network during man-made emergencies. This congestion may make it difficult for persons charged with emergency assistance, recovery or law enforcement to coordinate their efforts. As IP networks become part of converged or hybrid networks along with public and private circuit-switched (telephone) networks, it becomes necessary to ensure that these networks can assist during such emergencies. Also, users may want to interrupt their lower-priority communications activities and dedicate their end system resources to the high-priority communications attempt if a high-priority communications request arrives at their end system. There are many IP-based services that can assist during emergencies. This memo only covers real-time communications applications involving the Session Initiation Protocol (SIP) [RFC3261], including voice-over-IP, multimedia conferencing, instant messaging and presence. SIP applications may involve at least five different resources that may become scarce and congested during emergencies. These resources include gateway resources, circuit-switched network resources, IP network resources, receiving end system resources and SIP proxy resources. IP network resources are beyond the scope of SIP signaling and are therefore not considered here. In order to improve emergency response, it may become necessary to prioritize access to SIP-signaled resources during periods of emergency-induced resource scarcity. We call this "resource prioritization". The mechanism itself may well be in place at all times, but only materially affect call handling during times of resource scarcity. Currently, SIP does not include a mechanism that allows a request originator to indicate to a SIP element that it wishes the request toPolk & Schulzrinne [page 3] Internet-Draft SIP Resource Priority February 21st, 2005invoke such resource prioritization. To address this need, this document adds a SIP protocol element that labels certain SIP requests. This document defines (Section 3) a new SIP[RFC3261]header field for communications resource priority, called'Resource-Priority''Resource-Priority'. This header field MAY be used by SIP user agents, including GeneralSwitched TelephoneSchulzrinne & Polk Expires September 12, 2005 [Page 4] Internet-Draft SIP Resource Priority March 2005 Switched Telephone Network (GSTN) gateways and terminals, and SIP proxy servers to influence their treatment of SIP requests, including the priority afforded to GSTN calls. For GSTN gateways, the behavior translates into analogous schemes in the GSTN, for example the ITU Recommendation Q.735.3 [Q.735.3] prioritization mechanism, in both the GSTN-to-IP and IP-to-GSTN directions. ITU Recommendation I.255.3 [I.255.3] is another example.The 'Resource-Priority' header field may be used in several situations.A SIP request withsuch ana 'Resource-Priority' indication can be treated differently in these situations: 1. The request can be given elevated priority for access to GSTN gateway resources such as trunk circuits. 2. The request can interrupt lower-priority requests at a user terminal, such as an IP phone. 3. The request can carry information from one multi-level priority domain in the telephone network, e.g., using the facilities of Q.735.3 [Q.735.3], to another, without the SIP proxies themselves inspecting or modifying the header field. 4. In SIP proxies and back-to-back user agents, requests of higher priorities maydelay, reject or errordisplace existing signaling requestsofor bypass GSTN gateway capacity limits in effect for lower priorities. This header field is related to, but differs in semantics from, the 'Priority' header field(RFC 3261 [RFC3261],([RFC3261], Section 20.26). The 'Priority' header field describes the importance that the SIP request should have to the receiving human or its agent. For example, that header may be factored into decisions about call routing to mobile devices and assistants and call acceptance when the call destination is busy. The 'Priority' header field does not affect the usage of GSTN gateway or proxy resources, for example. In addition, any User Agent Client (UAC) can assert any 'Priority' value, whileaccess to resource priorityusage of 'Resource-Priority' header field valuesareis subject to authorization. While the 'Resource-Priority' header field does not directly influence the forwarding behavior of IP routers or the use of communications resources such as packet forwarding priority, procedures for using this header field to cause such influence may be defined in other documents. Existing implementations of RFC 3261 that do not participate in thePolk & Schulzrinne [page 4] Internet-Draft SIP Resource Priority February 21st, 2005resource priority mechanism follow the normal rules of RFC 3261, Section 8.2.2: "If a UAS does not understand a header field in a request (that is, the header field is not defined in this specification or in any supported extension), the server MUST ignore that header field and continue processing the message." Thus, the use of this mechanism is wholly invisible to existing implementations unless the request includes the Require header field with the Schulzrinne & Polk Expires September 12, 2005 [Page 5] Internet-Draft SIP Resource Priority March 2005 resource-priority option tag. The mechanism described here can be used for emergency preparedness in emergency telecommunications systems, but is only a small part of an emergency preparedness network and is not restricted to such use. The mechanism aims to satisfy the requirements in [RFC3487]. It is structured so that it works in all SIP and Real-Time Transport Protocol (RTP) [RFC3550] transparent networks defined in [RFC3487]. In such networks, all network elements and SIP proxies let valid SIP requests pass through unchanged. This is important since it is likely that this mechanism will often be deployed in networks where the edge networks are unaware of the resource priority mechanism and provide no special privileges to such requests. The request then reaches a GSTN gateway or set of SIP elements that are aware of the mechanism. For conciseness, we refer to SIP proxies and user agents (UAs) that act on the 'Resource-Priority' header field as RP actors. Government entities and standardization bodies have developed several different priority levels for their networks. Users would like to be able to obtain authorized priority handling in several of these networks, without changing SIP clients. Also, a single call may traverse SIP elements that are run by different administrations and subject to different priority mechanisms. Since there is no global ordering among those priorities, we allow each request to contain more than one priority value drawn from these different priority lists, called a namespace in this document. Typically, each SIP element only supports one such namespace, but we discuss what happens if an element needs to support multiple namespaces in Section 8. Since gaining prioritized access to resources offers opportunities to deny service to others, it is expected that all such prioritized calls are subject to authentication and authorization, using standard SIP security mechanisms (Section 11). The remainder of this document is structured as follows. After defining terminology in Section 2, we define the syntax for the two new SIP header fields in Section 3 and then describe protocol behavior in Section 4. The two principal mechanisms for differentiated treatment of SIP requests, namely preemption and queuing, are described in Section4.4. Rejection messages4.5. Error conditions are covered in Section4.5, error conditions in Section4.6. Section4.74.7.1 through Section4.94.7.3 detail the behavior of specific SIP elements. Third-party authentication is briefly summarized in Section 5. Section 6 describes how this feature affects existing systems that do not support it.Sections 7 and 8 delve into namespace issue, namely their general properties, how to deal withSchulzrinne & Polk Expires September 12, 2005 [Page 6] Internet-Draft SIP Resource Priority March 2005 Since calls may traverse multiple administrative domains with different namespacesonor multiple elements with the sameSIP element and innamespace, it is important that all such domains and elements apply the sameSIP message, as wellalgorithms for the same namespace asenumeratingotherwise the end-to-end experience of privileged users may be compromised. For example, if one element in the call path chooses to use preemption, while another chooses queueing, calls may experience inconsistent service. Section 9 enumerates the information that namespace registrations need to provide. Section 8 discusses what happens if a request contains multiple namespaces or an element can handle more than one namespace. Section 10 defines the properties of five namespaces that are registered through this document. Protocol examples are given in Section9.7. Security issues are considered in Section10,11, but this document does not define new security mechanisms. Section 12 discusses IANA considerations and registers parameters related to this document. 2. Terminology In this document, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119 [RFC2119] and indicate requirement levels for compliantPolk & Schulzrinne [page 5] Internet-Draft SIP Resource Priority February 21st, 2005implementations. 3. The Resource-Priority and Accept-Resource-Priority SIP Header Fields Thisdocumentsection defines the 'Resource-Priority' and 'Accept-Resource-Priority' SIP header field syntax. Behavior is described in Section4.. The SIP element behavior is described for user agent clients (UACs) in Section 4.7, for UAS in Section 4.8 and for SIP proxy servers in Section 4.9.4. 3.1 The 'Resource-Priority' Header Field The 'Resource-Priority' request header field marks a SIP request as desiring prioritized access to resource, as described in the introduction.In responses, the 'Resource-Priority' header fields indicates the actual resource priority that was granted to the request. While it is likely those responses contain the same 'Resource-Priority' header field value as the requests, local policy MAY call for the UAS to insert no header field or a different value.There is no protocol requirement that all requests within a SIP dialog or session use the 'Resource-Priority' header field. Local administrative policy MAY mandate the inclusion of the'Resource- Priority''Resource-Priority' header field in all requests. Implementations of this specification MUST allow inclusion to be either by explicit user request orautomatic.automatically for all requests. The syntax of the 'Resource-Priority' header field is described below. The "token-nodot" production is copied from [RFC3265]. Schulzrinne & Polk Expires September 12, 2005 [Page 7] Internet-Draft SIP Resource Priority March 2005 Resource-Priority = "Resource-Priority" HCOLON r-value *(COMMA r-value) r-value = namespace "." r-priority namespace = token-nodot r-priority = token-nodot token-nodot = 1*( alphanum / "-" / "!" / "%" / "*" / "_" / "+" / "`" / "'" / "~" ) An example 'Resource-Priority' header field is shown below: Resource-Priority: dsn.flash The'Resource-value''r-value' parameter in the 'Resource-Priority' header field indicates the resource priority desired by the request originator. Each resource value (r-value) is formatted as 'namespace' '.' 'priority value'. The value is drawn from the namespace identified by the 'namespace' token. Namespaces and priorities are case-insensitive ASCII tokens that do not contain periods. Thus,ædsn.flashÆ"dsn.flash" andPolk & Schulzrinne [page 6] Internet-Draft SIP Resource Priority February 21st, 2005 æDSN.FlashÆ,"DSN.Flash", for example, are equivalent. Each namespace has at least one priority value. Namespaces and priority values within each namespace MUST be registered with IANA (Section11).12). Initial namespace registrations are described in Section11.4.12.5. Since a request may traverse multiple administrative domains with multiple different namespaces, it is necessary to be able to enumerate several different namespaces within the same message. However, a particular namespace MUST NOT appear more than once in the same SIP message. These may be expressed equivalently as either comma-separated lists within a single header field, as multiple header fields or some combination. The ordering ofr-values'r-values' within the header field has no significance. Thus, for example, the following three header snippets are equivalent: Resource-Priority: dsn.flash, wps.3 Resource-Priority: wps.3, dsn.flash Resource-Priority: wps.3 Resource-Priority: dsn.flash 3.2 The 'Accept-Resource-Priority' Header Field The 'Accept-Resource-Priority' response header field enumerates the resource values (r-values) a SIP user agent server is willing to accept. The syntax of the 'Accept-Resource-Priority' header field is as follows: Schulzrinne & Polk Expires September 12, 2005 [Page 8] Internet-Draft SIP Resource Priority March 2005 Accept-Resource-Priority = "Accept-Resource-Priority" HCOLON [r-value *(COMMA r-value)] An example is given below: Accept-Resource-Priority: dsn.flash-override, dsn.flash, dsn.immediate, dsn.priority, dsn.routine Some administrative domains MAY choose to disable the use of theAccept-Resource-Priority'Accept-Resource-Priority' header as revealing too much information about that domain in responses. However, this behavior is NOT RECOMMENDED, as this header field aids in troubleshooting. 3.3 Usage of the 'Resource-Priority' and 'Accept-Resource-Priority' Header Fields The following table extends the values in Table 2 of RFC3261 [RFC3261]. (The PRACK method, labeled as PRA, is defined in [RFC3262], the SUBSCRIBE (labeled SUB) and NOTIFY (labeled NOT) methods in [RFC3265], the UPDATE (UPD) method in [RFC3311], the MESSAGE (MSG) method in [RFC3428], the REFER (REF) method inPolk & Schulzrinne [page 7] Internet-Draft SIP Resource Priority February 21st, 2005[RFC3515], the INFO (INF) method in [RFC2976], and the PUBLISH (PUB) method is in [RFC3903].) Header field where proxy INV ACK CAN BYE REG OPT PRA ---------------------------------------------------------------- Resource-Priority R amdr o o o o o o oResource-Priority r amdr o o o o o o o Resource-Priority 200 amdr o - o o o o oAccept-Resource-Priority 200 amdr o - o o o o o Accept-Resource-Priority 417 amdr o - o o o o oAccept-Resource-Priority 420 amdr o - o o o o oHeader field where proxy SUB NOT UPD MSG REF INF PUB ---------------------------------------------------------------- Resource-Priority R amdr o o o o o o oResource-Priority r amdr o o o o o o o Resource-Priority 200 amdr o o o o o o oAccept-Resource-Priority 200 amdr o o o o o o o Accept-Resource-Priority 417 amdr o o o o o o oAccept-Resource-Priority 420 amdr o o o o o o oOther request methods MAY define their own handling rules; unless otherwise specified, recipients MAY ignore these header fields.The 'Accept-Resource-Priority' SHOULD be returned in 420 (Bad Extension) responses marked as 'o' in table above if the element implements the resource priority mechanism with some other namespaces or priority values, but does not implement the particular namespace or priority value contained in this current request.3.4 The 'resource-priority' Option Tag This document also defines the "resource-priority" option tag. The behavior is described in Section4.2.4.3. and the IANA registration is in Section11.2.12.3. 4. Behavior of SIP Elements that Receive Prioritized Requests Schulzrinne & Polk Expires September 12, 2005 [Page 9] Internet-Draft SIP Resource Priority March 2005 4.1 Introduction All SIP user agents and proxy servers that support this specification share certain common behavior, which we describe below in Section4.1.4.2. The behavior when encountering a'resource- priority''resource-priority' option tag in a 'Require' header field is describe in Section4.2.4.3. Section4.34.4 describes the treatment of OPTIONS requests. The two fundamental resource contention resolution mechanisms, preemption andqueuing,queueing, are described in Section4.4. Rejection4.5. Section 4.6 explains what happens when requests fail. Behavior specific to user agentclients is covered in section 4.7, for user agentclients, servers and proxy servers are covered in Section4.8, while Section 4.9 deals with proxy behavior. Polk & Schulzrinne [page 8] Internet-Draft SIP Resource Priority February 21st, 2005 4.14.7. 4.2 General Rules TheResource-Priority'Resource-Priority' header field is potentially applicable to all SIP request messages. At a minimum, implementations of the following request types MUST support the Resource-Priority header to be in compliance with this specification:1)o INVITE [RFC3261]2)o ACK [RFC3261]3)o PRACK [RFC3262]4)o UPDATE [RFC3311]5)o REFER [RFC3515]andImplementations SHOULD support theResource-Priority'Resource-Priority' header field in the following requesttypes (if the SIP element does) to be in compliance with this specification: 6)types: o MESSAGE [RFC3428]7)o SUBSCRIBE [RFC3265]8)o NOTIFY [RFC3265] Note that this does not imply that all implementations have to supportevery request methodall requests methods listed. If a SIP element receives theResource-Priority'Resource-Priority' header field in aRequest messagerequest other thanwhat isthose listed above, the header MAY be ignored, according to thefoundationalrules of [RFC3261].4.2 Usage of Require Header with Resource-Priority Following standard SIP behavior,In short, an RP actor performs the following steps when receiving a prioritized request. Error behavior is described in Section 4.6. 1. Determine if system resources are currently sufficiently scarce that an unprioritized requesst would be denied immediate handling. If not, treat the request like a regular SIP requestcontainsand skip theRequire header field withremaining steps. If there are no namespaces recognized by theæresource-priorityÆ option tag, a SIP element MUST respond with a 420 (Bad Extension)RP actor, treat the request as if itdoes not support the SIP extensions described in this document.had no 'Resource-Priority' header field. Schulzrinne & Polk Expires September 12, 2005 [Page 10] Internet-Draft SIP Resource Priority March 2005 2. If the request does not contain appropriate credentials, request such credentials, e.g., by challenging the user using Digest authentication. 3. If the request is authenticated, select a resource priority value with a namespace supported by the RP actor and determine if the user is authorized to access that level. If not, reject the request. 4. If the request is authorized, preempt other current requests or insert the request into a priority queue, as described in Section 4.5. 4.3 Usage of Require Header with Resource-Priority Following standard SIP behavior, if a SIP request contains the 'Require' header field with the 'resource-priority' option tag, a SIP element MUST respond with a 420 (Bad Extension) if it does not support the SIP extensions described in this document. It then listsæresource-priorityÆ"resource-priority" in theæUnsupportedÆ'Unsupported' header field included in the response. The use of the 'resource-priority' option tag in 'Proxy-Require' header field is NOT RECOMMENDED.4.34.4 OPTIONS Request with Resource-Priority An OPTIONS request can be used to determine if an element supports the mechanism. A compliant implementation MUST return a 'Accept-Resource-Priority' header field in OPTIONS responses enumerating all valid resource values. An RP actor MAY be configured not to return such values or only return them to authorized requestors.NoteFollowing standard SIP behavior, OPTIONS responses MUST include the 'Supported' header field thataccordingincludes the 'resource-priority' option tag. According to RFC 3261, Section 11, proxiesreachedthat receive a request with aMax-Forwards Polk & Schulzrinne [page 9] Internet-Draft SIP Resource Priority February 21st, 2005'Max-Forwards' header field value of zero MAY answer the OPTIONS request, allowing a UAC to discover the capabilities of both proxy and user agent servers.4.4 Alternatives4.5 Algorithms for Preferential Treatment of Requests SIP elements may use the resource priority mechanism to modify a variety of behavior such as routing requests, authentication requirements or logging. The resource priority mechanism may influence the treatment of the request itself or of the session created by the request.We(Here, we use the terms session and call Schulzrinne & Polk Expires September 12, 2005 [Page 11] Internet-Draft SIP Resource Priority March 2005 interchangeably in this document, both implying a continuous data stream between two or more parties. Sessions are established by SIPdialogs.dialogs.) Below, we define two commonpolicies,algorithms, namely preemption and priorityqueuing.queueing. Preemption applies only to sessions created by SIP requests, while both sessions and request handling can be subject to priorityqueuing.queueing. Bothpoliciesalgorithms can sometimes be combined in the same element, although none of the namespaces described in this document do this.PoliciesAlgorithms can be defined for each namespace or, in some cases, can be specific to an administrative domain. Naturally, only SIP elements that understand this mechanism and the namespace and resource value perform thesepolicies.algorithms. Section4.84.6.2 discusses what happens if an RP actor does not understandnamespaces orpriority values contained in a request.4.4.14.5.1 PreemptionPolicyAn RP actor following a preemption policy may disrupt an existing session to make room for a higher-priority incoming session. Since sessions may require different amounts of bandwidth or number of circuits, a single higher priority session may displace more than one lower-priority session. Unless otherwise noted, requests do not preempt other requests of equal priority. As noted above, the processing of SIP requests itself is not preempted. Thus, since proxies do not manage sessions, they do not perform preemption. [I-D.ietf-sipping-reason-header-for-preemption]forcontains more details and examples of this behavior. UAS behavior for preemption is discussed in Section4.8. 4.4.24.7.2. 4.5.2 PriorityQueuing PolicyQueueing In a priorityqueuingqueueing policy, requests that find no available resources are queuedon a first-come, first-served basisto the queue assigned to the priority value. Unless otherwise specified, requests are queued in first-come, first-served order. Each priority value may have its own queue or several priority values may share a single queue. If a resource becomes available,athe RP actor selects the request from the highest-priority non-empty queuewithaccording to thehighest priority is served. Eachqueuecan hold a finite number of Polk & Schulzrinne [page 10] Internet-Draft SIP Resource Priority February 21st, 2005service policy. For first-come, first-served policies, the request from that queue that has been waiting the longest is served. Each queue can hold a finite number of pending requests. If the queue for a newly arriving request is full, the request is rejected immediately. In addition, a priorityqueuingqueueing policy MAY impose aresidencewaiting timelimit. If a request exceedslimit for each priority class, where requests that exceed a specified Schulzrinne & Polk Expires September 12, 2005 [Page 12] Internet-Draft SIP Resource Priority March 2005 waitingtime, the RP actor then rejectstime are ejected from therequestqueue andremoves it froma failure response is returned to thequeue.requestor. In addition, an RP actor MAY impose a global queue size limit summed across all queues and drop waiting lower-priority requests. This does not imply preemption since the session has not been established yet.Often, normal, non-prioritized requests will not be queued, i.e.,4.6 Error Conditions 4.6.1 Introduction In this section, we describe thequeue size for such requests is zero. 4.5 Rejection Messages The following is a list of rejections to SIP messageserror behavior thatcontain a Resource-Priority header specifically becauseis shared among multiple types ofthe contentsRP actors, including various instances ofthe header. If a UA is currently occupied with another sessionUAS such as trunk gateways, line gateways andreceives a dialog generating messageIP phones, and proxies. A request containing avalid Resource-Priority header of equal or lower relativeresource priorityvalue,indication can fail for four reasons: theresponseRP actor does not understand the priority value (Section 4.6.2), the requestor is not authenticated (Section 4.6.3), an authenticated requestor is not authorized to make such a request (Section 4.6.4) or there are insufficient resources for an authorized request (Section 4.6.5). We treat these error cases in thesame as statedorder that they typically arise insection 13.3.1.3the processing of[RFC3261]: - a 486 (Busy Here)requests with Resource-Priority headers. However, this order isreturned if the UASnot mandated. For example, an RP actor that knowsitthat a particular resource value cannot be served orwill not accept the request, -queued MAY, as a600 (Busy Everywhere) is returned ifmatter of local policy, forego authorization since it would only add processing load without changing theUAS knows there are no other SIP elements that can acceptoutcome. 4.6.2 No Known Namespace or Priority Value If an RP actor does not understand any of theINVITE, and - a 488 (Not Acceptable Here) ifresource values in theUAS is rejectingrequest, theINVITE. [RFC3261] advises that a 488 response SHOULD include a warningtreatment depends on the presence of the 'Require' 'resource-priority' option tag: 1. Without the option tag, the RP actor treats the request as if it contained no 'Resource-Priority' header field and processes it witha reason for the rejection. Ifdefault priority. 2. With themessage fromoption tag, it MUST reject theUAC containsrequest with aknown namespace, and417 (Unknown Resource-Priority) response code. Making case (1) thepriority-value is higher than is authorized, this error conditiondefault isaddressednecessary since otherwise there would be no way to successfully complete any calls in thenext subsection (4.6). In thecasein whichwhere a proxy on the way to the UASis currently occupiedshares no common namespaces withanother session and receives an INVITE containing a valid Resource-Priority header of higher relative priority than that ofthecurrent dialog, this does not create an error condition. The UAS will act according toUAC, but thebehaviors defined for thatUAC and UAS do have such a namespacewithin that administrative domain. Section 8.1.1 through 8.1.5 define the rules forin common. If a resource value is understood, the5 namespacesresource values that arecreated with this document. It can alsonot understood MUST NOT bestated that ifmodified, deleted or cause aProxy Server is currently experiencing processing difficulties (perhaps due to overload conditions), this is an error condition that will be addressed in Polk &rejection of the Schulzrinne[page 11]& Polk Expires September 12, 2005 [Page 13] Internet-Draft SIP Resource PriorityFebruary 21st,March 2005section 4.6.1. 4.6 Error Conditions 4.6.1 Known Namespace and Priority Value Two error conditionsmessage. In general, as noted, a SIP request canoccurcontain more than one 'Resource-Priority' header field. This is necessary if a requestreaches an element that supportsneeds to traverse different administrative domains, each with their own set of valid resource values. For example, the ETS namespaceand resource priority. Elements receiving requests with namespaces or priority valuesmight be enabled for United States government networks thatthey do not understand actalso support the DSN and/or DRSN namespaces for most individuals in those domains. A 417 (Unknown Resource-Priority) response MAY, according to local policy, include an 'Accept-Resource-Priority' header field enumerating therules inacceptable resource values. 4.6.3 Authentication Failure If thenext section. Insufficient authorization:request is not authenticated, a 401 (Unauthorized) or 407 (Proxy Authentication Required) response is returned to allow the requestor to insert appropriate credentials. 4.6.4 Authorization Failure If theelementRP actor receivesaan authenticated request with a namespace and priority value it recognizes, but the originator is not authorized for that level of service, the element MUST return a 403 (Forbidden) response. 4.6.5 Insufficient Resources Insufficientresources:resource conditions can occur on proxy servers and user agent servers, typically trunk gateways. Ifthere arean RP actor receives an authorized request, has insufficient resourcesat an element for a given priority, a request might be delayed or refused, depending on local policy or the definition ofand thenamespace. If itrequest neither preempts another request nor isrefused,queued. A request can fail either because theelement returns a 503 (Service Unavailable) response. The response MAY also include a 'Warning' header with warning code 370 (Insufficient Bandwidth) ifRP actor has insufficient processing capacity to handle the SIP requestfailed due toor insufficient bandwidth or trunk capacity to establish the requested session for session-creating SIP requests. If themedia streams, rather than insufficient signaling capacity. The 503 (Service Unavailable) response provides sufficient indication torequest fails since theoriginator to re-attemptRP actor cannot handle the signaling load, the RP actor responds witha higher appropriate resource priority503 (Service Unavailable). If there is not enough bandwidth orif no Resource-Priority header was present inan insufficient number of trunks, a 488 (Not Acceptable Here) response indicates that the RP actor is rejecting theoriginalrequest(which may be local policy not to include onefornormal level calls), to addreasons of media path availability, such as insufficient gateway resources. In that case, [RFC3261] advises that aresource priority indication, if authorized. 4.6.2 Handling Unknown Namespaces and Priority Values When handling requests with unknown namespaces or priority values, elements will operate according to local policy. Some administrative domains will openly reject with488 response SHOULD include a417 (Unknown Resource-Priority) Response message regardless of whether the namespace or'Warning' header field(or both) are not known, giving no further details to the requestor. Other administrative domains will return 417 (Unknown Resource-Priority) Responsewithan Accept-Resource- Priority header indicating which valid namespace(s) and priority- value(s) are "good" within that domain. As previously stated, a single SIP message can have more than one Resource-Priority header. If one header is understood, the remaining Resource-Priority headers SHOULD NOT be modified, deleted or causearejection of the message. Thereason forthis is that there will be cases where multiple namespaces will be necessary for end-to-end communications. Allowing multiple instances of the header in the same message allowsthemessage to traverse multiple administrative domains - without Polk &rejection, with warning code 370 (Insufficient Bandwidth) typical. Schulzrinne[page 12]& Polk Expires September 12, 2005 [Page 14] Internet-Draft SIP Resource PriorityFebruary 21st,March 2005each having to know about the policy ofFor systems implementing queueing, if theother(s) - all while providing a valid resource-Priority per administrative domain. An example of thisrequest is queued, thecase where the ETS namespaceUAS willbe enabled byreturn 408 (Request Timeout) if theUS Government networks (used by very few individuals within that administrative domain) that also supportrequest exceeds theDSN and/or DRSN namespaces for most (if not all) individualsmaximum configured waiting time inthose domains. These namespacesqueue. If the originator did not include a 'Resource-Priority' header field, these error responses willbe defined later in this document. Some SIP elements MAY allow process messagesprovide the necessary indication to do so. (In some administrative domains, requests withunknown Resource- Priority headers without returningnormal priority will not include the 'Resource-Priority' header field.) In addition, if authorized, the requestor may also attempt to use a417. Thishigher resource priority value. 4.6.6 Busy Resource contention also occurs when a call request arrives at a UAS that is unable to accept another call, either because the UAS has just one line presence or has active calls on all line presences. If the call request indicates an equal or lower priority value compared to all active calls present on the UAS, the UAS returns a 486 (Busy here) response. If the request is queued instead, the UAS will return 408 (Request Timeout) if the request exceeds the maximum configured waiting time in the device queue. If amatter of local policy.proxy gets 486 (Busy Here) responses on all branches, it can then return a 600 (Busy Everywhere) response to the caller. 4.7 Element-Specific Behaviors 4.7.1 User Agent Client Behavior SIP UACs supporting this specification MUST be able to generate the 'Resource-Priority' header field for requests that require elevated resource access priority. As stated previously, the UAC SHOULD be able to generate more than one resource value in a single SIP request.IfUpon receiving a 417 (Unknown Resource-Priority)is received,response, the UAC MAY attempt a subsequent request with the samecombination of namespace/priority-value,orthe retry the request with adifferentset of namespace/priority combinations, drawingresource value. If available, it SHOULD choose authorized resource values from the set of values returnedbyin the 'Accept-Resource-Priority' headerfield in the response, if included, and if authorized for that user. 4.7.1field. 4.7.1.1 User Agent Client Behavior with a PreemptionPolicyAlgorithm A UAC in an administrative domain that employs preemption MUST be prepared to receive a BYERequestrequest with a Reason header explaining why the session wasterminated. [I-D.ietf-sipping-reason-header-for-preemption] discusses this. 4.7.2 User Agent Client Behavior with a Priority Queueterminated, as discussed in Schulzrinne & Polk Expires September 12, 2005 [Page 15] Internet-Draft SIP Resource Priority March 2005 [I-D.ietf-sipping-reason-header-for-preemption]. 4.7.1.2 User Agent Client Behavior with a Queueing Policy By standard SIP protocol rules, a UAC MUST be prepared to receive a 182 (Queued) response from an RP actor that is currently at capacity, but has put the original request into a queue.ThisA UACSHOULDMAY indicate this queued status to the user by some audio or visual indication to prevent the user from interpreting the call as having failed.4.84.7.2 User Agent Server Behavior The precise effect of the 'Resource-Priority' indication depends on the type of UAS, the namespace and local policy.Polk & Schulzrinne [page 13] Internet-Draft SIP Resource Priority February 21st, 2005 4.8.14.7.2.1 User Agent Servers and PreemptionPolicyAlgorithm A UAS compliant with this specification MUST terminate a session established with a valid namespace and lower priority value in favor of a new session set-up with a valid namespace and higher relative priority-value, unless local policy has some form of call-waiting capability enabled. If a session is terminated, the BYE method is used with aReason'Reason' header field indicatingwhy/wherewhy and where the preemption took place. Implementors have a number of choices in how to implement preemption at IP phones with multiple line presences, i.e., with devices that can handle multiple simultaneous sessions. Naturally, if that device has exhausted the number of simultaneous sessions, one of the sessions needs to be replaced. If the device has spare sessions, an implementation MAY choose to alert the callee to the arrival of a higher-priority call. Details may also be set by local or namespace policy. [I-D.ietf-sipping-reason-header-for-preemption] provides additional information in the case of purposeful or administrative termination of a session by including the Reason header in the BYE message that states why the BYE was sent (in this case, a preemption event).ThatThe mechanisms in that documentoffers several reasons forallow to indicate where the termination occurred ('at the UA', 'in the network', 'at a IP/PSTN gateway'), and includes call flow examples of each reason.4.8.24.7.2.2 User Agent Servers andPriority-QueueQueue-based Policy A UAS compliant with this specification SHOULD generate a 182 (Queued)Responseresponse if that element's resources are busy, until it is able to handle the request and provide a final response. Schulzrinne & Polk Expires September 12, 2005 [Page 16] Internet-Draft SIP Resource Priority March 2005 Local policy will determine additional behaviors of a queue-based SIP element. However, the frequency of provisional messages indicated in [RFC3261] still need to apply to keep each sessionset- upset-up active until successful or rejected.4.94.7.3 Proxy Behavior SIP proxies MAY ignoreor inspectthe 'Resource-Priority' header field. SIP proxies MAY reject any unauthenticated request bearingthethat header field.A compliant SIP Server experiencing a processing queue due to excessive load MUST process messages containing higher relative priority-values up to the queueWhen the 'Require' headerindicates on a FIFO basis based on the arrival time of the message. It is conceivable that priority-levels within a proxy are grouped to include more than one level per queue. Thisis included in amatter of local policy.message, it ensures that in parallel forking, only branches that support the resource-priority mechanism succeed. Ifa ProxyS/MIME encapsulation isexpecting a messageused according tohave aSection 23 of RFC 3261, special considerations apply. As tabulated in Section 3.3, the 'Resource-Priority' header field can be modified by proxies andthe headerthus isprotected via S/MIME encapsulation in a SIP message fragment [RFC3420], the Proxy MUST return an error response. Therefore,exempted by theuse of SIPFRAGintegrity checking described inadministrative domains with this typeSection 23.4.1.1 ofpolicy is not recommended.RFC 3261. Since it may need to be inspected or modified by proxies, the header field SHOULD also be placed in the "outer" message. Similar considerations apply if parts of the message are integrity-protected or encrypted as described in [RFC3420]. IfnoS/MIME isused,not used or if the 'Resource-Priority' header field is in the "outer" header, SIP proxies MAY downgrade or upgrade the 'Resource-Priority' of a request or insert a new 'Resource-Priority'Polk & Schulzrinne [page 14] Internet-Draft SIP Resource Priority February 21st, 2005header if allowed by local policy.This behavior is similar to that for any header field, as a UA can decide to reject a request for the presence, absence or value of any information in the request.If a stateful proxy has authorized a particular resource priority level and if it offers differentiated treatment to responses containing resource priority levels, the proxy SHOULD ignore any higher value contained in responses, toavoid thatprevent colluding user agents from artificiallyraiseraising the priority level. A SIP proxy MAY use the 'Resource-Priority' indication in its routing decisions, e.g., to retarget to a SIP node or SIP URI that is reserved for a particular resource priority.When the 'Require' header is included in a message, it ensures that in parallel forking, only branches that support the resource- priority mechanism succeed.There arenot additionalno special considerations for proxies when forking requeststhat containcontaining a resource priority indication. Otherwise, the proxy behavior is the same as for user agent servers described in Section4.7).4.7.2. 5. Third-Party Authentication In some cases, the RP actor may not be able to authenticate the Schulzrinne & Polk Expires September 12, 2005 [Page 17] Internet-Draft SIP Resource Priority March 2005 requestor or determine whether an authenticated user is authorized to make such a request. In these circumstances, the SIP entity may avail itself of general SIP mechanisms that are not specific to this application. The authenticated identity management mechanism [RFC3893] allows a third party to verify the identity of the requestor and certify this towards an RP actor. In networks with mutual trust, the SIP asserted identity mechanism [RFC3325] can help the RP actor determine the identity of the requestor. 6. Backwards Compatibility The resource priority mechanism described in this document is fully backwards compatible with SIP systems following [RFC3261]. Systems that do not understand the mechanism can only deliver standard, not elevated, service priority. User agent servers and proxies can ignore any 'Resource-Priority' header field just like any other unknown header field and then treat the request like any other request. Naturally, the request may still succeed.Introducing 'Require' or 'Proxy-Require' would not help backwards compatibility, as systems that do not support these mechanism7. Examples The SDP message body and the BYE and ACK exchanges areno better off rejectingtherequest duesame as in RFC 3665 [RFC3665] and omitted for brevity. 7.1 Simple Call User A User B | | | INVITE F1 | |----------------------->| | 180 Ringing F2 | |<-----------------------| | | | 200 OK F3 | |<-----------------------| | ACK F4 | |----------------------->| | Both Way RTP Media | |<======================>| | | In this scenario, User A completes a call tofeature failure. Since the Polk & Schulzrinne [page 15] Internet-Draft SIP Resource Priority February 21st, 2005 intent ofUser B directly. The call from A to B is marked with a resource priorityindications is to increase the probability of call completion, adding failure modes appears counterproductive. 7. Multiple Namespaces in a Message There are two cases where multiple namespaces might occur. Namely, a single RP actor mayindication. F1 INVITE User A -> User B INVITE sip:UserB@biloxi.example.com SIP/2.0 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Schulzrinne & Polk Expires September 12, 2005 [Page 18] Internet-Draft SIP Resource Priority March 2005 Max-Forwards: 70 From: BigGuy <sip:UserA@atlanta.example.com>;tag=9fxced76sl To: LittleGuy <sip:UserB@biloxi.example.com> Call-ID: 3848276298220188511@atlanta.example.com CSeq: 1 INVITE Resource-Priority: dsn.flash Contact: <sip:UserA@client.atlanta.example.com;transport=tcp> Content-Type: application/sdp Content-Length: ... ... F2 180 Ringing User B -> User A SIP/2.0 180 Ringing Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: BigGuy <sip:UserA@atlanta.example.com>;tag=9fxced76sl To: LittleGuy <sip:UserB@biloxi.example.com>;tag=8321234356 Call-ID: 3848276298220188511@atlanta.example.com CSeq: 1 INVITE Resource-Priority: dsn.flash Contact: <sip:UserB@client.biloxi.example.com;transport=tcp> Content-Length: 0 F3 200 OK User B -> User A SIP/2.0 200 OK Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: BigGuy <sip:UserA@atlanta.example.com>;tag=9fxced76sl To: LittleGuy <sip:UserB@biloxi.example.com>;tag=8321234356 Call-ID: 3848276298220188511@atlanta.example.com CSeq: 1 INVITE Resource-Priority: dsn.flash Contact: <sip:UserB@client.biloxi.example.com;transport=tcp> Content-Type: application/sdp Content-Length: ... ... 7.2 Receiver Does Not Understand Namespace In this example, the receiving UA does not understandmore than onethe "dsn" namespace and thus returns aSIP request may contain more than one resource value from different namespaces. As noted earlier,417 (Unknown Resource-Priority) status code. We omit theorder of resource values in a SIP request is immaterial. o If amessage details for messages F5 through F7 since Schulzrinne & Polk Expires September 12, 2005 [Page 19] Internet-Draft SIPelement understands multiple namespaces, it must create a total ordering across all resource values from these namespaces, maintaining the relative ordering within each namespace. It is RECOMMENDED thatResource Priority March 2005 they are essentially the sameordering is used across an administrative domain. o If a 'Resource-Priority' header contains multiple namespaces, the RP actor MUST select one resource value, typically the one with the highest ranking. o If a SIP element supports this specification and the request includes a 'Require' header field with the 'Resource-Priority' option tag, it MUST be possible to configure a UAS to copy the Resource-Priority header value or values from the Request to the Response without changing any field values (this means the Offerer is in control of this header's value within an administrative domain). This rule MUST be followed even if multiple instances of the Resource-Priority header existas ina Request, unlesstheUAS lacks the authorization to copy unknown header fields.first example. User A Userauthorization of priority-values within a namespace is outside the scope of this document. Here is a series of examples (both good and bad) of a SIP element that supports two namespaces (foo and bar). Foo's priority-values are 3 (highest), then 2 and then 1 (lowest ), and bar's priority- values are C (highest), thenBand then| | | INVITE F1 | |----------------------->| | 417 R-P failed F2 | |<-----------------------| | ACK F3 | |----------------------->| | | | INVITE F4 | |----------------------->| | 180 Ringing F5 | |<-----------------------| | 200 OK F6 | |<-----------------------| | ACK F7 | |----------------------->| | | | Both Way RTP Media | |<======================>| F1 INVITE User A(lowest). The following are 3 lists of acceptable priority orders the SIP element MAY process are: Foo.3 Foo.3 Bar.C (Highest Priority) Foo.2 Bar.C Foo.3 Foo.1 or Foo.2 or Foo.2 Bar.C Bar.B Foo.1 Bar.B Foo.1 Bar.B Bar.A Bar.A Bar.A (Lowest Priority) Polk & Schulzrinne [page 16] Internet-Draft SIP Resource Priority February 21st, 2005 Bar.C (Highest Priority) Foo.3 Bar.B <= both are equivalently processed FIFO) or Foo.2 Bar.A <= both are equivalently processed FIFO) Foo.1 (Lowest Priority) Bar.C (Highest Priority) Foo.3 or Foo.2 Foo.1 (Lowest Priority) Where Bar.A and Bar.B are ignored within this example administrative Domain; Based on the stated priority order of each namespace above, the following (non-inclusive list of) combinations are NOT acceptable and MUST NOT be configurable: Example 1 Example 2 Example 3 --------- --------- --------- Foo.3 Foo.3 Bar.C Foo.2 Bar.A Foo.1 Foo.1 or Foo.2 or Foo.3 Bar.C Bar.B Foo.2 Bar.A Foo.1 Bar.A Bar.B Bar.C Bar.B Example 4 --------- Bar.C Foo.1 Bar.B or Foo.3 Bar.A Foo.2 In Example 1 above, Bar.A is ordered higher than Bar.B - which is not consistent within the order of the namespace of this section. In Example 2 above, Bar.A is ordered higher than Bar.B and Bar.C - which is not consistent within the order of the namespace of this section. In Example 3 above, Foo.1 is ordered higher than Foo.2 and Foo.3 - which is not consistent within the order of the namespace of this section. In Example 4 above, Foo.1 is ordered higher than Foo.3 and Foo.2 is ignored - which is not consistent within the order of the namespace of this section. Polk & Schulzrinne [page 17] Internet-Draft SIP Resource Priority February 21st, 2005 8. Namespace Definitions This specification defines five unique namespaces below: dsn, drsn, q735, ets and wps, constituting their registration with IANA. Each IANA registration contains: 1) The namespace label, a unique namespace label within the IANA registry for the Resource-Priority header; 2) Number of Priority levels - the number of relative priority levels the namespace has defined; 3) The "Intended Operation" - identifying whether the namespace is to be used with priority queuing or preemption; 4) Any new Rejection codes or behaviors unique to the namespace being defined 5) Any new Error codes specific to the namespace being defined 6) The IETF Reference document specifying the parameters and specifications of the namespace, the listing of the priority- values in relative order, any new rejection messages, and any new error codes or error behaviors. 8.1 Namespace Descriptions 8.1.1 The "DSN" Namespace The DSN namespace comes from the name of a US Government network called "The Defense Switched Network". The DSN namespace has a finite list of relative priority-values listed here in the order of lowest priority to highest priority: (lowest) dsn.routine dsn.priority dsn.immediate dsn.flash (highest) dsn.flash-override In compliant administrative domains utilizing the dsn namespaces, the UAS MUST copy the Resource-Priority header priority-values from the Request to the Response for every header in the message unless the UAS lacks local authorization to copy certain namespace.priority-value combinations. The dsn namespace introduces no new error behaviors. The IANA Considerations section will have the following entry for the DSN namespace: Polk & Schulzrinne [page 18] Internet-Draft SIP Resource Priority February 21st, 2005 Intended New New Error Namespace Levels Operation Rej. code code Reference --------- ------ ---------------- --------- ---- --------- dsn 5 preemption-based no no [This RFC] 8.1.2 The "DRSN" Namespace The DRSN namespace comes from the name of a US Government network called "The Defense RED Switched Network". The DRSN namespace has a finite list of relative priority-values listed here in the order of lowest priority to highest priority: (lowest) drsn.routine drsn.priority drsn.immediate drsn.flash drsn.flash-override (highest) drsn.flash-override-override One unique facet regarding the DRSN namespace relative to the DSN and Q735 namespaces is the behavior of SIP elements with regard to the 6th priority-value: drsn.flash-override-override This is the highest relative priority-value within the DRSN namespace, but it is only to be used at this higher level in message processing in SIP Proxies, and dialog establishment in SIP UAs (including gateways). In any UAS, once the session is established at the drsn.flash-override-override priority level, it defends that dialog with a priority level of drsn.flash-override only; thus allowing a new drsn.flash-override-override to preempt any existing session. This behavior MUST be followed to be compliant with this specification. In compliant administrative domains utilizing the drsn namespaces, the UAS MUST copy the Resource-Priority header priority-values from the Request to the Response for every header in the message unless the UAS lacks local authorization to copy certain (perhaps restricted) namespace.priority-value combinations. The drsn namespace operates on the preemption policy. The drsn namespace introduces no new error behavior. The IANA Considerations section will have the following entry for the DRSN namespace: Polk & Schulzrinne [page 19] Internet-Draft SIP Resource Priority February 21st, 2005 Intended New New Error Namespace Levels Operation Rej. code code Reference --------- ------ ---------------- --------- ---- --------- drsn 6 preemption-based no no [This RFC] 8.1.3 The "Q735" Namespace The Q735 namespace is defined here as Q.735.3 was defined, namely as operationally equivalent to the DSN specification for MLPP. Q.735.3 was created to be a commercial version of the same specification. The Q735 namespace has a finite list of relative priority-values listed here in the order of lowest priority to highest priority: (lowest) q735.4 q735.3 q735.2 q735.1 (highest) q735.0 In compliant administrative domains utilizing the q735 namespaces, the UAS MUST copy the Resource-Priority header priority-values from the Request to the Response for every header in the message unless the UAS lacks local authorization to copy certain (perhaps restricted) namespace.priority-value combinations. The q735 namespace operates according to the preemption policy. The q735 namespace introduces no new error behaviors. The IANA Considerations section will have the following entry for the Q735 namespace: Intended New New Error Namespace Levels Operation Rej. code code Reference --------- ------ ---------------- --------- ---- --------- q735 5 preemption-based no no [This RFC] 8.1.4 The "ETS" Namespace The ETS namespace derives its name indirectly from the name of the US Government Telecommunications Service called "Government Emergency Telecommunications Service" (or GETS), though the organization responsible for the GETS service chose the acronym "ETS" for its GETS over IP service, which stands for "Emergency Telecommunications Service". The ETS namespace has a finite list of relative priority-values listed here in the order of lowest priority to highest priority: Polk & Schulzrinne [page 20] Internet-Draft SIP Resource Priority February 21st, 2005 (lowest) ets.4 ets.3 ets.2 ets.1 (highest) ets.0 The ets namespace operates according to the priority queuing policy. ETS-based administrative domains will not queue normal, non- prioritized requests. ETS-based administrative domains will not queue normal, non- prioritized messages. If a queue depth exists, the messages will be rejected according to section 4.5. A UAS within this type of administrative domain SHOULD be configurable to limit the number of requests in a queue. One of two different ways of limiting the queue depth is RECOMMENDED: 1) having a maximum number within a queue (perhaps with a different number queued per priority-level), and 2) consider all requests above the default level to be in a single queue on a FIFO basis (for example, based on the reception timestamp of the request) A UAS within this type of administrative domain SHOULD be configurable to limit the time a request sits in a queue. One of two different ways of limiting the time in queue is RECOMMENDED: 1) having a maximum time within a queue (perhaps with a different time per priority-level) before a/each message moves into a rejection condition discussed in section 4.5., and 2) considering all requests above the default level in a single queue on a FIFO basis (for example, based on the reception timestamp of the request), all with the same maximum time in queue before a/each message moves into a rejection condition discussed in section 4.5. Local policy will determine additional behaviors of a queue-based SIP element. However, the frequency of provisional messages indicated in [RFC3261] still need to apply to keep each session set- up active until successful or rejected. A compliant SIP Server experiencing a processing queue due to excessive load MUST move the messages containing higher relative priority-values up to the queue the header indicates on a FIFO basis based on the arrival time of the message (as there may be more than one message at the same level already in queue). It is conceivable that priority-levels within a proxy are grouped to include more than one level per queue. This is a matter of local policy. Polk & Schulzrinne [page 21] Internet-Draft SIP Resource Priority February 21st, 2005 In compliant administrative domains utilizing the ets namespaces, the UAS MUST copy the Resource-Priority header priority-values from the Request to the Response for every header in the message unless the UAS lacks local authorization to copy certain (perhaps restricted) namespace.priority-value combinations. Additional ETS policy is left to domain administrators, and to future efforts. The ets namespace does not define new error behaviors. The IANA Considerations section will have the following entry for the ETS namespace: Intended New New Error Namespace Levels Operation Rej. code code Reference --------- ------ ---------------- --------- ---- --------- ets 5 queue-based no no [This RFC] 8.1.5 The "WPS" Namespace The WPS namespace derives its name from the "Wireless Priority Service" defined in GSM and other wireless technologies. Each namespace has a finite list of relative priority-values. Each is listed here in the order of lowest priority to highest priority: (lowest) wps.4 wps.3 wps.2 wps.1 (highest) wps.0 The wps namespace operates with the intended preferential treatment of a queue-based policy (as defined in section 4), where higher relative priority requests are queued ahead of lower relative priority requests for processing at any point of scarce resource constraints in an administrative domain. WPS-based administrative domains will not queue normal, non- prioritized messages. If a queue depth exists, the messages will be rejected according to section 4.5. A UAS within this type of administrative domain SHOULD be configurable to limit the number of requests in a queue. One of two different ways of limiting the queue depth is RECOMMENDED: 1) having a maximum number within a queue (perhaps with a different number queued per priority-level), and Polk &-> User B INVITE sip:UserB@biloxi.example.com SIP/2.0 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: BigGuy <sip:UserA@atlanta.example.com>;tag=9fxced76sl To: LittleGuy <sip:UserB@biloxi.example.com> Call-ID: 3848276298220188511@atlanta.example.com CSeq: 1 INVITE Require: resource-priority Resource-Priority: dsn.flash Contact: <sip:UserA@client.atlanta.example.com;transport=tcp> Content-Type: application/sdp Content-Length: ... ... F2 417 Resource-Priority failed User B -> User A SIP/2.0 417 Unknown Resource-Priority Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: BigGuy <sip:UserA@atlanta.example.com>;tag=9fxced76sl Schulzrinne[page 22]& Polk Expires September 12, 2005 [Page 20] Internet-Draft SIP Resource PriorityFebruary 21st,March 20052) consider all requests above the default level to be in a single queue on a FIFO basis (for example, based on the reception timestamp of the request)To: LittleGuy <sip:UserB@biloxi.example.com>;tag=8321234356 Call-ID: 3848276298220188511@atlanta.example.com CSeq: 1 INVITE Accept-Resource-Priority: q735.0, q735.1, q735.2, q735.3, q735.4 Contact: <sip:UserB@client.biloxi.example.com;transport=tcp> Content-Type: application/sdp Content-Length: 0 F3 ACK User AUAS within this type of administrative domain SHOULD be configurable to reject a queued lower priority request in lieu of the newly arrived higher priority level request if the maximum aggregate queue depth has been reached for that element. This behavior is not considered a "preemption event" because the session had not been previously established. This bumping will result in the lower level request being rejected (discussed in section 4.5)-> User B ACK sip:UserB@biloxi.example.com SIP/2.0 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bd5 Max-Forwards: 70 From: BigGuy <sip:UserA@atlanta.example.com>;tag=9fxced76sl To: LittleGuy <sip:UserB@biloxi.example.com>;tag=8321234356 Call-ID: 3848276298220188511@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F4 INVITE User AUAS within this type of administrative domain SHOULD be configurable to limit-> User B INVITE sip:UserB@biloxi.example.com SIP/2.0 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: BigGuy <sip:UserA@atlanta.example.com>;tag=9fxced76sl To: LittleGuy <sip:UserB@biloxi.example.com> Call-ID: 3848276298220188511@atlanta.example.com CSeq: 2 INVITE Require: resource-priority Resource-Priority: q735.3 Contact: <sip:UserA@client.atlanta.example.com;transport=tcp> Content-Type: application/sdp Content-Length: ... ... 8. Handling Multiple Concurrent Namespaces 8.1 General Rules A single SIP request MAY contain resource values from multiple namespaces. As noted earlier, an RP actor disregards all namespaces it does not recognize. This specification only addresses thetime a request sits in a queue. One of two different wayscase where an RP actor then selects one oflimitingthetime in queue is RECOMMENDED: 1) having a maximum time within a queue (perhapsremainining resource values for processing, usually choosing the one witha different time per priority-level) before a/each message moves into a rejection condition discussed in section 4.5., and 2) considering all requests abovethedefault level in a single queue onhighest relative priority. Schulzrinne & Polk Expires September 12, 2005 [Page 21] Internet-Draft SIP Resource Priority March 2005 If an RP actor understands multiple namespaces, it must create aFIFO basis (for example, based onlocal total ordering across all resource values from these namespaces, maintaining thereception timestamp ofrelative ordering within each namespace. It is RECOMMENDED that therequest), all withsame ordering is used across an administrative domain. However, there is no requirement that such ordering be the samemaximum time in queue before a/each message moves into a rejection condition discussed in section 4.5. Local policy will determine additional behaviorsacross all administrative domains. 8.2 Examples of Valid Orderings Below are aqueue-based SIP element. However, the frequencyset ofprovisional messages indicated in [RFC3261] still need to apply to keep each session set- up active until successfulexamples of an RP actor that supports two namespaces, foo and bar. Foo's priority-values are 3 (highest), then 2 and then 1 (lowest), and bar's priority-values are C (highest), then B and then A (lowest). Below are five lists of acceptable priority orders the SIP element may use: Foo.3 Foo.3 Bar.C (highest priority) Foo.2 Bar.C Foo.3 Foo.1 or Foo.2 or Foo.2 Bar.C Bar.B Foo.1 Bar.B Foo.1 Bar.B Bar.A Bar.A Bar.A (lowest priority) Bar.C (highest priority) Foo.3 Bar.B (both treated with equal priority (FIFO)) or Foo.2 Bar.A (both treated with equal priority (FIFO)) Foo.1 (lowest priority) Bar.C (highest priority) Foo.3 orrejected. A compliant SIP Server experiencing a processing queue due to excessive load MUST move the messages containing higher relative priority-values up to the queueFoo.2 Foo.1 (lowest priority) In theheader indicates on a FIFO basis basedlast example above, Bar.A and Bar.B are ignored. 8.3 Examples of Invalid Orderings Based on thearrival timepriority order of themessage (as there may be more than one message atnamespaces above, thesame level already in queue). It is conceivable that priority-levels within a proxyfollowing combinations aregrouped to include more than one level per queue. This is a matterexamples oflocal policy. In compliant administrative domains utilizing the wps namespaces, the UAS MUST copy the Resource-Priority header priority-values from the Request to the Response for every header in the message unless the UAS lacks local authorization to copy certain (perhaps restricted) namespace.priority-value combinations. Additional WPS policy is left to domain administrators, and to future efforts. The wps namespace operates according to the priority queuing policyorderings that are NOT acceptable andwill not queue normal, non-prioritized messages. The wps namespace defines no new error behaviors. Polk &MUST NOT be configurable: Schulzrinne[page 23]& Polk Expires September 12, 2005 [Page 22] Internet-Draft SIP Resource PriorityFebruary 21st,March 2005The IANA Considerations section will have the following entry for the WPS namespace: Intended New New Error Namespace Levels Operation Rej. code code ReferenceExample 1 Example 2 Example 3 --------------- --------------------------------------wps 5 queue-based no no [This RFC] 8.2 Future Namespace ConsiderationsFoo.3 Foo.3 Bar.C Foo.2 Bar.A Foo.1 Foo.1 or Foo.2 or Foo.3 Bar.C Bar.B Foo.2 Bar.A Foo.1 Bar.A Bar.B Bar.C Bar.B Example 4 --------- Bar.C Foo.1 Bar.B or Foo.3 Bar.A Foo.2 These examples are invalid since the following global orderings are not consistent with the namespace-internal order: o In Example 1, Bar.A is ordered higher than Bar.B; o In Example 2, Bar.A is ordered higher than Bar.B and Bar.C; o In Example 3, Foo.1 is ordered higher than Foo.2 and Foo.3; o In Example 4, Foo.1 is ordered higher than Foo.3 and Foo.2; 9. Registering Namespaces Organizations considering the use of the Resource-Priority header field should investigate if an existing combination of namespace and priority-values meetsthetheir needs. For example, emergency first responders around the world are discussing utilizing this mechanism for preferential treatment in future networks. There should not be a unique namespace for different jurisdictions. This will greatly increase interoperability and reduce development time, and probably reduce future confusion if there is ever a need to map one namespace to another in an interworking function.InBelow, we describe thespecification of any future namespace, several facets needsteps necessary tobe done or included: 1)register new namespaces. Newnamespace/priority-value combinations proposed in the futurenamespaces MUST be defined in a Standards TrackRFCRFC, following the 'Standards Action' policy in [RFC2434] and MUST include the following facets: o It must define the namespace label, a unique namespace label within the IANA registry for the SIP Resource-Priority header field. o It must enumerate the priority levels, i.e., 'r-priority' values, the namespace is using. Note that only finite lists are permissible, not (e.g.,) unconstrained integers or tokens. Schulzrinne & Polk Expires September 12, 2005 [Page 23] Internet-Draft SIP Resource Priority March 2005 o The priority algorithm (Section 4.5), identifying whether the namespace is to be used with priority queueing ("queue") or preemption ("preemption"); if queueing is used, the namespace MAY indicate whether normal-priority requests are queued. If there is a new "intended algorithm" other than preemption priority queueing, the algorithm must be described, taking into account all RP actors (UAC, UAS, proxies). o A namespace may either reference anaugmentationexisting list of priority values or define a new finite list of priority values in relative priority order for IANA registration within the sip-parameters Resource-Priority priority-values registry. New priority-values MUST NOT be added to any previously IANA-registered list associated with a particular namespace, this will cause interoperability problems. o Any new SIP response codes unique to this new namespace need to be explained and registered. o The reference document must specify and describe any new Warning header field warn-codes (RFC 3261, Section 27.2). o The document needs to specify a new row for the following tableoffered tothat summarize the features of the namespace and are included into IANAfor Registration:Resource-Priority Namespace registration: Intended New NewErrorresp. Namespace LevelsOperation Rej. codealgorithm warn-code code Reference --------- ------ ---------------- --------------------- ---------<new<label> <# of <preemption <newerrorwarn <newRej <which namespace> Levels>resp. <RFC> levels> or queue> code> code>IETF doc> - as well as list the finite set of priority values in relative priority order (with no wildcards) for IANA Registration. 2) New priority-values MUST NOT be added to any previously (IANA) registered list associated with a particular namespace. This will cause interoperability problems. 3)Ifthere is ainformation on new"intended behavior" (other than preemption- basedresponse codes, rejection codes orpriority queue-based),error behaviors is omitted, it is to be assumed that the namespace defines no new parametersforor behaviors. 10. Namespace Definitions 10.1 Introduction This specification defines five unique namespaces below: DSN, DRSN, Q735, ETS and WPS, constituting their registration with IANA. Each IANA registration contains the facets defined in Section 9. For recognizability, we label the namespaces in capital letters, but note thatbehavior must be providednamespace names are case-insensitive andhow said behavior affects different types of RP actors. 4) Any new Response Codes unique to this newcustomarily rendered as lowercase in protocol requests. 10.2 The "DSN" Namespace The DSN namespaceneed to be explained. Polk &comes from the name of a US Government network called "The Defense Switched Network". Schulzrinne[page& Polk Expires September 12, 2005 [Page 24] Internet-Draft SIP Resource PriorityFebruary 21st,March 20055) Any new Rejection Codes or changes to existing rejections codes asThe DSN namespace has aresultfinite list of relative priority-values listed below in thecreationorder of lowest priority to highest priority: (lowest) dsn.routine dsn.priority dsn.immediate dsn.flash (highest) dsn.flash-override The DRSN namespace uses the preemption algorithm (Section 4.5.1). 10.3 The "DRSN" Namespace The DRSN namespaceneedcomes from the name of a US Government network called "The Defense RED Switched Network". The DRSN namespace defines the following resource values, listed in order of lowest priority tobe offered and explained. 9. Exampleshighest priority: (lowest) drsn.routine drsn.priority drsn.immediate drsn.flash drsn.flash-override (highest) drsn.flash-override-override TheSDP message body and the BYE and ACK exchanges areDRSN namespace uses thesame aspreemption algorithm (Section 4.5.1). The DRSN namespace differs inRFC 3665 [RFC3665]one algorithmic aspect from the DSN andomitted for brevity. 9.1 Simple Call User A User B | | | INVITE F1 | |----------------------->| | 180 Ringing F2 | |<-----------------------| | | | 200 OK F3 | |<-----------------------| | ACK F4 | |----------------------->| | Both Way RTP Media | |<======================>| | | In this scenario, User A completes a call to User B directly.Q735 namespaces. Thecallbehavior for the 'flash-override-override' priority value differs fromA to B is marked withthe other values. Normally, requests do not preempt those of equal priority, but aresourcenewly arriving 'flash-override-override' request will displace another one of equal priorityindication. F1 INVITE User A -> User B INVITE sip:UserB@biloxi.example.com SIP/2.0 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: BigGuy <sip:UserA@atlanta.example.com>;tag=9fxced76sl To: LittleGuy <sip:UserB@biloxi.example.com> Call-ID: 3848276298220188511@atlanta.example.com CSeq: 1 INVITE Resource-Priority: dsn.flash Contact: <sip:UserA@client.atlanta.example.com;transport=tcp> Content-Type: application/sdp Content-Length: ... ... F2 180 Ringing User B -> User A SIP/2.0 180 Ringing Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 Polk & Schulzrinne [page 25] Internet-Draft SIP Resource Priority February 21st, 2005 From: BigGuy <sip:UserA@atlanta.example.com>;tag=9fxced76sl To: LittleGuy <sip:UserB@biloxi.example.com>;tag=8321234356 Call-ID: 3848276298220188511@atlanta.example.com CSeq: 1 INVITE Resource-Priority: dsn.flash Contact: <sip:UserB@client.biloxi.example.com;transport=tcp> Content-Length: 0 F3 200 OK User B -> User A SIP/2.0 200 OK Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: BigGuy <sip:UserA@atlanta.example.com>;tag=9fxced76sl To: LittleGuy <sip:UserB@biloxi.example.com>;tag=8321234356 Call-ID: 3848276298220188511@atlanta.example.com CSeq: 1 INVITE Resource-Priority: dsn.flash Contact: <sip:UserB@client.biloxi.example.com;transport=tcp> Content-Type: application/sdp Content-Length: ... ... 9.2 Receiver Does Not Understandif there are insufficient resources. This can also be expressed as saying that 'flash-override-override' requests defends themselves as 'flash-override' only. 10.4 The "Q735" NamespaceIn this example, the receiving UA does not understand the "dsn" namespace and thus returnsQ.735.3 [Q.735.3] was created to be a417 (Unknown Resource-Priority) status code. We omitcommercial version of themessage detailsoperationally equivalent DSN specification formessages F5 through F7 since they are essentially the same asmulti-layer priority preemption (MLPP). The Q735 namespace is defined here in thefirst example. User A User B | | | INVITE F1 | |----------------------->| | 417 R-P failed F2 | |<-----------------------| | ACK F3 | |----------------------->| | | | INVITE F4 | |----------------------->| | 180 Ringing F5 | |<-----------------------| | 200 OK F6 | |<-----------------------| | ACK F7 | |----------------------->| | | Polk & Schulzrinne [page 26] Internet-Draft SIP Resource Priority February 21st, 2005 | Both Way RTP Media | |<======================>| F1 INVITE User A -> User B INVITE sip:UserB@biloxi.example.com SIP/2.0 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: BigGuy <sip:UserA@atlanta.example.com>;tag=9fxced76sl To: LittleGuy <sip:UserB@biloxi.example.com> Call-ID: 3848276298220188511@atlanta.example.com CSeq: 1 INVITE Resource-Priority: dsn.flash Contact: <sip:UserA@client.atlanta.example.com;transport=tcp> Content-Type: application/sdp Content-Length: ... ... F2 417 Resource-Priority failed User B -> User A SIP/2.0 417 Resource-Priority failed Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.101 From: BigGuy <sip:UserA@atlanta.example.com>;tag=9fxced76sl To: LittleGuy <sip:UserB@biloxi.example.com>;tag=8321234356 Call-ID: 3848276298220188511@atlanta.example.com CSeq: 1 INVITE Accept-Resource-Priority: q735.0, q735.1, q735.2, q735.3, q735.4 Contact: <sip:UserB@client.biloxi.example.com;transport=tcp> Content-Type: application/sdp Content-Length: 0 F3 ACK User A -> User B ACK sip:UserB@biloxi.example.com SIP/2.0 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bd5 Max-Forwards: 70 From: BigGuy <sip:UserA@atlanta.example.com>;tag=9fxced76sl To: LittleGuy <sip:UserB@biloxi.example.com>;tag=8321234356 Call-ID: 3848276298220188511@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F4 INVITE User A -> User B INVITE sip:UserB@biloxi.example.com SIP/2.0 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: BigGuy <sip:UserA@atlanta.example.com>;tag=9fxced76sl To: LittleGuy <sip:UserB@biloxi.example.com> Polk &same manner. The Q735 namespace defines the following resource values, listed in order of lowest priority to highest priority: Schulzrinne[page 27]& Polk Expires September 12, 2005 [Page 25] Internet-Draft SIP Resource PriorityFebruary 21st,March 2005Call-ID: 3848276298220188511@atlanta.example.com CSeq: 2 INVITE Resource-Priority:(lowest) q735.4 q735.3Contact: <sip:UserA@client.atlanta.example.com;transport=tcp> Content-Type: application/sdp Content-Length: ... ... 10.q735.2 q735.1 (highest) q735.0 The Q735 namespace operates according to the preemption (Section 4.5.1) algorithm. 10.5 The "ETS" Namespace The ETS namespace derives its name indirectly from the name of the US Government Telecommunications Service called "Government Emergency Telecommunications Service" (or GETS), though the organization responsible for the GETS service chose the acronym "ETS" for its GETS over IP service, which stands for "Emergency Telecommunications Service". The ETS namespace defines the following resource values, listed in order of lowest priority to highest priority: (lowest) ets.4 ets.3 ets.2 ets.1 (highest) ets.0 The ETS namespace operates according to the priority queuing algorithm (Section 4.5.2). 10.6 The "WPS" Namespace The WPS namespace derives its name from the "Wireless Priority Service" defined in GSM and other wireless technologies. The WPS namespace defines the following resource values, listed in order of lowest priority to highest priority: (lowest) wps.4 wps.3 wps.2 wps.1 (highest) wps.0 The WPS namespace operates according to the priority queuing algorithm (Section 4.5.2). Schulzrinne & Polk Expires September 12, 2005 [Page 26] Internet-Draft SIP Resource Priority March 2005 11. Security Considerations 11.1 General Remarks Any resource priority mechanism can be abused to obtain resources and thus deny service to other users. Anadversary may be able to take over a particular gateway, cause additional congestion during PSTN emergencies or deny service to legitimate users. In the Internet, or any IP domain, this mechanism can cause certain messages or sessions (calls) to be given a higher relative priority of processing within a SIP element (moveadversary may be able to take over a particular GSTN gateway, cause additional congestion during emergencies affecting thehead of the line scenario),GSTN or deny service tothe point of prematurely terminating an existing session in favor of a newer one.legitimate users. Insome administrative domains,SIP end system such as IP phones, thiswill be the expected behavior for authenticatedmechanism could inappropriately terminate existing sessions andauthorized users (see section 8). Unauthorized users MUST NOT be given this opportunity to abuse network/element resources. Whilecalls. Thus, while the indication itself does not have to provide separate authentication, any SIP request containing this header has higher authentication requirements thanregular requests. A poor implementation of authentication and authorization will likely cause illegitimate higher priority messages to process without being successfully challenged for the privilege to do so. While this will not likely have a great affect on the performance of SIP Servers, this could have some (to a great) impact on the premature termination of existing sessions. Those domains wishing to utilize a namespace with an operation of preemption of lower relative priority sessions should use caution to ensure only the proper usage of this header is granted. Care should be taken on 3 fronts: 1) To the domain that enables usage of the Resource-Priority header such that adequate control exists to prevent unwanted preferential message treatment from internal users. Without an authentication and authorization mechanism to validate each user request, unwanted usage (and potentially user hacked settings) can have undesired affects on any internal network. 2) To the domain that enables usage of the Resource-Priority header such that inadequate control exists to prevent unwanted preferential message treatment from SIP messages from outside the Polk & Schulzrinne [page 28] Internet-Draft SIP Resource Priority February 21st, 2005 domain coming into the domain (and outside the area of direct AAA control). 3) In the choosing of a namespace itself, to make sure the desired behavior of SIP elements have equivalent behaviors defined in this document to ensure interoperability and no surprises. An example of this is choosing a namespace throughout a domainregular, non-prioritized requests. This authentication andconfiguring it for preferential treatment with no preemption, even though a neighbor domain uses it as it is IANA defined (with preemption as one expected behavior), resulting in poor performance of fist domain's calls intoauthorization requirements extends to users within thesecondadministrativedomain's network.domain, as later interconnection with other administrative domains may invalidate earlier assumptions on the trustworthiness of users. Below, we describe authentication and authorization aspects, confidentiality and privacy requirements, protection against denial of service attacks and anonymity requirements. Naturally, the general discussion in RFC 3261 [RFC3261] applies. All user agents and proxy servers which support this extension MUST implement SIP over TLS [RFC3546] and thesips:'sips' URI scheme as described in Section 26.2 of RFC 3261, and Digest Authentication [RFC2617] as described in Section 22 of RFC 3261. In addition, user agents which support this extension SHOULD also implement S/MIME [RFC2633] as described in Section 23 of RFC 3261 to allow for signing and verification of signatures over requests which use this extension.10.111.2 Authentication and Authorization Prioritized access to network and end system resources imposes particularly stringent requirements on authentication and authorization mechanisms since access to prioritized resources may impact overall system stability and performance, not just result in theft of, say, a single phone call. Under certain emergency conditions, the network infrastructure, including its authentication and authorization mechanism, may be under attack. Given the urgency during emergency events, normal statistical fraud detection may be less effective, thus placing a premium on reliable Schulzrinne & Polk Expires September 12, 2005 [Page 27] Internet-Draft SIP Resource Priority March 2005 authentication. Common requirements for authentication mechanisms apply, such as resistance to replay, cut-and-paste and bid-down attacks. Authentication MAY be SIP-based or use other mechanisms. Use of Digest authentication and/or S/MIME is RECOMMENDED for UAS authentication. Digest authentication requires that the parties share a common secret, thus limiting its use across administrativePolk & Schulzrinne [page 29] Internet-Draft SIP Resource Priority February 21st, 2005domains. SIP systems employing resource priority SHOULD implement S/ MIME at least for integrity, as described in Section 23 of [RFC3261]. However, in some environments, receipt of asserted identity [RFC3325] from a trusted entity may be sufficient authorization. Section 5 describes third-party authentication. Trait-based authorization [I-D.ietf-sipping-trait-authz] "entails an assertion by a authorization service of attributes associated with an identity" and may be appropriate for this application. With trait-based authorization, a network element can directly determine, by inspecting the certificate, that a request is authorized to obtain a particular type of service, without having to consult a mapping mechanism that converts user identities to authorizations. Authorization may be based on factors beyond the identity of the caller, such as the requested destination. Namespaces MAY also impose particular authentication or authorization consideration that are stricter than the baseline described here.10.211.3 Confidentiality and Integrity Calls which use elevated resource priority levels provided by the 'Resource-Priority' header field are likely to be sensitive and often need to be protected from intercept and alteration. In particular, requirements for protecting the confidentiality of communications relationships may be higher than for normal commercial service. For SIP, the 'To', 'From', 'Organization' and 'Subject' header fields are examples of particularly sensitive information. Systems MUST implement encryption at the transport level using TLS and MAY implement other transport-layer or network-layer security mechanisms. UACs SHOULD use the "sips" URI to request a secure transport association to the destination. The 'Resource-Priority' header field can be carried in the SIP message header or can be encapsulated in a message fragment carried in the SIP message body [RFC3420]. To be considered valid authentication for the purposes of this specification, S/MIME signed SIP messages or fragments MUST contain, at a minimum, the Date, To, From, Call-ID, and Resource-Priority header fields. Encapsulation in Schulzrinne & Polk Expires September 12, 2005 [Page 28] Internet-Draft SIP Resource Priority March 2005 S/MIME body parts allows the user to protect this header field against inspection or modification by proxies. However, in many cases, proxies will need to authenticate and authorize the request, so that encapsulation is undesirable. Removal of a Resource-Priority header field or downgrading its priority value affords no additional opportunities to an adversary since that man-in-the-middle could simply drop or otherwise invalidate the SIP request and thus prevent call completion. Only SIP elements within the same administrative trust domain employing a secure channel between their SIP elements will trust aPolk & Schulzrinne [page 30] Internet-Draft SIP Resource Priority February 21st, 2005Resource-Priority header field that is not appropriately signed. Others will need to authenticate the request independently. Thus, insertion of a Resource-Priority header field or upgrading the priority value has no further security implications except causing a request to fail (see discussion in the previous paragraph).10.311.4 Anonymity Some users may wish to remain anonymous to the request destination. Anonymity for requests with resource priority is no different than for any other authenticated SIP request. For the reasons noted earlier, users have to authenticate themselves towards the SIP elements carrying the request where they desire resource priority treatment. The authentication may be based on capabilities and noms, not necessarily their civil name. Clearly, they may remain anonymous towards the request destination, using the network-asserted identity and general privacy mechanism described in [RFC3323].10.411.5 Denial-of-Service Attacks As noted, systems described here are likely to be subject to deliberate denial-of-service (DoS) attacks during certain types of emergencies. DoS attacks may be launched on the network itself as well as its authentication and authorization mechanism. As noted, systems should minimize the amount of state, computation and network resources that an unauthorized user can command. The system must not amplify attacks by causing the transmission of more than one packet to a network address whose reachability has not been verified.11.12. IANA Considerations 12.1 Introduction This section defines two new SIP headers(11.1),(Section 12.2), one SIP OPTION tag(11.2),(Section 12.3), one new4XX4xx error code(11.3),(Section 12.4), a new registry within the sip-parameters section of IANA for Schulzrinne & Polk Expires September 12, 2005 [Page 29] Internet-Draft SIP Resource Priority March 2005 Resource-Priority namespaces(11.4)(Section 12.5) and a new registry within the sip-parameters section of IANA for Resource-Priority and priority-values(11.5).(Section 12.6). Additional namespaces and priority values MUST be registered with IANA. Within each namespace, the registration MUST indicate the relative priority levels, expressed as an ordered list. New priority-values MUST NOT be added to existing namespace registries. The registration MUST describe, in the registration itself, how SIP elements should treat requests from that namespace in 'operation', e.g., whether preemption or only preferential queuing are allowed. The SIP Change Process[RFC 3427][RFC3427] establishes a policy for the registration of new SIP extension headers. Resource priority namespaces and priority values have similar interoperability requirements to those of SIP extension headers. Consequently, registration of new resource priority namespaces and priority valuesPolk & Schulzrinne [page 31] Internet-Draft SIP Resource Priority February 21st, 2005requires documentation in an RFC using the extension header approval process specified in RFC 3427.11.1Registration policies for new namespaces are defined in Section 9. 12.2 IANA Registration of 'Resource-Priority' and 'Accept-Resource-Priority' Header Fields [NOTE TO RFC EDITOR: Replace RFC XXXX with RFC number of this document.] The following is the registration for the 'Resource-Priority' header field: RFC number: XXXX Header name: 'Resource-Priority' Compact form: none The following is the registration for the 'Accept-Resource-Priority' header field: RFC number: XXXX Header name: Accept-Resource-Priority Compact form: none11.212.3 IANA Registration for Option Tag resource-priority RFC number: XXXX Schulzrinne & Polk Expires September 12, 2005 [Page 30] Internet-Draft SIP Resource Priority March 2005 Name of option tag: 'resource-priority' Descriptive text: Indicates or requests support for the resource priority mechanism.11.312.4 IANA Registration for Response Code 417 RFC number: XXXX Response code: 417 Default reason phrase: Unknown Resource-Priority11.412.5 IANA Resource-Priority Namespaceand Priority-Value RegistrationsRegistration A new registry ("Resource-Priority Namespaces") in the sip-parameters section of IANA is to be created taking a form similar to this table below: Intended New warn- NewErrorresp. Namespace LevelsOperation Rej.Algorithm code code Reference --------- ------ ---------------- ---------------------- --------- dsn 5 preemption no no[This RFC][XXXX] drsn 6 preemption no no[This RFC] Polk & Schulzrinne [page 32] Internet-Draft SIP Resource Priority February 21st, 2005[XXXX] q735 5 preemption no no[This RFC][XXXX] ets 5priority-queuequeue no no[This RFC][XXXX] wps 5priority-queuequeue no no[This RFC][XXXX] Legend ------ Namespace = the unique stringofidentifying the namespace Levels = the number of priority-values within the namespaceOperationAlgorithm = Intended(or expected)operational behavior of SIP elementsencounteringimplementing this namespace NewRej. CodeWarn code = NewRejectionWarning Codes (warn-codes) introducedforby this namespace NewError CodeResp. code = NewError CodesSIP response codes introducedforby this namespace Reference = IETFDocumentdocument reference for this namespace11.512.6 IANA Priority-Value Registrations A new registry ("Resource-Priority Priority-values") in the sip-parameters section of IANA is to be created taking a form similar to this table below (Reference[XXXX]XXXX is this RFC): Schulzrinne & Polk Expires September 12, 2005 [Page 31] Internet-Draft SIP Resource Priority March 2005 Namespace: drsn Reference:[XXXX]RFC XXXX Priority-Values (least to greatest): "routine", "priority", "immediate", "flash", "flash-override", "flash-override-override" Namespace: dsn Reference:[XXXX]RFC XXXX Priority-Values (least to greatest): "routine", "priority", "immediate", "flash","flash-override","flash-override" Namespace: q735 Reference:[XXXX]RFC XXXX Priority values (least to greatest): "4", "3", "2", "1", "0" Namespace: ets Reference:[XXXX]RFC XXXX Priority values (least to greatest): "4", "3", "2", "1", "0" Namespace: wps Reference:[XXXX]RFC XXXX Priority values (least to greatest): "4", "3", "2", "1", "0"12.13. Acknowledgments Ben Campbell, Ken Carlberg, Paul Kyzivat, Rohan Mahy, Allison Mankin, Piers O'Hanlon, Mike Pierce, and Samir Srivastavaand Allison Mankinprovided helpful comments.Polk & Schulzrinne [page 33] Internet-Draft SIP Resource Priority February 21st, 2005Dean Willis provided much help with this effort. Martin Dolly, An Nguyen and Niranjan Sandesara assisted with theetsETS andwpsWPS namespaces. Janet Gunn helpedimprove the queue-based policy text. 13.improve the text on queueing-based priority. 14. References13.114.1 Normative References [I-D.ietf-sipping-reason-header-for-preemption] Polk, J., "Extending the Session Initiation Protocol Reason Header for Preemption Events", draft-ietf-sipping-reason-header-for-preemption-02 (work in progress), August 2004. [I.255.3] International Telecommunications Union, "Integrated Services Digital Network (ISDN) - General Structure and Service Capabilities - Multi-Level Precedence and Schulzrinne & Polk Expires September 12, 2005 [Page 32] Internet-Draft SIP Resource Priority March 2005 Preemption", Recommendation I.255.3, July 1990. [Q.735.3] International Telecommunications Union, "Stage 3 description for community of interest supplementary services usingSignalingSignalling System No. 7: Multi-level precedence and preemption", Recommendation Q.735.3, March 1993.[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, September 1981.[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 2434, October 1998. [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. [RFC3262] Rosenberg, J. and H. Schulzrinne, "Reliability of Provisional Responses in Session Initiation Protocol (SIP)", RFC 3262, June 2002. [RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific Event Notification", RFC 3265, June 2002. [RFC3311] Rosenberg, J., "The Session Initiation Protocol (SIP) UPDATE Method", RFC 3311, October 2002. [RFC3420] Sparks, R., "Internet Media Type message/sipfrag", RFC 3420, November 2002. [RFC3428] Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema, C. and D. Gurle, "Session Initiation Protocol (SIP) Extension for Instant Messaging", RFC 3428, December 2002.[I-D.ietf-sipping-reason-header-for-preemption] Polk, J., "Reason Header for Preemption within the Session Polk & Schulzrinne [page 34] Internet-Draft SIP Resource Priority February 21st, 2005 Initiation Protocol (SIP)", draft-ietf-sipping-reason-header-for-preemption-02 (work in progress), August 2004 13.214.2 Informative References[I-D.ietf-ieprep-framework] Carlberg, K., Brown, I. and C. Beard, "Framework for Supporting ETS in IP Telephony", draft-ietf-ieprep-framework-09 (work in progress), April 2004. [RFC3893][I-D.ietf-sip-authid-body] Peterson, J., "SIP Authenticated Identity Body (AIB) Format",RFC 3893, May 2004. [RFC3903] Niemi, A., "An Event State Publication Extension to the Session Initiation Protocol (SIP)", RFC3903,draft-ietf-sip-authid-body-03 (work in progress), May 2004. [I-D.ietf-sipping-trait-authz] Peterson, J., "Trait-based Authorization Requirements for the Session Initiation Protocol (SIP)", draft-ietf-sipping-trait-authz-01 (work in progress), February 2005. Schulzrinne & Polk Expires September 12, 2005 [Page 33] Internet-Draft SIP Resource Priority March 2005 [RFC2617] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A. and L. Stewart, "HTTP Authentication: Basic and Digest Access Authentication", RFC 2617, June 1999. [RFC2633] Ramsdell, B., "S/MIME Version 3 Message Specification", RFC 2633, June 1999. [RFC2976] Donovan, S., "The SIP INFO Method", RFC 2976, October 2000. [RFC3323] Peterson, J., "A Privacy Mechanism for the Session Initiation Protocol (SIP)", RFC 3323, November 2002. [RFC3324] Watson, M., "Short Term Requirements for Network Asserted Identity", RFC 3324, November 2002. [RFC3325] Jennings, C., Peterson, J. and M. Watson, "Private Extensions to the Session Initiation Protocol (SIP) for Asserted Identity within Trusted Networks", RFC 3325, November 2002. [RFC3427] Mankin, A., Bradner, S., Mahy, R., Willis, D., Ott, J. and B. Rosen, "Change Process for the Session Initiation Protocol (SIP)", BCP 67, RFC 3427, December 2002. [RFC3487] Schulzrinne, H., "Requirements for Resource Priority Mechanisms for the Session Initiation Protocol (SIP)", RFC 3487, February 2003. [RFC3515] Sparks, R., "The Session Initiation Protocol (SIP) ReferPolk & Schulzrinne [page 35] Internet-Draft SIP Resource Priority February 21st, 2005Method", RFC 3515, April 2003. [RFC3546] Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J. and T. Wright, "Transport Layer Security (TLS) Extensions", RFC 3546, June 2003. [RFC3550] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003. [RFC3665] Johnston, A., Donovan, S., Sparks, R., Cunningham, C. and K. Summers, "Session Initiation Protocol (SIP) Basic Call Flow Examples", BCP 75, RFC 3665, December 2003. [RFC3893] Peterson, J., "Session Initiation Protocol (SIP) Authenticated Identity Body (AIB) Format", RFC 3893, September 2004. Schulzrinne & Polk Expires September 12, 2005 [Page 34] Internet-Draft SIP Resource Priority March 2005 [RFC3903] Niemi, A., "Session Initiation Protocol (SIP) Extension for Event State Publication", RFC 3903, October 2004. Authors' AddressesJames Polk Cisco Systems 2200 East President George Bush Turnpike Richardson, TX 75082 USA EMail: jmpolk@cisco.comHenning Schulzrinne Columbia University Department of Computer Science 450 Computer Science Building New York, NY 10027USAUS Phone: +1 212 93970427004 EMail: hgs@cs.columbia.edu URI: http://www.cs.columbia.edu James Polk Cisco 2200 East President George Bush Turnpike Richardson, TX 75082 US EMail: jmpolk@cisco.com Schulzrinne & Polk Expires September 12, 2005 [Page 35] Internet-Draft SIP Resource Priority March 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 theIETF'sprocedures with respect to rights inIETF DocumentsRFC 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 ofPolk & Schulzrinne [page 36] Internet-Draft SIP Resource Priority February 21st, 2005such 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.Polk &Schulzrinne[page 37]& Polk Expires September 12, 2005 [Page 36] ----