Internet Engineering Task Force                                SIMPLE WG
Internet Draft                                        Rosenberg, et. al.
draft-ietf-simple-winfo-format-00.txt              Various Organizations
July 13, 2001
Expires: January 2002


              An XML Based Format for Watcher Information

STATUS OF THIS MEMO

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   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

   To view the list Internet-Draft Shadow Directories, see
   http://www.ietf.org/shadow.html.


Abstract

   Watchers are defined as entities that request (i.e., subscribe to)
   information about a user. There is fairly complex state associated
   with an event subscription, and this state is dynamic. As a result,
   it is possible, and indeed useful, to subscribe to the watcher
   information for a particular subscriber. In order to enable this, a
   format is needed to describe the state of watchers. This
   specification describes an XML document format for such state.


1 Introduction

   Watchers are defined as entities that request (i.e., subscribe to)
   information about a user. There is fairly complex state associated
   with an event subscription, and this state is dynamic. As a result,
   it is possible, and indeed useful, to subscribe to the watcher



Rosenberg, et. al.                                            [Page 1]


Internet Draft                Watcher Info                 July 13, 2001


   information for a particular subscriber. In order to enable this, a
   format is needed to describe the state of watchers. This
   specification describes an XML document format for such state.

2 Structure of Watcher Information

   Watcher information is an XML document that begins with the root
   element tag "watcherinfo". It consists of any number of "presentity"
   sub-elements, describing all the presentities being watched.


   <!ELEMENT watcherinfo (presentity*)>



   Each presentity element has an attribute giving the URI at which the
   watching subscribers subscribed to the presentity; it contains as
   sub-elements a list of the watchers watching this presentity.


   <!ELEMENT presentity (watcher*)>
   <!ATTLIST presentity uri CDATA  #REQUIRED>



   The watcher element describes a user watching the enclosing
   presentity.


   <!ELEMENT watcher CDATA>
   <!ATTLIST watcher    uri              CDATA                     #REQUIRED
                        status (pending|active|waiting|terminated) #REQUIRED
                        event (subscribe|rejected|approved|deactivated|
                               expired|timeout)
                        duration CDATA                             #IMPLIED
                        first-subscribed CDATA                     #IMPLIED
                        notify-address   CDATA                     #IMPLIED
                        most-recently-subscribed CDATA             #IMPLIED>




   The mandatory attributes of the watcher element are:

        uri: The identity of the watcher, expressed as a URI. For SIP
             for presence [1] this is the URI from the From header of
             the SUBSCRIBE request.




Rosenberg, et. al.                                            [Page 2]


Internet Draft                Watcher Info                 July 13, 2001


        status: The status of the subscription. The meaning of the
             various statuses are defined in the watcher information
             event package [2]. Briefly, pending means that the
             subscription is awaiting authorization. Active means its
             generating notifications. Waiting means that is awaiting
             authorization but has expired. Terminated means its been
             destroyed.

        event: The event which caused the transition to the current
             status. The events are defined in the watcher information
             event package [2]. Briefly, subscribe means that a
             subscription was requested. Rejected means that the
             subscription was rejected as a result of an authorization
             decision. Approved means that the subscription was approved
             as the result of an authorization decision. Deactivated
             means that the subscription state has been removed, but
             there has been no change in authorization state. Expired
             means that the subscription was not refreshed. Timeout
             means that the server has ceased waiting for authorization.

   There are also two optional, informative attributes of the watcher
   element. These are:

        duration: The amount of time, in seconds, that the subscription
             was in the previous state before transitioning to the state
             described in the status parameter.

        first-subscribed: The date and time, expressed as an integral
             number of seconds since January 1, 1970, 00:00 UTC, when
             the very first SUBSRIBE by this watcher for this presentity
             was sent. This date and time remains unchanged even if the
             subscription expires and is later refreshed.

        most-recently-subscribed: The date and time, also expressed as
             seconds since January 1 1970, 00:00 UTC, when the
             subscription was most recently refreshed. This is only
             relevant for pending and active subscriptions.

        notify-address: The address, expressed as a URI, to which
             notifications are being delivered. For SIP for presence,
             this is the value of the Contact URI in the SUBSCRIBE.

   The information contained within the watcher tag is a textual
   representation (encoded in UTF-8) of the name of the subscriber. It
   is optional.

   The number of watchers present for each presentity, and the set of
   presentities listed, depends on the type of data being provided, and



Rosenberg, et. al.                                            [Page 3]


Internet Draft                Watcher Info                 July 13, 2001


   to whom. In the case where a watcher has asked for notification of
   approval of their subscription, the watcher list typically contains
   only the watcher information for that one watcher, for that one
   presentity. In the case where a user wishes to find out the list of
   users subscribed to his presentity, the list typically contains
   multiple watchers for a single presentity. In the case where an
   administrator wishes to learn the current status in the system, the
   list contains all watchers for all presentities. Which case to use
   depends on either modifiers to the subscription described in the body
   of the SUBSCRIBE, or policy information configured at the presence
   agent.

3 Document Identifiers

   A watcher information document which appears as a top-level XML
   document is identified with the formal public identifier "-
   //IETF//DTD RFCxxxx XWATCHER 1.0//EN". If this document is published
   as an RFC, "xxxx" will be replaced by the RFC number. Watcher lists
   have the MIME type "application/watcherinfo+xml".


        The "+xml" component of the type name conforms with the
        format of XML MIME types introduced by Murata et al [3]

   A watcher list embedded as a fragment within another XML document is
   identified with the XML namespace identifier
   "http://www.ietf.org/internet-drafts/draft-ietf-simple-winfo-format-
   00.txt".  If this document is published as an RFC, the namespace
   identifier will be "http://www.rfc-editor.org/rfc/rfcxxxx.txt", where
   xxxx is the RFC number.


        Note that the URIs specifying XML namespaces are only
        globally unique names; they do not have to reference any
        particular actual object.  The URI of a canonical source of
        this specification meets the requirement of being globally
        unique, and is also useful to document the format.

4 Example

   The following is an example of watcher information for a presentity,
   who is a professor. There are two watchers, one from a university,
   and another from an organization.


   <?xml version="1.0"?>
   <!DOCTYPE watcherinfo
      PUBLIC "-//IETF//DTD RFCxxxx XWATCHER 1.0//EN" "watcher.dtd">



Rosenberg, et. al.                                            [Page 4]


Internet Draft                Watcher Info                 July 13, 2001


   <watcherinfo>
     <presentity uri="sip:professor@university.edu">
       <watcher uri="sip:subcriber@university.edu" status="active"
                   event="approved" first-subscribed="958525312" />
       <watcher uri="sip:subcriber@organization.org" status="pending"
                   event="subscribe">Mr. Subscriber</watcher>
     </presentity>
   </watcherinfo>



5 XML DTD


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

   <!--
       Draft DTD for Watcher info.
   -->

   <!-- Watcher element: document root -->

   <!ELEMENT watcherinfo (presentity*)>

   <!-- Presentity element: describes one entity being watched -->

   <!ELEMENT presentity (watcher*)>
   <!ATTLIST presentity uri CDATA  #REQUIRED>

   <!-- Watcher element: describes one entity watching -->

   <!ELEMENT watcher    CDATA>
   <!ATTLIST watcher    uri              CDATA                     #REQUIRED
                        status (pending|active|waiting|terminated) #REQUIRED
                        event (subscribe|rejected|approved|deactivated|
                               expired|timeout)
                        duration CDATA                             #IMPLIED
                        first-subscribed CDATA                     #IMPLIED
                        notify-address   CDATA                     #IMPLIED
                        most-recently-subscribed CDATA             #IMPLIED>




6 Security Considerations

   Watcher information is sensitive information. The protocol used to
   distribute it SHOULD ensure privacy, message integrity and



Rosenberg, et. al.                                            [Page 5]


Internet Draft                Watcher Info                 July 13, 2001


   authentication. Furthermore, the protcol should provide access
   controls which restrict who can see who elses watcher information.

7 Authors Addresses


   Jonathan Rosenberg
   dynamicsoft
   72 Eagle Rock Avenue
   East Hanover, NJ 07936
   email: jdrosen@dynamicsoft.com

   Dean Willis
   dynamicsoft
   5100 Tennyson Parkway, Suite 1200
   Plano, Texas 75024
   email: dwillis@dynamicsoft.com

   Robert Sparks
   dynamicsoft
   5100 Tennyson Parkway, Suite 1200
   Plano, Texas 75024
   email: rsparks@dynamicsoft.com

   Ben Campbell
   dynamicsoft
   5100 Tennyson Parkway, Suite 1200
   Plano, Texas 75024
   email: bcampbell@dynamicsoft.com

   Henning Schulzrinne
   Columbia University
   M/S 0401
   1214 Amsterdam Ave.
   New York, NY 10027-7003
   email: schulzrinne@cs.columbia.edu

   Jonathan Lennox
   Columbia University
   M/S 0401
   1214 Amsterdam Ave.
   New York, NY 10027-7003
   email: lennox@cs.columbia.edu

   Christian Huitema
   Microsoft Corporation
   One Microsoft Way
   Redmond, WA 98052-6399



Rosenberg, et. al.                                            [Page 6]


Internet Draft                Watcher Info                 July 13, 2001


   email: huitema@microsoft.com

   Bernard Aboba
   Microsoft Corporation
   One Microsoft Way
   Redmond, WA 98052-6399
   email: bernarda@microsoft.com

   David Gurle
   Microsoft Corporation
   One Microsoft Way
   Redmond, WA 98052-6399
   email: dgurle@microsoft.com




8 Bibliography

   [1] J. Rosenberg et al.  , "SIP extensions for presence," Internet
   Draft, Internet Engineering Task Force, Apr. 2001.  Work in progress.

   [2] J. Rosenberg, "A SIP event sub-package for watcher information,"
   Internet Draft, Internet Engineering Task Force, July 2001.  Work in
   progress.

   [3] M. Murata, S. S. Laurent, and D. Kohn, "XML media types," Request
   for Comments 3023, Internet Engineering Task Force, Jan. 2001.























Rosenberg, et. al.                                            [Page 7]