SIPPING B. Rosen Internet-Draft NeuStar, Inc. Intended status: Standards Track H. Schulzrinne Expires: January 3, 2008 Columbia U. H. Tschofenig Nokia Siemens Networks July 2, 2007 Session Initiation Protocol (SIP) Event Package for the Common Alerting Protocol (CAP) draft-rosen-sipping-cap-00.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on January 3, 2008. Copyright Notice Copyright (C) The IETF Trust (2007). Abstract The Common Alerting Protocol (CAP) is an XML document format for exchanging emergency alerts and public warnings. This document allows CAP documents to be distributed via the event notification mechanism available with the Session Initiation Protocol (SIP). Rosen, et al. Expires January 3, 2008 [Page 1] Internet-Draft SIP CAP July 2007 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. The 'common-alerting-protocol' Event Package . . . . . . . . . 3 3.1. Package Name . . . . . . . . . . . . . . . . . . . . . . . 3 3.2. Event Package Parameters . . . . . . . . . . . . . . . . . 4 3.3. SUBSCRIBE Bodies . . . . . . . . . . . . . . . . . . . . . 4 3.4. Subscription Duration . . . . . . . . . . . . . . . . . . 4 3.5. NOTIFY Bodies . . . . . . . . . . . . . . . . . . . . . . 4 3.6. Notifier Processing of SUBSCRIBE Requests . . . . . . . . 5 3.7. Notifier Generation of NOTIFY Requests . . . . . . . . . . 5 3.8. Subscriber Processing of NOTIFY Requests . . . . . . . . . 5 3.9. Handling of Forked Requests . . . . . . . . . . . . . . . 6 3.10. Rate of Notifications . . . . . . . . . . . . . . . . . . 6 3.11. State Agents . . . . . . . . . . . . . . . . . . . . . . . 6 3.12. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.13. Use of URIs to Retrieve State . . . . . . . . . . . . . . 6 3.14. PUBLISH Bodies . . . . . . . . . . . . . . . . . . . . . . 6 3.15. PUBLISH Response Bodies . . . . . . . . . . . . . . . . . 7 3.16. Multiple Sources for Event State . . . . . . . . . . . . . 7 3.17. Event State Segmentation . . . . . . . . . . . . . . . . . 7 3.18. Rate of Publication . . . . . . . . . . . . . . . . . . . 7 4. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 6. Known Open Issues . . . . . . . . . . . . . . . . . . . . . . 9 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 7.1. Registration of the 'common-alerting-protocol' Event Package . . . . . . . . . . . . . . . . . . . . . . . . . 9 7.2. Registration of the 'application/common-alerting-protocol+xml' MIME type . . . 9 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 9.1. Normative References . . . . . . . . . . . . . . . . . . . 10 9.2. Informative References . . . . . . . . . . . . . . . . . . 11 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 Intellectual Property and Copyright Statements . . . . . . . . . . 12 Rosen, et al. Expires January 3, 2008 [Page 2] Internet-Draft SIP CAP July 2007 1. Introduction The Common Alerting Protocol (CAP) [cap] is an XML document format for exchanging emergency alerts and public warnings. This document allows CAP documents to be distributed via the event notification mechanism available with the Session Initiation Protocol (SIP). 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. 3. The 'common-alerting-protocol' Event Package RFC 3265 [RFC3265] defines a SIP extension for subscribing to remote nodes and receiving notifications of changes (events) in their states. It leaves the definition of many aspects of these events to concrete extensions, known as event packages. This document defines such an event package. This section fills in the information required for all event packages by RFC 3265. Additionally, RFC 3903 [RFC3903] defines an extension that allows SIP User Agents to publish event state. According to RFC 3903, any event package intended to be used in conjunction with the SIP PUBLISH method has to include a considerations section. This section also fills the information for all event packages to be used with PUBLISH requests. We define a new "common-alerting-protocol" event package. Event Publication Agents (EPA) use PUBLISH requests to inform an Event State Compositor (ESC) of changes in the common-alerting-protocol event package. Acting as a notifier, the ESC notifies subscribers about emergency alerts and public warnings. 3.1. Package Name The name of this package is "common-alerting-protocol". As specified in RFC 3265 [RFC3265], this value appears in the Event header field present in SUBSCRIBE and NOTIFY requests. As specified in RFC 3903 [RFC3903], this value also appears in the Event header field present in PUBLISH requests. Rosen, et al. Expires January 3, 2008 [Page 3] Internet-Draft SIP CAP July 2007 3.2. Event Package Parameters RFC 3265 [RFC3265] allows event packages to define additional parameters carried in the Event header field. This event package, "common-alerting-protocol", does not define additional parameters. 3.3. SUBSCRIBE Bodies According to RFC 3265 [RFC3265], a SUBSCRIBE request can contain a body. The purpose of the body depends on its type. [Editor's Note: It is an open issue whether subscriptions to the "common-alerting-protocol" event package carry information in their body, such as a polygon defining an area for which notifications should be received. See Section 6.] 3.4. Subscription Duration The default expiration time for subscriptions within this package is 3600 seconds. As per RFC 3265 [RFC3265], the subscriber MAY specify an alternate expiration in the Expires header field. 3.5. NOTIFY Bodies As described in RFC 3265 [RFC3265], the NOTIFY message will contain bodies describing the state of the subscribed resource. This body is in a format listed in the Accept header field of the SUBSCRIBE request, or a package-specific default format if the Accept header field was omitted from the SUBSCRIBE request. In this event package, the body of the notification contains a Common Alerting Protocol (CAP) document, i.e., an XML document. The format of the XML documents used by CAP are described in [cap]. For an initial notify, unlike for other event packages, there is no current initial state, unless there's a pending alert. Hence, returning a NOTIFY with a non-empty body only makes sense if there are indeed active alerts. All subscribers and notifiers of the "common-alerting-protocol" event package MUST support the "application/common-alerting-protocol+xml" data format. The SUBSCRIBE request MAY contain an Accept header field. If no such header field is present, it has a default value of "application/common-alerting-protocol+xml" (assuming that the Event header field contains a value of "common-alerting-protocol"). If the Accept header field is present, it MUST include "application/ common-alerting-protocol+xml". Rosen, et al. Expires January 3, 2008 [Page 4] Internet-Draft SIP CAP July 2007 3.6. Notifier Processing of SUBSCRIBE Requests The contents of a CAP document contains public information. Hence, providing CAP documents may not require authorization by subscribers. 3.7. Notifier Generation of NOTIFY Requests RFC 3265 [RFC3265] details the formatting and structure of NOTIFY messages. However, packages are mandated to provide detailed information on when to send a NOTIFY, how to compute the state of the resource, how to generate neutral or fake state information, and whether state information is complete or partial. This section describes those details for the common-alerting-protocol event package. A notifier MAY send a NOTIFY at any time. Typically, it will send one when an alert or early warning message is available. The NOTIFY request contains a body containing one or multiple CAP document(s). The times at which the NOTIFY is sent for a particular subscriber, and the contents of the body within that notification, are subject to any rules specified by the authorization policy that governs the subscription. In the case of a pending subscription, when final authorization is determined, a NOTIFY can be sent. If the result of the authorization decision was success, a NOTIFY SHOULD be sent and SHOULD contain a complete CAP document. If the subscription is rejected, a NOTIFY MAY be sent. As described in RFC 3265 [RFC3265], the Subscription-State header field indicates the state of the subscription. The body of the NOTIFY MUST be sent using one of the types listed in the Accept header field in the most recent SUBSCRIBE request, or using the type "application/common-alerting-protocol+xml" if no Accept header field was present. Notifiers will typically act as Event State Compositors (ESC) and thus will learn the 'common-alerting-protocol' event state via PUBLISH requests sent from authorized Event Publication Agents (EPAs). 3.8. Subscriber Processing of NOTIFY Requests RFC 3265 [RFC3265] leaves it to event packages to describe the process followed by the subscriber upon receipt of a NOTIFY request, including any logic required to form a coherent resource state. Rosen, et al. Expires January 3, 2008 [Page 5] Internet-Draft SIP CAP July 2007 3.9. Handling of Forked Requests RFC 3265 [RFC3265] requires each package to describe handling of forked SUBSCRIBE requests. This specification only allows a single dialog to be constructed as a result of emitting an initial SUBSCRIBE request. 3.10. Rate of Notifications RFC 3265 [RFC3265] requires each package to specify the maximum rate at which notifications can be sent. Notifiers SHOULD NOT generate notifications for a single user at a rate of more than once every five seconds. 3.11. State Agents RFC 3265 [RFC3265] requires each package to consider the role of state agents in the package and, if they are used, to specify how authentication and authorization are done. This specification allows state agents to be located in the network. 3.12. Examples An example is provided in Section 4. 3.13. Use of URIs to Retrieve State RFC 3265 [RFC3265] allows packages to use URIs to retrieve large state documents. CAP documents are fairly small. This event package does not provide a mechanism to use URIs to retrieve large state documents. 3.14. PUBLISH Bodies RFC 3903 [RFC3903] requires event packages to define the content types expected in PUBLISH requests. In this event package, the body of a PUBLISH request may contain a CAP document. A CAP document describes an emergency alert or an early warning event. All EPAs and ESCs MUST support the "application/ common-alerting-protocol+xml" data format and MAY support other formats. Rosen, et al. Expires January 3, 2008 [Page 6] Internet-Draft SIP CAP July 2007 Note that this document does not mandate how CAP documents are made available to the Public Warning System, for example by authorities or similar organizations. The PUBLISH mechanism is one way. 3.15. PUBLISH Response Bodies This specification assumes that a PUBLISH also conveys a CAP document that is later sent further on to watchers. 3.16. Multiple Sources for Event State RFC 3903 [RFC3903] requires event packages to specify whether multiple sources can contribute to the event state view at the ESC. This event package allows different EPAs to publish CAP documents for a particular user. The concept of composition is not applicable for this application usage. 3.17. Event State Segmentation RFC 3903 [RFC3903] defines segments within a state document. Each segment is defined as one of potentially many identifiable sections in the published event state. This event package defines does not differentiate between different segments. 3.18. Rate of Publication RFC 3903 [RFC3903] allows event packages to define their own rate of publication. There are no rate-limiting recommendations for common-alerting- protocol publication. Since emergency alerts and early warning events are typically rare there is no periodicity, nor a minimum or maximum rate of publication. 4. Examples Here is an example of a CAP document. Rosen, et al. Expires January 3, 2008 [Page 7] Internet-Draft SIP CAP July 2007 KSTO1055887203 KSTO@NWS.NOAA.GOV 2003-06-17T14:57:00-07:00 Actual Alert Public Met SEVERE THUNDERSTORM Severe Likely same=SVR NATIONAL WEATHER SERVICE SACRAMENTO SEVERE THUNDERSTORM WARNING AT 254 PM PDT... NATIONAL WEATHER SERVICE DOPPLER RADAR INDICATED A SEVERE THUNDERSTORM OVER SOUTH CENTRAL ALPINE COUNTY... OR ABOUT 18 MILES SOUTHEAST OF KIRKWOOD... MOVING SOUTHWEST AT 5 MPH. HAIL... INTENSE RAIN AND STRONG DAMAGING WINDS ARE LIKELY WITH THIS STORM TAKE COVER IN A SUBSTANTIAL SHELTER UNTIL THE STORM PASSES BARUFFALDI/JUSKIE EXTREME NORTH CENTRAL TUOLUMNE COUNTY IN CALIFORNIA, EXTREME NORTHEASTERN CALAVERAS COUNTY IN CALIFORNIA, SOUTHWESTERN ALPINE COUNTY IN CALIFORNIA 38.47,-120.14 38.34,-119.95 38.52,-119.74 38.62,-119.89 38.47,-120.14 fips6=006109 fips6=006109 fips6=006103 Example for a Severe Thunderstorm Warning Rosen, et al. Expires January 3, 2008 [Page 8] Internet-Draft SIP CAP July 2007 5. Security Considerations [Editor's Note: A future version of this document will describe security considerations.] 6. Known Open Issues Frequently, alerting events are only of regional interest since they only have regional impact. For example: The public in NYC does not really need to be alerted about a wild fire at Lake Tahoe. One possible solution is the ability to allow SUBSCRIBE bodies to have a region description that describes the geographic region of interest, as a polygon. LoST may also play a role here, namely to get back a list of URLs where I can send the SUBSCRIBE requests to. There may be a need for urn:service:alerts service URN registry. 7. IANA Considerations 7.1. Registration of the 'common-alerting-protocol' Event Package This specification registers an event package, based on the registration procedures defined in RFC 3265 [RFC3265]. The following is the information required for such a registration: Package Name: common-alerting-protocol Package or Template-Package: This is a package. Published Document: RFC XXX [Replace by the RFC number of this specification]. Person to Contact: Hannes Tschofenig, Hannes.Tschofenig@nsn.com 7.2. Registration of the 'application/common-alerting-protocol+xml' MIME type To: ietf-types@iana.org Subject: Registration of MIME media type application/ common- alerting-protocol+xml MIME media type name: application MIME subtype name: common-alerting-protocol+xml Required parameters: (none) Optional parameters: charset; Indicates the character encoding of enclosed XML. Default is UTF-8 [RFC3629]. Rosen, et al. Expires January 3, 2008 [Page 9] Internet-Draft SIP CAP July 2007 Encoding considerations: Uses XML, which can employ 8-bit characters, depending on the character encoding used. See RFC 3023 [RFC3023], Section 3.2. Security considerations: This content type is designed to carry payloads of the Common Alerting Protocol (CAP). Interoperability considerations: This content type provides a way to convey CAP payloads. Published specification: RFC XXX [Replace by the RFC number of this specification]. Applications which use this media type: Applications that convey alerts and early warnings according to the CAP standard. Additional information: OASIS has published the Common Alerting Protocol at http://www.oasis-open.org/committees/ documents.php&wg_abbrev=emergency Person & email address to contact for further information: Hannes Tschofenig, Hannes.Tschofenig@nsn.com Intended usage: Limited use Author/Change controller: IETF SIPPING working group Other information: This media type is a specialization of application/xml RFC 3023 [RFC3023], and many of the considerations described there also apply to application/ common-alerting-protocol+xml. 8. Acknowledgments The authors would like to thank Cullen Jennings for supporting this work. 9. References 9.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", March 1997. [cap] Jones, E. and A. Botterell, "Common Alerting Protocol v. 1.1", October 2005. [RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific Event Notification", RFC 3265, June 2002. [RFC3903] Niemi, A., "Session Initiation Protocol (SIP) Extension for Event State Publication", RFC 3903, October 2004. [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001. Rosen, et al. Expires January 3, 2008 [Page 10] Internet-Draft SIP CAP July 2007 [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD 63, RFC 3629, November 2003. 9.2. Informative References Authors' Addresses Brian Rosen NeuStar, Inc. 470 Conrad Dr Mars, PA 16046 US Phone: Email: br@brianrosen.net Henning Schulzrinne Columbia University Department of Computer Science 450 Computer Science Building New York, NY 10027 US Phone: +1 212 939 7004 Email: hgs+ecrit@cs.columbia.edu URI: http://www.cs.columbia.edu Hannes Tschofenig Nokia Siemens Networks Otto-Hahn-Ring 6 Munich, Bavaria 81739 Germany Email: Hannes.Tschofenig@nsn.com URI: http://www.tschofenig.com Rosen, et al. Expires January 3, 2008 [Page 11] Internet-Draft SIP CAP July 2007 Full Copyright Statement Copyright (C) The IETF Trust (2007). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). Rosen, et al. Expires January 3, 2008 [Page 12]