SIMPLE                                                      J. Rosenberg
Internet-Draft                                               dynamicsoft                                             Cisco Systems
Expires: January 17, August 22, 2005                               February 21, 2005                                  July 19, 2004

   An Extensible Markup Language (XML) Representation for Expressing
                      Presence Policy Capabilities
               draft-rosenberg-simple-pres-policy-caps-01
               draft-rosenberg-simple-pres-policy-caps-02

Status of this Memo

   This document is an Internet-Draft and is subject to all provisions
   of section 3 of RFC 3667.  By submitting this Internet-Draft, I certify each
   author represents that any applicable patent or other IPR claims of
   which I am he or she is aware have been or will be disclosed, and any of
   which I he or she become aware will be disclosed, in accordance with
   RFC 3668.

   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 17, August 22, 2005.

Copyright Notice

   Copyright (C) The Internet Society (2004).  All Rights Reserved. (2005).

Abstract

   An important component of presence services is policy.  Policy
   systems allow the presentity to grant access to specific pieces of
   information to specific watchers.  To allow for interoperability
   between clients which set such policies, and servers which execute
   them, it is necessary for clients to be able to determine the
   capabilities of the server to which it is connected.  This
   specification defines a set of Extensible Markup Language (XML)
   elements for expressing presence policy capabilities.

Table of Contents

   1.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   3.  Structure of Presence Policy Capabilities  . . . . . . . . . .  3
   4.  XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . .  4
   5.  Example Document . . . . . . . . . . . . . . . . . . . . . . .  4  5
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . .  5  6
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  5  6
     7.1   URN Sub-Namespace Registrations  . . . . . . . . . . . . .  5  6
     7.2   XML Schema Registration  . . . . . . . . . . . . . . . . .  5  7
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . .  6  7
   8.1   Normative References . . . . . . . . . . . . . . . . . . . .  6  7
   8.2   Informative References . . . . . . . . . . . . . . . . . . .  6  8
       Author's Address . . . . . . . . . . . . . . . . . . . . . . .  6  8
       Intellectual Property and Copyright Statements . . . . . . . .  7  9

1.  Terminology

   In this document, the key words "MUST", "MUST NOT", "REQUIRED",
   "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
   and "OPTIONAL" are to be interpreted as described in RFC 2119 [3] and
   indicate requirement levels for compliant implementations.

2.  Introduction

   An important component of presence [5] [6] is policy.  Policy systems
   allow the presentity to grant access to specific pieces of
   information to specific watchers.  These policy systems can be
   extremely simple or extremely complex.  For this reason [1] defines a
   generic Extensible Markup Language (XML) based format for
   representing policy capabilities.  That format applies to many
   services, including location and presence.  This specification
   extends that one by defining policy capabilities specific to
   presence.  Those policy capabilities correspond to the conditions,
   actions and transformations defined in [2].

3.  Structure of Presence Policy Capabilities

   [1] defines the structure of common policy capability documents.  In
   that specification, each policy capability document has three
   components - a list of supported conditions, a list of supported
   actions, and a list of supported transformations.  This specification
   merely extends that document with the conditions, actions and
   transformations defined in [2].  It does so by defining six empty the elements - "anonymous", "accept-subscription", "provide-presence",
   "show-namespace", "show-tuple", "show-element" -
   <provide-services>, <provide-devices> and <provide-person>, each of
   which
   indicates is a presence transformation that the server can support.
   Furthermore, each of those includes elements that define the specific
   ways of identifying services, devices and persons, respectively.

   The document also defines capabilities for transformations that
   provide individual presence attributes, including
   <provide-activities>, <provide-class>, <provide-device-id>,
   <provide-mood>, <provide-place-is>, <provide-place-type>,
   <provide-privacy>, <provide-relationship>, <provide-status-icon>,
   <provide-sphere>, <provide-time-offset>, <provide-user-input>,
   <provide-note>, <component-id>, <provide-unknown-attribute>, and
   <provide-all-attributes>, each of which is a boolean indicating
   whether that transformation is supported.

   Finally, this document defines the respective attribute in [2] <sub-handling> element, which is a
   boolean indicating whether or not the corresponding action is
   supported.

      OPEN ISSUE: should we define capabilities for specific values of
      sub-handling and component-id?

   All of these elements are defined within the namespace:
      urn:ietf:params:xml:ns:supported-pres-permissions

      urn:ietf:params:xml:ns:presence-policy-capabilities

4.  XML Schema

   <?xml version="1.0" encoding="UTF-8"?>
   <xs:schema
   targetNamespace="urn:ietf:params:xml:ns:supported-pres-permissions"
   xmlns:pc="urn:ietf:params:xml:ns:supported-pres-permissions"
   xmlns:cc="urn:ietf:params:xml:ns:supported-permissions"
    targetNamespace="urn:ietf:params:xml:ns:presence-policy-capabilities"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:cc="urn:ietf:params:xml:ns:policy-capabilities"
    xmlns:pc="urn:ietf:params:xml:ns:presence-policy-capabilities"
    elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:import namespace="urn:ietf:params:xml:ns:supported-permissions"/> namespace="urn:ietf:params:xml:ns:policy-capabilities"
    schemaLocation="sbase.xsd"/>
    <xs:element name="provide-services">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="service-uri" type="cc:emptyType" minOccurs="0"/>
       <xs:element name="service-uri-scheme" type="cc:emptyType" minOccurs="0"/>
       <xs:element name="instance-id" type="cc:emptyType" minOccurs="0"/>
       <xs:element name="class" type="cc:emptyType" minOccurs="0"/>
       <xs:any namespace="##other" minOccurs="0"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="provide-devices">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="device-id" type="cc:emptyType" minOccurs="0"/>
       <xs:element name="instance-id" type="cc:emptyType" minOccurs="0"/>
       <xs:element name="class" type="cc:emptyType" minOccurs="0"/>
       <xs:any namespace="##other" minOccurs="0"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="provide-person">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="instance-id" type="cc:emptyType" minOccurs="0"/>
       <xs:element name="class" type="cc:emptyType" minOccurs="0"/>
       <xs:any namespace="##other" minOccurs="0"/>
      </xs:sequence>

     </xs:complexType>
    </xs:element>
    <xs:element name="provide-activities" type="cc:emptyType"/>
    <xs:element name="provide-class" type="cc:emptyType"/>
    <xs:element name="provide-device-id" type="cc:emptyType"/>
    <xs:element name="provide-mood" type="cc:emptyType"/>
    <xs:element name="provide-place-is" type="cc:emptyType"/>
    <xs:element name="provice-place-type" type="cc:emptyType"/>
    <xs:element name="provide-privacy" type="cc:emptyType"/>
    <xs:element name="provide-relationship" type="cc:emptyType"/>
    <xs:element name="anonymous" substitutionGroup="cc:condition"/> name="provide-status-icon" type="cc:emptyType"/>
    <xs:element name="accept-subscription" substitutionGroup="cc:action"/> name="provide-sphere" type="cc:emptyType"/>
    <xs:element name="provide-presence" substitutionGroup="cc:action"/> name="provide-time-offset" type="cc:emptyType"/>
    <xs:element name="show-namespace" substitutionGroup="cc:transformation"/> name="provide-user-input" type="cc:emptyType"/>
    <xs:element name="show-element" substitutionGroup="cc:transformation"/> name="provide-note" type="cc:emptyType"/>
    <xs:element name="show-tuple" substitutionGroup="cc:transformation"/> name="component-id" type="cc:emptyType"/>
    <xs:element name="sub-handling" type="cc:emptyType"/>
    <xs:element name="provide-unknown-attribute" type="cc:emptyType"/>
    <xs:element name="provide-all-attributes" type="cc:emptyType"/>
   </xs:schema>

5.  Example Document

   The following document indicates that the identity, validity, sphere
   and confirmation attributes are supported.  It also indicates that a
   vendor-specific condition, called "temp", is supported, in addition
   to two vendor-specific transformations - "max-security" and
   "min-security".  The "show-tuple" element is also supported. an example.

   <?xml version="1.0" encoding="UTF-8"?>
   <supported-permissions
   xmlns="urn:ietf:params:xml:ns:supported-permissions"
   <cc:policy-capabilities
    xmlns="urn:ietf:params:xml:ns:presence-policy-capabilities"
    xmlns:pc="urn:ietf:params:xml:ns:presence-policy-capabilities"
    xmlns:cc="urn:ietf:params:xml:ns:policy-capabilities"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:vpp="http://www.vendor.com/extension1"
   xmlns:pc="urn:ietf:params:xml:ns:supported-pres-permissions">
     <conditions>
       <identity/>
       <validity/>
       <sphere/>
    xsi:schemaLocation="urn:ietf:params:xml:ns:presence-policy-capabilities
    spres.xsd">
     <cc:conditions>
       <cc:identity/>
       <cc:sphere/>
       <cc:validity/>
       <cc:sphere/>
       <vpp:temp/>
     </conditions>
     <actions>
       <confirmation/>
     </actions>
     <transformations>
     </cc:conditions>
     <cc:actions>
       <sub-handling/>
     </cc:actions>
     <cc:transformations>
       <vpp:min-security/>
       <vpp:max-security/>
       <pc:show-tuple/>

     </transformations>
   </supported-permissions>
       <component-id/>
       <provide-person>
         <class/>
       </provide-person>
     </cc:transformations>
     </cc:policy-capabilities>

      NOTE: this example needs work - doens't validate against the
      schema.

6.  Security Considerations

   This specification does not introduce any new security considerations
   beyond those discussed in [1].

7.  IANA Considerations

   There are several IANA considerations associated with this
   specification.

7.1  URN Sub-Namespace Registrations

   This section registers a new XML namespace, as per the guidelines in
   [4]
      URI: The URI for this namespace is
      urn:ietf:params:xml:ns:supported-pres-permissions.
      urn:ietf:params:xml:ns:presence-policy-capabilities

      Registrant Contact: IETF, SIMPLE working group, (simple@ietf.org),
      Jonathan Rosenberg (jdrosen@jdrosen.net).

      XML:

                BEGIN
                <?xml version="1.0"?>
                <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
                          "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
                <html xmlns="http://www.w3.org/1999/xhtml">
                <head>
                  <meta http-equiv="content-type"
                     content="text/html;charset=iso-8859-1"/>
                  <title>Supported Presence Permissions Namespace</title>
                </head>
                <body>
                  <h1>Namespace for Supported Permissions</h1>
                  <h2>urn:ietf:params:xml:ns:supported-pres-permissions</h2>
                  <h2>urn:ietf:params:xml:ns:presence-policy-capabilities</h2>
                  <p>See <a href="[[[URL of published RFC]]]">RFCXXXX</a>.</p>
                </body>
                </html>
                END

7.2  XML Schema Registration

   This section registers an XML schema as per the procedures in [4].

      URI: please assign. urn:ietf:params:xml:schema:presence-policy-capabilities.

      Registrant Contact: IETF, SIMPLE working group, (simple@ietf.org),
      Jonathan Rosenberg (jdrosen@jdrosen.net).

      The XML for this schema can be found as the sole content of
      Section 4.

8.  References

8.1  Normative References

   [1]  Rosenberg, J., "An Extensible Markup Language (XML)
        Representation for Expressing Policy  Capabilities",
        draft-rosenberg-simple-common-policy-caps-00
        draft-rosenberg-simple-common-policy-caps-01 (work in progress),
        February
        July 2004.

   [2]  Rosenberg, J., "Presence Authorization Rules",
        draft-rosenberg-simple-rules-00
        draft-ietf-simple-presence-rules-01 (work in progress), February October
        2004.

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

   [4]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January
        2004.

8.2  Informative References

   [5]  Rosenberg, J., "The Extensible Markup Language (XML)
        Configuration Access Protocol (XCAP)", draft-ietf-simple-xcap-06
        (work in progress), February 2005.

   [6]  Day, M., Rosenberg, J. and H. Sugano, "A Model for Presence and
        Instant Messaging", RFC 2778, February 2000.

Author's Address

   Jonathan Rosenberg
   dynamicsoft
   Cisco Systems
   600 Lanidex Plaza
   Parsippany, NJ  07054
   US

   Phone: +1 973 952-5000
   EMail: jdrosen@dynamicsoft.com jdrosen@cisco.com
   URI:   http://www.jdrosen.net

Intellectual Property Statement

   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.

Disclaimer of Validity

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

Copyright Statement

   Copyright (C) The Internet Society (2004). (2005).  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.

Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.