<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "reference.RFC.2119.xml">
<!ENTITY RFC5627 SYSTEM "reference.RFC.5627.xml">
<!ENTITY RFC6665 SYSTEM "reference.RFC.6665.xml">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc sortrefs="yes" ?>
<?rfc tocdepth="4"?>

<rfc number="7621" category="std" consensus="yes" submissionType="IETF"
     updates="6665"
     ipr="trust200902">
  <front>

    <title abbrev="SIP Events GRUU Clarification">
      A Clarification on the Use of
      Globally Routable User Agent URIs (GRUUs)
      in the SIP
      Event Notification Framework
    </title>


    <author fullname="Adam Roach" initials="A.B." surname="Roach">
      <organization>Mozilla</organization>
      <address>
        <postal>
          <street></street>
          <city>Dallas</city>
          <region>TX</region>
          <code></code>
          <country>United States</country>
        </postal>
        <phone>+1 650 903 0800 x863</phone>
        <email>adam@nostrum.com</email>
      </address>
    </author>

    <date month="August" year="2015" />

    <area>RAI</area>

    <abstract>

      <t>
        Experience since the publication of the most recent SIP
        Events framework (in July 2012) has shown that there is room for
        interpretation around the use of Globally Routable User
        Agent URIs in that specification. This document clarifies
        the intended behavior.
      </t>
      <t>
        This document updates RFC 6665.
      </t>
    </abstract>
  </front>

  <middle>

    <section title="Introduction">
    <t>This document is intended to clarify a point of implementor confusion
    arising from lack of clarity in <xref target="RFC6665"/>.  </t>
    </section>
    <section title="Clarification of GRUU Handling">
      <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
        <xref target="RFC2119"/>.
      </t>
      <t>
        Section 4.5.1 of <xref target='RFC6665'/> contains the following
        normative requirement on implementations:
        <list style='hanging'><t>
   Notifiers MUST implement the Globally Routable User Agent URI (GRUU)
   extension defined in <xref target='RFC5627'/>, and MUST use a GRUU as their local
   target.  This allows subscribers to explicitly target desired
   devices.
        </t></list>
        The second sentence of this paragraph attempted to set
        context for the normative statement: the reason GRUUs are
        required in this context is to allow you to send SUBSCRIBE or
        REFER requests to a specific user agent, with the target of
        the subscription request being something like an INVITE
        dialog on that device. Consequently, the requirement to
        include a GRUU as a local target was intended to apply not just to the
        local target for SUBSCRIBE-created dialogs, but to *all*
        dialogs, even those created by INVITE.
        This requirement has been interpreted in a variety
        of ways by implementors, so a clarification is in order.
      </t>
      <t>
        Discussion subsequent to the publication of
        <xref target='RFC6665'/> has highlighted obscure cases in
        which implementations might be notifiers in some contexts,
        but may not wish to act as notifiers in others.
        Under these narrow circumstances, the restriction described
        above is not necessary for dialogs about which the notifier
        will never accept subscriptions (although the use of GRUUs
        in such a context causes no harm, either).
      </t>
      <t>
        This document updates <xref target='RFC6665'/> to clarify the
        actual requirements. The replacement text is as follows:
<list><t>
Notifiers MUST implement the Globally
        Routable User Agent URI (GRUU) extension defined in
        <xref target='RFC5627'/>. Notifiers MUST use a GRUU as their
        local target for all dialog-forming methods and all
        target-refresh methods, except for those dialogs for which
        they will reject all subscription requests (implicit or
        explicit). For clarity: an implementation that uses a
        non-GRUU local contact under the exception described above
        MUST reject a request that might create a subscription
        to the associated dialog, regardless of whether such
        subscription would be created by a SUBSCRIBE or a REFER
        message. The rejection code under such conditions SHOULD
        be 403 (Forbidden) unless some other code is more appropriate
        to the circumstances. The foregoing requirements to
        implement and use GRUUs specifically include dialogs created
        by the INVITE method.
      </t></list>
      </t>
    </section>

    <section anchor="sec.security" title="Security Considerations">
      <t>
        This mechanism does not introduce any security issues
        beyond those discussed in <xref target="RFC6665"/>.
      </t>
    </section>

    <section anchor="sec.iana" title="IANA Considerations">
      <t>
        This document requests no actions of IANA.
      </t>
    </section>

  </middle>

  <back>
    <references title="Normative References">
      &RFC2119;
      &RFC5627;
      &RFC6665;
    </references>

  </back>
</rfc>
