<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-alexeitsev-bliss-alert-info-urns-01"
     ipr="full3978">
  <front>
    <title abbrev="Alert-Info URNs">Alert-Info header URNs for Session
    Initiation Protocol (SIP)</title>

    <author fullname="Denis Alexeitsev" initials="" surname="Denis Alexeitsev">
      <organization>Deutsche Telekom AG</organization>

      <address>
        <postal>
          <street>Heinrich-Hertz Str 3-7</street>

          <city>Darmstadt</city>

          <code>64293</code>

          <region>Hessen</region>

          <country>Germany</country>
        </postal>

        <phone>+49-6151-6282773</phone>

        <email>d.alexeitsev@telekom.de</email>
      </address>
    </author>

    <date day="2" month="September" year="2008" />

    <area>Routing Area</area>

    <workgroup>BLISS</workgroup>

    <keyword>SIP</keyword>

    <keyword>Alert-Info</keyword>

    <keyword>URN</keyword>

    <abstract>
      <t>The Session Initiation Protocol (SIP) supports the capability to
      provide a reference to the alternative ringback tone (RBT) for caller,
      or ring tone (RT) for callee using the Alert-Info header. However, the
      reference addresses only the network resources with specific rendering
      properties. There is currently no support for predefined standard
      identifiers for ringback tones or semantic indications without tied
      rendering. To overcome this limitations and support new applications a
      family of the URNs is defined in this specification.</t>
    </abstract>

    <note title="Requirements Language">
      <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">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>The Session Initiation Protocol (SIP) <xref target="RFC3261"></xref>
      allows for user agent servers (UAS) and proxies to provide the specific
      ringback or ring tone to the user agent (UA). In RFC 3261 this is done
      by including a URI reference in the Alert-Info header field, that points
      to the tone. The URI reference is most commonly the HTTP URI to the
      audio file. On the receipt of the Alert-Info header the user agent may
      fetch the referenced ringback or ring tone and play it to the user.
      Current solution is sufficient for human users that share the same
      understanding of the tones. However if caller and callee are from the
      different countries the understanding of the tones may vary
      significantly. Hearing impaired users may not sense the specific tone if
      it is provided as an audio file. The tone per se is also not useful for
      automata. Another limitation of the current solution is that the
      referenced tones are tied to particular rendering. It is not possible to
      provide a semantic indication that signals the intent and allows the
      recipient to decide how to render the received information in an
      appropriate way.</t>

      <t>To solve the described issues and support new applications this
      specification defines the new URN namespace 'alert' for the Alert-Info
      header that can be understood by an automaton, would allow for
      programmatic handling, including user interface adaptation, or
      conversion to equivalent protocol parameters in the Public Switched
      Telephone Network (PSTN) when the client is a gateway.</t>

      <t>Using 'alert' namespace provides syntax for several different
      application spaces:<list style="symbols">
          <t>Names for services like "call is a waiting call", not tied to any
          particular rendering.</t>

          <t>Names for standard tones, such as those used by the PSTN. For
          instance there could be names for all the various country-specific
          ring and ringback tones</t>

          <t>Names for things with specific renderings that aren't purely
          audio. They might be static icons, video sequences, text, etc.</t>
        </list></t>

      <t>Some advantages of a URN rather than a net reference to a
      downloadable resource:</t>

      <t><list>
          <t>no need to download it</t>

          <t>you don't have to worry if you support the format downloaded</t>

          <t>there is no "danger" that you might end up rendering something
          unexpected and undesirable</t>

          <t>you can render as high (or low) quality as your device can
          use</t>
        </list>The downside is that if the recipient does not understand the
      URN then it won't be able to render anything. To provide the general
      awareness about the Alert-Info URNs this document provides IANA template
      for registering the URNs and defines several typical identifiers.</t>
    </section>

    <section title="Server Behavior ">
      <t>A server MAY add a URN or multiple URNs to the Alert-Info header in
      an appropriate SIP message when it needs to provide additional
      information about the status of the user. A server SHOULD NOT add a
      mixture of the 'alert' URNs and URIs to the Alert-Info header that may
      cause disturbing rendering interference at the recepient's UA.</t>

      <t>Following example shows both the network audio resource referenced by
      the HTTP URI and the URN indication for the call-waiting service
      transported by the Alert-Info header in a 183 Session Progress
      provisional response.</t>

      <t><figure>
          <artwork><![CDATA[   Alert-Info: <http://www.example.com/sound/moo.wav>, 
   <urn:alert:service:call-waiting>
]]></artwork>
        </figure></t>
    </section>

    <section title="User Agent Client Behavior">
      <t>Upon receiving a SIP message with an Alert-Info header that contains
      a single or multiple 'alert' URNs, the User Agent (UA) attempts to match
      the received URNs with the known indications.</t>

      <t>If no match is found, the UA ignores the received 'alert' URNs and
      proceed with normal operation.</t>

      <t>If the one or multiple URNs matches a known indication the UAC
      renders the indication(s) to the user according to the type of
      indication. The UA is responsible for the non disturbing rendering if
      multiple indications and network resources are to be rendered
      simultaneously.</t>
    </section>

    <section title="Use cases">
      <t>This section describes the use cases that are supported by the
      'alert' URNs.</t>

      <section title="Call is a waiting call">
        <t>The call waiting Service <xref target="TS24.615"></xref> permits a
        callee to be notified of an incoming call whilst the media resources
        are not available for the incoming call and the callee is engaged in
        an active or held call. Subsequently, the callee can either accept,
        reject, or ignore the incoming call. There is an interest on the
        caller side to be informed about the call waiting situation on the
        callee side. Having this information the caller can decide whether to
        continue waiting for callee to pickup, or better to call some time
        later when it is estimated, that the callee could finished the ongoing
        conversation. To provide this information callee's UAS or proxy aware
        of the call waiting condition can add the call-waiting indication URN
        to the Alert-Info header.</t>

        <t>As call-waiting information may be subject to the callee's privacy
        concerns, the exposure of this information SHALL be done only if
        explicitly required by the user</t>
      </section>
    </section>

    <section title="Registration template">
      <t>Below is the registration template for the 'alert' URN scheme
      according to the <xref target="RFC3406">RFC 3406</xref></t>

      <t>Namespace ID: alert</t>

      <t>Registration Information:</t>

      <t>Registration version: 1</t>

      <t>Registration date: 2008-08-14</t>

      <t>Declared registrant of the namespace:</t>

      <t>Registering organization: IETF</t>

      <t>Designated contact: Denis Alexeitsev</t>

      <t>Designated contact email: d.alexeitsev@telekom.de</t>

      <t>Declaration of syntactic structure:</t>

      <t>The URN consists of a hierarchical alert indication identifier, with
      a sequence of labels separated by periods. The left-most label is the
      most significant one and is called 'top-level alert indication', while
      names to the right are called 'alert indication'. The set of allowable
      characters is the same as that for domain names <xref
      target="RFC1123"></xref>. Labels are case-insensitive, but MUST be
      specified in all lower-case. </t>

      <t>Some 'alert' URNs, indication- identifiers can be removed
      right-to-left; the resulting URN is still valid, referring to a more
      generic indication. In other words, if an indication 'x.y.z' exists, the
      URNs 'x' and 'x.y' are also valid 'alert' URNs. Each alert indication
      identifier SHALL explicitly define it's validity respective the
      sub-indications. </t>

      <t></t>

      <t> The ABNF <xref target="RFC4234"></xref> is shown below.</t>

      <t><figure>
          <artwork><![CDATA[     alert-URN       = "URN:alert:" indication
     indication      = top-level *("." sub-indication)
     top-level       = let-dig [ *25let-dig-hyp let-dig ]
     sub-indication  = let-dig [ *let-dig-hyp let-dig ]
     let-dig-hyp     = let-dig / "-"
     let-dig         = ALPHA / DIGIT
     ALPHA           = %x41-5A / %x61-7A   ; A-Z / a-z
     DIGIT           = %x30-39 ; 0-9

]]></artwork>
        </figure></t>

      <t>Relevant ancillary documentation: None</t>

      <t>Community considerations: The alert URN is believed to be relevant to
      a large cross-section of Internet users, including both technical and
      non-technical users, on a variety of devices and with a variety of
      perception capabilities. The 'alert' URN will allow Internet users to
      better understand the status of the callee in the foreign country, or
      better understand if the callee is able to answer the call. For example,
      specific ringback tone from the foreign country can be rendered by the
      user interface in the familiar way to the user. Call is a waiting call
      indication meaning that the callee is occupied with the different
      session can be provided to the caller that would help to better assert
      the answer probability. User interfaces for the perception impaired
      users can better render the ringback indication based on the 'alert'
      URN. The assignment of identifiers is described in the IANA
      Considerations (<xref target="IANA"></xref>). The 'alert' URN does not
      prescribe a particular resolution mechanism, but it is assumed that a
      number of different entities could operate and offer such
      mechanisms.</t>

      <t>Namespace considerations: There do not appear to be other URN
      namespaces that serve the same need of uniquely identifying 'alert'
      communication and information services.</t>

      <t>Identifier uniqueness considerations: An 'alert' URN identifies a
      logical service or tone, specified in the 'alert' indication
      registration (see IANA Considerations (<xref target="IANA"></xref>)).
      Resolution of the registered URN, will return a particular instance of
      the alert indication. Alert indication URNs MUST be unique for each
      unique indication; this is guaranteed through the registration of each
      alert indication within this namespace, described in (<xref
      target="IANA"></xref>).</t>

      <t>Identifier persistence considerations: The 'alert' URN for the same
      indication is expected to be persistent, as long as it is registered
      with IANA.</t>

      <t>Process of identifier assignment: The process of identifier
      assignment is described in the IANA Considerations (<xref
      target="IANA"></xref>).</t>

      <t>Process for identifier resolution: 'alert' URNs are statically
      resolved according to the IANA registry.</t>

      <t>Rules for lexical equivalence: 'alert' URNs are compared according to
      case-insensitive string equality.</t>

      <t>Conformance with URN syntax: The BNF in the 'Declaration of syntactic
      structure' above constrains the syntax for this URN scheme.</t>

      <t>Validation mechanism: Validation determines whether a given string is
      currently a validly-assigned URN <xref target="RFC3406"></xref>. Static
      validation is performed based on the currently registered 'alert' URNs
      at IANA.</t>

      <t>Scope: The scope for this URN is public and global.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This section registers a new URN scheme with the registration
      template provided in section Registration Template.</t>

      <t>Below, the section 7.1 details how to register new alert indication
      identifying labels. Descriptions of sub-indications for the first two
      indications to be registered, service and tone, are given in Section 7.2
      and Section 7.3, respectively. Finally, Section 7.4 contains the initial
      registration table.</t>

      <section title="New Indication identifying lables">
        <t>Indications and sub-indications are identified by labels managed by
        IANA, according to the processes outlined in <xref
        target="RFC2434"></xref> in a new registry called "Alert URN Labels".
        Thus, creating a new indication requires IANA action. The policy for
        adding top-level indication labels is 'Standards Action'. (This
        document defines the top-level indication labels 'service' and
        'tone'.) The policy for assigning labels to sub-indications may differ
        for each top-level indication designation and MUST be defined by the
        document describing the top-level indication.</t>

        <t>Entries in the registration table have the following format:</t>

        <t><figure>
            <artwork><![CDATA[   Indication  Reference  Description
   --------------------------------------------------------------------
   foo         RFCxyz     Description of the 'foo' top-level indication
   foo.bar     RFCabc     Description of the 'foo.bar' sub-indication]]></artwork>
          </figure></t>

        <t>Each top-level or sub-indication label MUST NOT exceed 27
        characters.</t>
      </section>

      <section title="Top-level indications">
        <t>This section defines the indication registration within the IANA
        registry defined in Section 7.1, using the top-level indication labels
        'service' and 'tone'.</t>

        <t>The 'service' indication label provides information about
        additional services performed on the callee side. Sub-indications of
        the 'service' indication are not tied to any particular rendering and
        signal the service invocation, that allows the recipient to decide on
        the best way to render this indication.</t>

        <t>Validity of the 'service' top-level indication: this indication is
        not valid without respective sub-indications.</t>

        <t>The 'tone' indication label describes tones that should be rendered
        to the caller. The normal rendering is audio, however there can be
        other renderings applicable if needed by the user interface
        specifics.</t>

        <t>Validity of the 'tone' top-level indication: this indication is not
        valid without respective sub-indications.</t>
      </section>

      <section title="Sub-Indications for the 'service' Indication">
        <t>This section defines the indication registration within the IANA
        registry defined in Section 7.1, using the sub-indication label
        'service:call-waiting'.</t>

        <t>urn:alert:service:call-waiting indication provides information to
        the caller about the call-waiting situation on the callee side.
        Call-waiting situation for the callee means that very limited
        resources are available for an incoming communication. The callee
        normally has the choice of accepting, rejecting or ignoring the
        waiting call.</t>

        <t>Validity of the 'service:call-waiting' sub-indication: this
        indication is valid without respective sub-indications</t>
      </section>

      <section title="Sub-Indications for the 'tone' Indication">
        <t>This section defines the indication registration within the IANA
        registry defined in Section 7.1, using the sub-indication label
        'tone.xyz'.</t>

        <t><cref>Input on the 'tone' sub-indication is requested.</cref></t>

        <t>urn:alert:tone:xyz</t>
      </section>

      <section title="Initial IANA Registration">
        <t>The following table contains the initial IANA registration for
        service and tone indications.</t>

        <t><figure>
            <artwork><![CDATA[   Indication             Reference  Description            
   --------------------------------------------------------
   service                RFC XYZ    Invoked services          
   service.call-waiting   RFC XYZ    Call-waiting service   

   tone                   RFC XYZ    Ringback tones         
   tone.xyz               RFC XYZ    XYZ tone]]></artwork>
          </figure></t>

        <t></t>
      </section>
    </section>

    <section title="Internationalization Considerations ">
      <t>The indication labels are protocol elements <xref
      target="RFC3536"></xref> and are not normally seen by users. Thus, the
      character set for these elements is restricted, as described in Section
      6.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>As an identifier, the alert indication URN does not appear to raise
      any particular security issues. The indications described by the 'alert'
      URN are meant to be well-known, so privacy considerations do not apply
      to the URN.</t>

      <t>Provision of the specific indications from callee to caller may raise
      privacy issues. Such provision SHALL always be explicitly authorised by
      the callee.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The draft is based on the ideas expressed by Paul Kyzivat on the
      BLISS WG mailing list.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <reference anchor="RFC2141">
        <front>
          <title>URN Syntax</title>

          <author fullname="Moats" initials="R">
            <organization>R</organization>
          </author>

          <date month="May" year="1997" />
        </front>
      </reference>

      <reference anchor="RFC3261">
        <front>
          <title>SIP: Session Initiation Protocol</title>

          <author fullname="Rosenberg" initials="J">
            <organization></organization>
          </author>

          <author fullname="Schulzrinne" initials="H">
            <organization></organization>

            <address>
              <postal>
                <street></street>

                <city></city>

                <region></region>

                <code></code>

                <country></country>
              </postal>

              <phone></phone>

              <facsimile></facsimile>

              <email></email>

              <uri></uri>
            </address>
          </author>

          <author fullname="et al">
            <organization></organization>

            <address>
              <postal>
                <street></street>

                <city></city>

                <region></region>

                <code></code>

                <country></country>
              </postal>

              <phone></phone>

              <facsimile></facsimile>

              <email></email>

              <uri></uri>
            </address>
          </author>

          <date month="June" year="2002" />
        </front>
      </reference>

      <reference anchor="RFC3406">
        <front>
          <title>Uniform Resource Names (URN) Namespace Definition
          Mechanisms</title>

          <author fullname="Daigle" initials="L">
            <organization></organization>
          </author>

          <author fullname="Gulik" initials="D">
            <organization></organization>

            <address>
              <postal>
                <street></street>

                <city></city>

                <region></region>

                <code></code>

                <country></country>
              </postal>

              <phone></phone>

              <facsimile></facsimile>

              <email></email>

              <uri></uri>
            </address>
          </author>

          <author fullname="Iannella" initials="R">
            <organization></organization>

            <address>
              <postal>
                <street></street>

                <city></city>

                <region></region>

                <code></code>

                <country></country>
              </postal>

              <phone></phone>

              <facsimile></facsimile>

              <email></email>

              <uri></uri>
            </address>
          </author>

          <author fullname="Faltstrom" initials="P">
            <organization></organization>

            <address>
              <postal>
                <street></street>

                <city></city>

                <region></region>

                <code></code>

                <country></country>
              </postal>

              <phone></phone>

              <facsimile></facsimile>

              <email></email>

              <uri></uri>
            </address>
          </author>

          <date month="October" year="2002" />
        </front>
      </reference>

      <reference anchor="RFC1123">
        <front>
          <title>Requirements for Internet Hosts -- Application and
          Support</title>

          <author fullname="Braden" initials="R">
            <organization></organization>
          </author>

          <date month="October" year="1898" />
        </front>
      </reference>

      <reference anchor="RFC4234">
        <front>
          <title>Augmented BNF for Syntax Specifications: ABNF</title>

          <author fullname="Crocker" initials="D" surname="Ed">
            <organization></organization>
          </author>

          <author fullname="Overell" initials="P">
            <organization></organization>

            <address>
              <postal>
                <street></street>

                <city></city>

                <region></region>

                <code></code>

                <country></country>
              </postal>

              <phone></phone>

              <facsimile></facsimile>

              <email></email>

              <uri></uri>
            </address>
          </author>

          <date month="October" year="2005" />
        </front>
      </reference>

      <?rfc include="reference.RFC.2119"?>
    </references>

    <references title="Informative References">
      <reference anchor="RFC2434">
        <front>
          <title>Guidelines for Writing an IANA Considerations Section in
          RFCs</title>

          <author fullname="Narten" initials="T">
            <organization></organization>
          </author>

          <author fullname="Alvestrand" initials="H">
            <organization></organization>

            <address>
              <postal>
                <street></street>

                <city></city>

                <region></region>

                <code></code>

                <country></country>
              </postal>

              <phone></phone>

              <facsimile></facsimile>

              <email></email>

              <uri></uri>
            </address>
          </author>

          <date month="October" year="1998" />
        </front>
      </reference>

      <reference anchor="RFC3536">
        <front>
          <title>Terminology Used in Internationalization in the IETF</title>

          <author fullname="Hoffman" initials="P">
            <organization></organization>
          </author>

          <date month="May" year="2003" />
        </front>
      </reference>

      <reference anchor="TS24.615">
        <front>
          <title>3GPP TS 24.615 Communication Waiting (CW) using IP Multimedia
          (IM) Core Network (CN) subsystem</title>

          <author>
            <organization></organization>
          </author>

          <date />
        </front>
      </reference>
    </references>

    <section title="An Appendix">
      <t></t>
    </section>
  </back>
</rfc>
