One document matched: draft-rosen-sipping-cap-01.xml


<?xml version="1.0" encoding="US-ASCII"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="no"?>
<?rfc iprnotified="no" ?>
<?rfc strict="no" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="yes" ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC3265 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3265.xml">
<!ENTITY RFC3903 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3903.xml">
<!ENTITY RFC3023 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3023.xml">
<!ENTITY RFC3629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3629.xml">
]>
<rfc category="std" docName="draft-rosen-sipping-cap-01.txt" ipr="full3978">
  <front>
    <title abbrev="SIP CAP"> Session Initiation Protocol (SIP) Event Package for the Common Alerting
      Protocol (CAP)</title>
    <author initials="B." surname="Rosen" fullname="Brian Rosen">
      <organization>NeuStar, Inc. </organization>
      <address>
        <postal>
          <street>470 Conrad Dr</street>
          <city>Mars</city>
          <region> PA </region>
          <code>16046 </code>
          <country>US </country>
        </postal>
        <phone> </phone>
        <email>br@brianrosen.net
        </email>
      </address>
    </author>
    <author initials="H." surname="Schulzrinne" fullname="Henning Schulzrinne">
      <organization abbrev="Columbia U.">Columbia University</organization>
      <address>
        <postal>
          <street>Department of Computer Science</street>
          <street>450 Computer Science Building</street>
          <city>New York</city>
          <region>NY</region>
          <code>10027</code>
          <country>US</country>
        </postal>
        <phone>+1 212 939 7004</phone>
        <email>hgs+ecrit@cs.columbia.edu</email>
        <uri>http://www.cs.columbia.edu</uri>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization>Nokia Siemens Networks</organization>
      <address>
        <postal>
          <street>Linnoitustie 6</street>
          <city>Espoo</city>
          <code>02600</code>
          <country>Finland</country>
        </postal>
        <phone>+358 (50) 4871445</phone>
        <email>Hannes.Tschofenig@nsn.com</email>
        <uri>http://www.tschofenig.priv.at</uri>
      </address>
    </author>
    <date year="2008"/>
    <area>Internet</area>
    <workgroup>SIPPING</workgroup>
    <keyword>Internet-Draft</keyword>
    <keyword>CAP</keyword>
    <keyword>Common Alerting Protocol</keyword>

    <abstract>
      <t>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). </t>
    </abstract>
  </front>

  <middle>
    <!-- ////////////////////////////////////////////////////////////////////////////////// -->

    <section anchor="introduction" title="Introduction">

      <t> The Common Alerting Protocol (CAP) <xref target="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). </t>

    </section>

    <!-- ////////////////////////////////////////////////////////////////////////////////// -->

    <section anchor="terminology" title="Terminology">

      <t>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 <xref target="RFC2119"/>.</t>

    </section>


    <!-- ////////////////////////////////////////////////////////////////////////////////// -->


    <section title="The 'common-alerting-protocol' Event Package">

      <t>RFC 3265 <xref target="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. </t>

      <t> Additionally, RFC 3903 <xref target="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. </t>
      <t> 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. </t>

      <section title="Package Name">

        <t> The name of this package is "common-alerting-protocol". As specified in RFC 3265 <xref
            target="RFC3265"/>, this value appears in the Event header field present in SUBSCRIBE
          and NOTIFY requests. As specified in RFC 3903 <xref target="RFC3903"/>, this value also
          appears in the Event header field present in PUBLISH requests. </t>

      </section>
      <section title="Event Package Parameters">
        <t> RFC 3265 <xref target="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. </t>
      </section>
      <section title="SUBSCRIBE Bodies">
        <t> According to RFC 3265 <xref target="RFC3265"/>, a SUBSCRIBE request can contain a body.
          The purpose of the body depends on its type. </t>
        <t>[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 <xref
            target="open-issue"/>.] </t>
      </section>

      <section title="Subscription Duration">

        <t>The default expiration time for subscriptions within this package is 3600 seconds. As per
          RFC 3265 <xref target="RFC3265"/>, the subscriber MAY specify an alternate expiration in
          the Expires header field. </t>

      </section>
      <section title="NOTIFY Bodies">

        <t> As described in RFC 3265 <xref target="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. </t>
        <t> 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 <xref target="cap"/>. </t>
        <t>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.</t>
        <t> 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". </t>

      </section>
      <section title="Notifier Processing of SUBSCRIBE Requests">

        <t> The contents of a CAP document contains public information. Hence, providing CAP
          documents may not require authorization by subscribers. </t>

      </section>
      <section title="Notifier Generation of NOTIFY Requests">
        <t> RFC 3265 <xref target="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. </t>
        <t> 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. </t>
        <t> 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 <xref target="RFC3265"/>, the Subscription-State
          header field indicates the state of the subscription. </t>
        <t>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.</t>

        <t> 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). </t>
      </section>
      <section title="Subscriber Processing of NOTIFY Requests">
        <t> RFC 3265 <xref target="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. </t>
      </section>

      <section title="Handling of Forked Requests">
        <t> RFC 3265 <xref target="RFC3265"/> requires each package to describe handling of forked
          SUBSCRIBE requests. </t>
        <t> This specification only allows a single dialog to be constructed as a result of emitting
          an initial SUBSCRIBE request. </t>
      </section>
      <section title="Rate of Notifications">
        <t> RFC 3265 <xref target="RFC3265"/> requires each package to specify the maximum rate at
          which notifications can be sent. </t>
        <t> Notifiers SHOULD NOT generate notifications for a single user at a rate of more than
          once every five seconds. </t>
      </section>

      <section title="State Agents">
        <t> RFC 3265 <xref target="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.</t>
      </section>
      <section title="Examples">

        <t>An example is provided in <xref target="example"/>. </t>
      </section>
      <section title="Use of URIs to Retrieve State">

        <t> RFC 3265 <xref target="RFC3265"/> allows packages to use URIs to retrieve large state
          documents. </t>
        <t> CAP documents are fairly small. This event package does not provide a mechanism to use
          URIs to retrieve large state documents. </t>
      </section>
      <section title="PUBLISH Bodies">

        <t>RFC 3903 <xref target="RFC3903"/> requires event packages to define the content types
          expected in PUBLISH requests. </t>
        <t> 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. </t>
        <t> All EPAs and ESCs MUST support the "application/common-alerting-protocol+xml" data
          format and MAY support other formats. </t>
        <t>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.</t>
      </section>
      <section title="PUBLISH Response Bodies">

        <t> This specification assumes that a PUBLISH also conveys a CAP document that is later sent
          further on to watchers. </t>

      </section>
      <section title="Multiple Sources for Event State">

        <t> RFC 3903 <xref target="RFC3903"/> requires event packages to specify whether multiple
          sources can contribute to the event state view at the ESC. </t>

        <t> 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.</t>

      </section>

      <section title="Event State Segmentation">
        <t> RFC 3903 <xref target="RFC3903"/> defines segments within a state document. Each segment
          is defined as one of potentially many identifiable sections in the published event state. </t>
        <t> This event package defines does not differentiate between different segments. </t>

      </section>
      <section title="Rate of Publication">
        <t> RFC 3903 <xref target="RFC3903"/> allows event packages to define their own rate of
          publication. </t>
        <t> 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. </t>
      </section>
    </section>

    <!-- ////////////////////////////////////////////////////////////////////////////////// -->

    <section anchor="example" title="Examples">

      <t>Here is an example of a CAP document.</t>

      <figure title="Example for a Severe Thunderstorm Warning">
        <artwork>
          <![CDATA[
<?xml version="1.0" encoding="UTF-8"?>

<alert xmlns="urn:oasis:names:tc:emergency:cap:1.1">
    <identifier>KSTO1055887203</identifier>
    <sender>KSTO@NWS.NOAA.GOV</sender>
    <sent>2003-06-17T14:57:00-07:00</sent>
    <status>Actual</status>
    <msgType>Alert</msgType>
    <scope>Public</scope>
    <info>
        <category>Met</category>
        <event>SEVERE THUNDERSTORM</event>
        <urgency>Severe</urgency>
        <certainty>Likely</certainty>
        <eventCode>same=SVR</eventCode>
        <senderName>NATIONAL WEATHER SERVICE SACRAMENTO</senderName>
        <headline>SEVERE THUNDERSTORM WARNING</headline>
        <description> 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 </description>
        <instruction> TAKE COVER IN A SUBSTANTIAL SHELTER 
            UNTIL THE STORM PASSES </instruction>
        <contact>BARUFFALDI/JUSKIE</contact>
        <area>
            <areaDesc> EXTREME NORTH CENTRAL TUOLUMNE COUNTY 
                IN CALIFORNIA, EXTREME NORTHEASTERN
                CALAVERAS COUNTY IN CALIFORNIA, SOUTHWESTERN 
                ALPINE COUNTY IN CALIFORNIA </areaDesc>
            <polygon> 38.47,-120.14 38.34,-119.95 38.52,-119.74 
                38.62,-119.89 38.47,-120.14 </polygon>
            <geocode>fips6=006109</geocode>
            <geocode>fips6=006109</geocode>
            <geocode>fips6=006103</geocode>
        </area>
    </info>
</alert>
          ]]></artwork>
      </figure>
    </section>


    <!-- ////////////////////////////////////////////////////////////////////////////////// -->

    <section title="Security Considerations">
      <t>[Editor's Note: A future version of this document will describe security
      considerations.]</t>
    </section>


    <!-- ////////////////////////////////////////////////////////////////////////////////// -->
    <section anchor="open-issue" title="Known Open Issues">

      <t>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. </t>
      <t> 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. </t>
    </section>


    <!-- ////////////////////////////////////////////////////////////////////////////////// -->

    <section title="IANA Considerations">

      <section title="Registration of the 'common-alerting-protocol' Event Package">
        <t> This specification registers an event package, based on the registration procedures
          defined in RFC 3265 <xref target="RFC3265"/>. The following is the information required
          for such a registration: <list style="hanging">
            <t hangText="Package Name:"> common-alerting-protocol </t>
            <t hangText="Package or Template-Package:"> This is a package. </t>
            <t hangText="Published Document:"> RFC XXX [Replace by the RFC number of this
              specification]. </t>
            <t hangText="Person to Contact:"> Hannes Tschofenig, Hannes.Tschofenig@nsn.com</t>
          </list>
        </t>
      </section>
      <section title="Registration of the 'application/common-alerting-protocol+xml' MIME type">
        <t>
          <list style="hanging">
            <t hangText="To:"> ietf-types@iana.org </t>
            <t hangText="Subject:">Registration of MIME media type application/
              common-alerting-protocol+xml</t>
            <t hangText="MIME media type name:"> application </t>

            <t hangText="MIME subtype name:">common-alerting-protocol+xml </t>
            <t hangText="Required parameters:"> (none) </t>
            <t hangText="Optional parameters:"> charset; Indicates the character encoding of
              enclosed XML. Default is UTF-8 <xref target="RFC3629"/>.</t>

            <t hangText="Encoding considerations:"> Uses XML, which can employ 8-bit characters,
              depending on the character encoding used. See RFC 3023 <xref target="RFC3023"/>,
              Section 3.2.</t>
            <t hangText="Security considerations:"> This content type is designed to carry payloads
              of the Common Alerting Protocol (CAP). </t>
            <t hangText="Interoperability considerations:"> This content type provides a way to
              convey CAP payloads. </t>

            <t hangText="Published specification:"> RFC XXX [Replace by the RFC number of this
              specification]. </t>
            <t hangText="Applications which use this media type:"> Applications that convey alerts
              and early warnings according to the CAP standard.</t>
            <t hangText="Additional information:"> OASIS has published the Common Alerting Protocol
              at http://www.oasis-open.org/committees/documents.php&wg_abbrev=emergency </t>

            <t hangText="Person & email address to contact for further information:"> Hannes
              Tschofenig, Hannes.Tschofenig@nsn.com </t>
            <t hangText="Intended usage:"> Limited use </t>
            <t hangText="Author/Change controller:"> IETF SIPPING working group </t>
            <t hangText="Other information:"> This media type is a specialization of application/xml
              RFC 3023 <xref target="RFC3023"/>, and many of the considerations described there also
              apply to application/common-alerting-protocol+xml. </t>
          </list>
        </t>
      </section>
    </section>

    <!-- ////////////////////////////////////////////////////////////////////////////////// -->

    <section title="Acknowledgments">
      <t>The authors would like to thank Cullen Jennings for supporting this work. We would also like to thank the participants of the Early Warning Adhoc meeting at IETF#69.</t>
    </section>

    <!-- ////////////////////////////////////////////////////////////////////////////////// -->
  </middle>

  <!-- ////////////////////////////////////////////////////////////////////////////////// -->

  <back>
    <references title="Normative References">
      <reference anchor="RFC2119">
        <front>
          <title abbrev="RFC Key Words">Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="Scott Bradner" initials="S." surname="Bradner">
            <organization>Harvard University</organization>
          </author>
          <date month="March" year="1997"/>
        </front>
        <format octets="4723" target="ftp://ftp.isi.edu/in-notes/rfc2119.txt" type="TXT"/>
      </reference>
      <reference anchor="cap">
        <front>
          <title>Common Alerting Protocol v. 1.1 </title>
          <author fullname="Elysa Jones" initials="E." surname="Jones">
            <organization>Warning Systems, Inc</organization>
          </author>
          <author fullname="Art Botterell" initials="A." surname="Botterell">
            <organization>Individual</organization>
          </author>
          <date month="October" year="2005"/>
        </front>
        <format
          target="http://www.oasis-open.org/apps/org/workgroup/emergency/download.php/14205/emergency-CAPv1.1-Committee%20Specification.pdf"
          type="PDF"/>
      </reference> &RFC3265; &RFC3903; &RFC3023; &RFC3629; </references>

    <references title="Informative References"> </references>
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-21 00:05:03