RFC 7135

Registering a SIP Resource Priority Header Field Namespace for Local Emergency Communications

๐Ÿ“… published May 2014, from ietf

RFC 7135: Registering a SIP Resource Priority Header Field Namespace for Local Emergency Communications ๐ŸŽ€

Okay bestie, this one is from the IETF, the group that writes the rulebook for how the internet talks to itself ๐ŸŒ. It was written by J. Polk at Cisco Systems and published in May 2014. It's labelled Informational, so it's published for information and isn't an Internet Standards Track spec. The ISSN is 2070-1721 ๐Ÿ’…. Its title block doesn't list any RFC it obsoletes or updates, so it's a standalone moment โœจ.

Abstract โœจ

Okay so this doc creates a brand new SIP Resource Priority header field namespace called 'esnet' and registers it with IANA ๐Ÿฆ‹. The namespace lets local emergency sessions get set up to a PSAP (public safety answering point), between PSAPs, and between a PSAP and first responders and their organizations ๐Ÿšจ. It's giving emergency comms, honestly.

Status of This Memo ๐Ÿงš

This document is not an Internet Standards Track specification. It's published for informational purposes ๐Ÿ’œ.

This is a product of the Internet Engineering Task Force (IETF), and it represents the consensus of the IETF community ๐Ÿซถ. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not every doc the IESG approves is a candidate for any level of Internet Standard, so see Section 2 of RFC 5741 for that ๐Ÿ™ˆ.

For the current status, any errata, and how to give feedback, check out http://www.rfc-editor.org/info/rfc7135 ๐Ÿ“.

Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they were in effect on the date of publication. Please read these carefully, because they explain your rights and restrictions for this document. Code Components pulled out of this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License ๐Ÿ“œ.

Table of Contents ๐Ÿ’–

1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
2.  Rules of Usage of the Resource Priority Header Field . . . . .  4
3.  "esnet" Namespace Definition . . . . . . . . . . . . . . . . .  6
  3.1.  Namespace Definition Rules and Guidelines  . . . . . . . .  6
  3.2.  The 'esnet' Namespace  . . . . . . . . . . . . . . . . . .  6
4.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  7
  4.1.  IANA Resource-Priority Namespace Registration  . . . . . .  7
  4.2.  IANA Priority-Value Registrations  . . . . . . . . . . . .  7
5.  Security Considerations  . . . . . . . . . . . . . . . . . . .  8
6.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . .  8
7.  Normative References . . . . . . . . . . . . . . . . . . . . .  9

1. Introduction ๐ŸŒธ

Okay, this section sets the scene. The doc creates the new SIP Resource Priority header (RPH) field namespace 'esnet' for local emergency usage and registers it with IANA ๐ŸŽ€. The SIP Resource-Priority header field itself is defined in RFC 4412 [RFC4412]. The new 'esnet' namespace is meant for inbound calls toward a PSAP, between PSAPs, and between a PSAP and first responders or their organizations, all within managed IP networks ๐Ÿ”ฅ. It is not for the open public Internet, because it can be trivially forged ๐Ÿ’€.

Now the vibe check on the difference between this and a regular emergency marking. Adding an RPH with the 'esnet' namespace is different from marking an emergency call with a service URN as defined in [RFC5031] ๐Ÿฆ‹. The RPH specifically asks for preferential treatment in networks that honor it. The service URN marking just identifies an emergency call and doesn't necessarily change the resources allocated to it. Using both is appropriate where it applies โœจ. An RPH with 'esnet' can also be used inside public safety networks for SIP sessions that aren't emergency calls, which means they aren't marked per RFC 5031 ๐Ÿ’œ.

This new namespace goes into SIP requests to give an explicit priority indication inside controlled environments ๐Ÿซถ. Think an IP Multimedia Subsystem (IMS) infrastructure or an Emergency Services network (ESInet). Misuse can be brought down to an acceptable level there because these networks have controls in place ๐Ÿ”’. The function allows different treatment of emergency SIP requests based on local policy, or more likely, a contractual agreement between the network organizations ๐Ÿค. The indication is only used to tell certain SIP requests, transactions, or dialogs apart from other ones that don't need priority treatment. If you've got separate SIP requests with different but still understandable and valid Resource-Priority header values, local policy can use this indication to decide which request, transaction, or dialog gets which treatment (likely better or worse than the others) ๐Ÿ‘‘.

Application Service Providers (ASPs) that are securely connected to an ESInet may have enough controls policing the header, plus a trust relationship with the entities inside the ESInet ๐Ÿงš. SIP requests from those ASPs could use the 'esnet' namespace for appropriate treatment when they're passed from the ASP to the ESInet ๐Ÿ’….

The 'esnet' namespace may also be used on calls from a PSAP, or another public safety agency on an ESInet, toward a private or public network, an ASP, or a User Agent ("call back") when priority is needed ๐Ÿ“ž. Again, the priority request is not for use on the public Internet, because the header is easy to forge ๐Ÿ™ˆ.

This document only creates the namespace, following the rules in [RFC4412] as updated by [RFC7134]. Those rules mean new RPH namespaces and their relative priority-value order have to be IETF reviewed before they get registered with IANA ๐Ÿ“œ.

Here's the spicy part. Inside emergency services networks, Multilevel Precedence and Preemption (MLPP)-like behavior might be achieved (probably without the "preemption" part), as long as local policy supports it ๐Ÿ”ฅ. For example, calls between law enforcement agents could be marked similarly to MLPP systems used by military networks, and some of those calls could get higher priority than an emergency call from an ordinary user ๐Ÿ‘‘. So the 'esnet' namespace gets five priority levels instead of just one ๐ŸŒˆ. This document doesn't define MLPP-like SIP signaling for emergency calls, like calls using emergency service numbers (such as 911, 112, and 999). But it isn't prevented either ๐Ÿฆ‹.

Inside the ESInet, there will be emergency calls that need different treatment depending on the type of call ๐Ÿ’–. Does a citizen's call to a PSAP need the same, a higher, or a lower relative priority than a PSAP's call to a police department or the police chief? What about either of those compared with a call from inside the ESInet to a national government's department responsible for public safety, disaster relief, national security/defense, and so on ๐Ÿ˜ญ? These are the reasons the 'esnet' namespace has multiple priority levels ๐Ÿ’œ.

This document doesn't define any of these behaviors. It just reminds readers that the rules of RFC 4412 apply, though examples of usage are included for completeness โœจ. It registers the 'esnet' RPH namespace with IANA for use within any emergency services networks, not just the ones carrying calls from citizens to PSAPs ๐Ÿซถ.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] ๐Ÿ“š.

That's the end of part 1, babe, the good stuff is coming up next! ๐ŸŒˆ๐Ÿ’…

2. Rules of Usage of the Resource Priority Header field ๐ŸŽ€

okay so bestie, this section is about how you're allowed to use the esnet namespace ๐Ÿ’…. It keeps the same treatment behaviors as the SIP Resource Priority header field from [RFC4412] when it's picking between options. The vibe is an ESInet, and inside one there's no "normal" or routine call level ๐Ÿ™ˆ. That's left for local jurisdictions to decide for their own parts of the ESInet, which could be little islands of local administration ๐Ÿ๏ธ.

The esnet namespace MUST only be used where at least one end of the signaling is inside a local emergency organization ๐Ÿšจ. Setting aside B2BUAs (Back-to-Back User Agents), if either the originating human caller's User Agent (UA) or the destination human callee's UA belongs to the local emergency organization, then using esnet is totally valid โœจ.

esnet has 5 priority-values in a specified relative priority order ๐Ÿ“ถ. It's registered as a queue-based namespace, following [RFC4412]. SIP entities that support preemption treatment (see Section 5 of [RFC4412]) can be configured according to local policy ๐Ÿ”ฅ. The display names for the esnet values can also be set according to local policy ๐Ÿ’œ.

Here's one example diagram of local policy choices when you're using esnet ๐Ÿฆ‹:

                                                 |<-'esnet' namespace->|
                                                 |        is used      |
   'esnet' namespace                             |        ,-------.
   usage out of scope                            |      ,'         `.
      |<------------>|<---'esnet' namespace ---->|     /             \
   +----+            |       can be used      +-----+ |    ESInet     |
   | UA |---         |    --------------------|Proxy|-+    ------     |
   +----+   \        |   /                    +-----+ |               |
             \  ,-------+           ,-------.    |    |   +------+    |
   +----+     ,'         `.       ,'         `.  |    |   |PSAP-1|    |
   | UA |--- /  User       \     / Application \ |    |   +------+    |
   +----+   (    Network    +---+    Service    )|    |               |
             \             /     \   Provider  / |    |   +------+    |
   +----+    /`.         ,'       `.         .+-----+ |   |PSAP-2|    |
   | UA |----   '-------'           '-------' |Proxy|-+   +------+    |
   +----+            |                        +-----+ |               |
                     |                           |    |               |
   +----+            |                        +-----+ |   +------+    |
   | UA |---         |    --------------------|Proxy|-+   |PSAP-3|    |
   +----+   \        |   /                    +-----+ |   +------+    |
             \  ,-------+           ,-------.    |    |               |
   +----+     ,'         `.       ,'         `.  |    |               |
   | UA |--- /  User       \     / Application \ |    |   +------+    |
   +----+   (    Network    +---+    Service    )|    |   |PSAP-4|    |
             \             /     \   Provider  / |    |   +------+    |
   +----+    /`.         ,'       `.         .+-----+ |               |
   | UA |----   '-------'           '-------' |Proxy|-+    ANY can    |
   +----+            |                        +-----+ |   xfer/call   |
                     |                           |     \    | | |    /
                                                        `.  | | |  ,'
                                                          '-|-|-|-'
                                                            | | |
                                     Police  <--------------+ | |
                                              Fire <----------+ |
                                        National Agency <-------+

        A Possible Network Architecture Using the 'esnet' Namespace

In that picture, esnet is used inside the ESInet on the right side ๐Ÿข. How it's specifically used is out of scope for this document, so local jurisdictions get to define it ๐Ÿ—บ๏ธ. Whether preemption is implemented in the ESInet, and what values the ESInet users see, is also out of scope ๐Ÿ™ƒ. Adjacent ASPs to the ESInet might have a trust relationship that lets neighboring ASP(s) use esnet to tell apart SIP requests and dialogs inside the ASP's own network ๐Ÿค. And the exact mapping between the internal and external sides of the edge proxy at the ESInet boundaries? Also out of scope for this doc ๐Ÿซถ.

3. "esnet" Namespace Definition ๐Ÿงš

esnet is not generic for all emergencies, because there are SO many kinds of emergencies ๐Ÿ˜ญ. Some are on a military scale ([RFC4412] defines 3 of these), some are on a national scale ([RFC4412] defines 2 of these), and some are international. Each type of emergency can also have its own namespace(s). There are already many defined for other uses, and more are possible ๐ŸŒˆ. So calling the public emergency service number (like 911, 112, or 999) to get police officers, firefighters, or emergency medical technicians (etc.) doesn't have a monopoly on the word "emergency" ๐Ÿ’€.

The name esnet was picked, roughly standing for "Emergency Services NETwork" ๐ŸŒธ. It's for a citizen's call for help from a public authority type of organization. This namespace will also be used for communications between emergency authorities, and it MAY be used by emergency authorities to call public citizens ๐Ÿ“ž. For example, a PSAP operator calling back someone who previously called an emergency service number (like 911, 112, or 999) and whose call ended before it, in the PSAP operator's judgment, should have ended ๐Ÿ™.

Here's an example of a Resource-Priority header field using esnet:

      Resource-Priority: esnet.0

3.1. Namespace Definition Rules and Guidelines ๐Ÿ“œ

This specification defines one unique namespace for emergency calling scenarios, esnet, and registers it with IANA ๐ŸŽ‰. That IANA registration contains the facets defined in Section 9 of [RFC4412].

3.2. The 'esnet' Namespace ๐Ÿ’–

Per the rules of [RFC4412], each namespace has a finite set of relative priority-value(s), listed from lowest priority to highest priority โฌ†๏ธ. To avoid limiting this namespace's future use, more than one priority-value is assigned to esnet ๐Ÿ”ฎ. This document does not recommend which Priority-value is used where, in which situation or scenario. That's for another document to specify ๐Ÿ“–. To be effective, the choice within a national jurisdiction needs to be coordinated by all sub-jurisdictions, so the SIP behavior stays uniform throughout an emergency calling system of that nation ๐Ÿ‡บ๐Ÿ‡ณ.

The relative priority order for esnet goes like this:

      (lowest)  esnet.0
                esnet.1
                esnet.2
                esnet.3
      (highest) esnet.4

esnet gets priority queuing registrations for these levels per Section 4.5.2 of [RFC4412] ๐Ÿšฆ. Even though no preemption is specified in this document for any level of esnet, local jurisdiction(s) MAY configure their SIP infrastructure to use this namespace with preemption, as defined in RFC 4412 โšก.

The remaining rules that came from RFC 4412 still apply to an RP actor who understands more than one namespace, and that actor must maintain its locally significant relative priority order ๐Ÿ‘‘.

4. IANA Considerations ๐Ÿ“‹

4.1. IANA Resource-Priority Namespace Registration ๐Ÿ—‚๏ธ

The following entry has been added to the "Resource-Priority Namespaces" registry of the sip-parameters section of IANA (created by [RFC4412]):

                                     Intended       New     New resp.
    Namespace  Levels   Algorithm     Code      warn-code   Reference
    ---------  ------  -----------  ---------   ---------   ---------
      esnet      5       queue         no          no       RFC 7135

4.2. IANA Priority-Value Registrations ๐ŸŽ€

The following entry has been added to the "Resource-Priority Priority-values" registry of the sip-parameters section of IANA:

    Namespace: esnet
    Reference: (this document)
    Priority-Values (least to greatest): "0", "1","2", "3", "4"

5. Security Considerations ๐Ÿ”

โš ๏ธ Serious business alert, bestie. Read this part carefully ๐Ÿ™.

The Security considerations that apply to RFC 4412 [RFC4412] apply here too ๐Ÿซถ.

For networks that act on the SIP Resource-Priority header field, using namespaces incorrectly can mean traffic that should get preferential treatment doesn't get it, and vice versa ๐Ÿ˜ฌ. This document does not define a use case where an endpoint outside the ESInet marks its call for preferential treatment. Precautions need to be taken to stop preferential treatment from being granted to unauthorized users who aren't calling for emergency help, even if they're inside the ESInet ๐Ÿšซ. Precautions also need to stop misuse by callers outside the ESInet ๐Ÿ›‘.

A simple way to prevent this is to not let traffic marked esnet get preferential treatment unless the destination is toward the local/regional ESInet ๐Ÿ—บ๏ธ. This isn't a concern for internetwork traffic inside the ESInet, or traffic generated outside it. Calling an emergency service number (like 911, 112, or 999) is pretty local in nature, with a finite number of URIs likely to be considered valid within a portion of a network receiving SIP signaling ๐Ÿ“.

This namespace is not meant for use on the Internet, because abuse is hard to detect. Specifically, it can trivially be forged and used on a non-emergency session to get resource priority ๐Ÿ˜ฑ. Some networks may decide that it can reasonably prevent abuse, and/or that the consequences of undetected abuse are not significant. In those cases, use of esnet on the Internet MAY be allowed ๐ŸŒ.

6. Acknowledgements ๐Ÿ’œ

Huge thanks to Ken Carlberg, Janet Gunn, Fred Baker, and Keith Drage for help and encouragement with this effort ๐Ÿฅฐ. Thanks to Henning Schulzrinne, Ted Hardie, Hannes Tschofenig, and Marc Linsner for constructive comments ๐Ÿ“. A big thanks to Robert Sparks for being patient with the author, and to Brian Rosen for completing the final edits ๐Ÿ‘.

7. Normative References ๐Ÿ“š

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

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

   [RFC5031]  Schulzrinne, H., "A Uniform Resource Name (URN) for
              Emergency and Other Well-Known Services", RFC 5031,
              January 2008.

   [RFC7134]  Rosen, B., "The Management Policy of the Resource Priority
              Header (RPH) Registry Changed to "IETF Review"", RFC 7134,
              March 2014.

Author's Address ๐Ÿฆ‹

   James Polk
   Cisco Systems
   3913 Treemont Circle
   Colleyville, TX  76034
   USA

   Phone: +1-817-271-3552
   EMail: jmpolk@cisco.com
๐Ÿ“ฆ where this page comes from