summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc4480.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc4480.txt')
-rw-r--r--doc/rfc/rfc4480.txt2075
1 files changed, 2075 insertions, 0 deletions
diff --git a/doc/rfc/rfc4480.txt b/doc/rfc/rfc4480.txt
new file mode 100644
index 0000000..744264f
--- /dev/null
+++ b/doc/rfc/rfc4480.txt
@@ -0,0 +1,2075 @@
+
+
+
+
+
+
+Network Working Group H. Schulzrinne
+Request for Comments: 4480 Columbia U.
+Category: Standards Track V. Gurbani
+ Lucent
+ P. Kyzivat
+ J. Rosenberg
+ Cisco
+ July 2006
+
+
+ RPID: Rich Presence Extensions to the
+ Presence Information Data Format (PIDF)
+
+Status of This Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2006).
+
+Abstract
+
+ The Presence Information Data Format (PIDF) defines a basic format
+ for representing presence information for a presentity. This format
+ defines a textual note, an indication of availability (open or
+ closed) and a Uniform Resource Identifier (URI) for communication.
+ The Rich Presence Information Data format (RPID) described here is an
+ extension that adds optional elements to the Presence Information
+ Data Format (PIDF). These extensions provide additional information
+ about the presentity and its contacts. The information is designed
+ so that much of it can be derived automatically, e.g., from calendar
+ files or user activity.
+
+ This extension includes information about what the person is doing, a
+ grouping identifier for a tuple, when a service or device was last
+ used, the type of place a person is in, what media communications
+ might remain private, the relationship of a service tuple to another
+ presentity, the person's mood, the time zone it is located in, the
+ type of service it offers, an icon reflecting the presentity's
+ status, and the overall role of the presentity.
+
+ These extensions include presence information for persons, services
+ (tuples), and devices.
+
+
+
+Schulzrinne, et al. Standards Track [Page 1]
+
+RFC 4480 RIPD July 2006
+
+
+Table of Contents
+
+ 1. Introduction ....................................................2
+ 2. Terminology and Conventions .....................................4
+ 3. RPID Elements ...................................................4
+ 3.1. Overview ...................................................4
+ 3.2. Activities Element .........................................7
+ 3.3. Class Element .............................................10
+ 3.4. Device Identifier .........................................10
+ 3.5. Mood Element ..............................................10
+ 3.6. Place-is Element ..........................................12
+ 3.7. Place-type Element ........................................13
+ 3.8. Privacy Element ...........................................14
+ 3.9. Relationship Element ......................................15
+ 3.10. Service Class ............................................15
+ 3.11. Sphere Element ...........................................16
+ 3.12. Status-Icon Element ......................................16
+ 3.13. Time Offset ..............................................17
+ 3.14. User-Input Element .......................................17
+ 4. Example ........................................................18
+ 5. XML Schema Definitions .........................................20
+ 5.1. urn:ietf:params:xml:ns:pidf:rpid ..........................20
+ 6. Extending RPID .................................................30
+ 7. IANA Considerations ............................................31
+ 7.1. URN Sub-Namespace Registration for ........................31
+ 'urn:ietf:params:xml:ns:pidf:rpid'
+ 7.2. Schema Registration for Schema ............................32
+ 'urn:ietf:params:xml:ns:pidf:status:rpid'
+ 8. Internationalization Considerations ............................32
+ 9. Security Considerations ........................................32
+ 10. References ....................................................33
+ 10.1. Normative References .....................................33
+ 10.2. Informative References ...................................34
+ Appendix A. Acknowledgements .....................................35
+
+1. Introduction
+
+ The Presence Information Data Format (PIDF) definition [8] describes
+ a basic presence information data format, encoded as an Extensible
+ Markup Language (XML) [9] (SCHEMA-1 [10]) (SCHEMA-2 [11]), for
+ exchanging presence information in systems compliant with the common
+ model for presence and instant messaging [5]. It consists of a
+ <presence> root element, zero or more <tuple> elements carrying
+ presence information including a Uniform Resource Identifier (URI)
+ for communication, zero or more <note> elements, and zero or more
+ extension elements from other name spaces. Each tuple defines a
+ basic status of either "open" or "closed".
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 2]
+
+RFC 4480 RIPD July 2006
+
+
+ However, it is frequently useful to convey additional information
+ about a user that needs to be interpreted by an automata, and is
+ therefore not appropriate to be placed in the <note> element of the
+ PIDF document, which is typically intended for the human observer.
+ Therefore, this specification defines extensions to the PIDF document
+ format for conveying richer presence information. Generally, the
+ extensions have been chosen to provide features common in existing
+ presence systems at the time of writing, in addition to elements that
+ could readily be derived automatically from existing sources of
+ presence, such as calendaring systems or communication devices, or
+ sources describing the user's current physical environment.
+
+ The presence data model [16] defines the concepts of service, device,
+ and person as the data elements that are used to model the state of a
+ presentity. (The term "presentity" is defined in RFC 2778 [5] and
+ abbreviates presence entity. A presentity provides presence
+ information to a presence service.) Services are encoded using the
+ <tuple> element, defined in PIDF; devices and persons are represented
+ by the <device> and <person> XML elements, respectively, defined in
+ the data model [16]. However, neither PIDF nor the data model
+ defines presence attributes beyond the <basic> status element.
+
+ This specification defines additional presence attributes to describe
+ person, service, and device data elements, summarized as "Rich
+ Presence Information Data format for presence" (RPID). These
+ attributes are specified by XML elements that extend the PIDF <tuple>
+ element and the <device> and <person> elements defined in the data
+ model.
+
+ This extension has two main goals:
+
+ 1. Provide rich presence information that is at least as powerful as
+ common commercial presence systems. Such feature-parity
+ simplifies transition to systems complying with the Common
+ Profile for Instant Messaging (CPIM) [14], both in terms of user
+ acceptance and protocol conversion.
+
+ 2. Maintain backward-compatibility with PIDF, so that PIDF-only
+ watchers and gateways can continue to function properly,
+ naturally without access to the functionality described here.
+
+ We make no assumptions as to how the information in the RPID elements
+ is generated. Experience has shown that users are not always
+ diligent about updating their presence status. Thus, we want to make
+ it as easy as possible to derive RPID information from other
+ information sources, such as personal calendars, the status of
+ communication devices such as telephones, typing activity, and
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 3]
+
+RFC 4480 RIPD July 2006
+
+
+ physical presence detectors as commonly found in energy-management
+ systems.
+
+ Many of the elements correspond to data commonly found in personal
+ calendars. Thus, we attempted to align some of the extensions with
+ the usage found in calendar formats such as iCal [13].
+
+ The information in a presence document can be generated by a single
+ entity or can be composed from information published by multiple
+ entities.
+
+ Note that PIDF documents and this extension can be used in two
+ different contexts, namely, by the presentity to publish its presence
+ status and by the presence server to notify some set of watchers.
+ The presence server MAY compose, translate, or filter the published
+ presence state before delivering customized presence information to
+ the watcher. For example, it may merge presence information from
+ multiple presence user agents, remove whole elements, translate
+ values in elements, or remove information from elements. Mechanisms
+ that filter calls and other communications to the presentity can
+ subscribe to this presence information just like a regular watcher
+ and in turn generate automated rules, such as scripts [15], that
+ govern the actual communications behavior of the presentity. Details
+ are described in the data model document.
+
+ Since RPID is a PIDF XML document, it also uses the content type
+ application/pidf+xml.
+
+2. Terminology and Conventions
+
+ This memo makes use of the vocabulary defined in the IMPP model
+ document [5]. Terms such as CLOSED, INSTANT MESSAGE, OPEN, PRESENCE
+ SERVICE, PRESENTITY, WATCHER, and WATCHER USER AGENT in the memo are
+ used in the same meaning as defined therein.
+
+ The key words MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT,
+ RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted
+ as described in BCP 14, RFC 2119 [1].
+
+3. RPID Elements
+
+3.1. Overview
+
+ Some of the RPID elements describe services, some devices, and some
+ the person. As such, they either extend <tuple>, <device>, or
+ <person>, respectively. Below, we summarize the RPID elements. The
+ next sections will then provide more detailed descriptions.
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 4]
+
+RFC 4480 RIPD July 2006
+
+
+ activities: The <activities> status element enumerates what the
+ person is doing.
+
+ class: An identifier that groups similar person elements, devices,
+ or services.
+
+ deviceID: A device identifier in a tuple references a <device>
+ element, indicating that this device contributes to the service
+ described by the tuple.
+
+ mood: The <mood> status element indicates the mood of the person.
+
+ place-is: The <place-is> status element reports on the properties of
+ the place the presentity is currently at, such as the levels of
+ light and noise.
+
+ place-type: The <place-type> status elements reports the type of
+ place the person is located in, such as 'classroom' or 'home'.
+
+ privacy: The <privacy> element distinguishes whether the
+ communication service is likely to be observable by other parties.
+
+ relationship: When a service is likely to reach a user besides the
+ person associated with the presentity, the relationship indicates
+ how that user relates to the person.
+
+ service-class: The <service-class> element describes whether the
+ service is delivered electronically, is a postal or delivery
+ service, or describes in-person communications.
+
+ sphere: The <sphere> element characterizes the overall current role
+ of the presentity.
+
+ status-icon: The <status-icon> element depicts the current status of
+ the person or service.
+
+ time-offset: The <time-offset> status element quantifies the time
+ zone the person is in, expressed as the number of minutes away
+ from UTC.
+
+ user-input: The <user-input> element records the user-input or usage
+ state of the service or device, based on human user input.
+
+ The 'From/until?' column in Table 1 indicates by an 'x' that the
+ element can take 'from' and 'until' attributes. An 'x' in the
+ 'Note?' column marks elements that can include a <note> element. The
+ usage of these elements within the <person>, <tuple>, and <device>
+ elements is shown in columns 4 through 6. An 'x' in the respective
+
+
+
+Schulzrinne, et al. Standards Track [Page 5]
+
+RFC 4480 RIPD July 2006
+
+
+ column indicates that the RPID element MAY appear as a child of that
+ element.
+
+ +-----------------+------------+------+----------+---------+----------+
+ | Element | From/until | Note | <person> | <tuple> | <device> |
+ | | ? | ? | | | |
+ +-----------------+------------+------+----------+---------+----------+
+ | <activities> | x | x | x | | |
+ | <class> | | | x | x | x |
+ | <deviceID> | | | | x | |
+ | <mood> | x | x | x | | |
+ | <place-is> | x | x | x | | |
+ | <place-type> | x | x | x | | |
+ | <privacy> | x | x | x | x | |
+ | <relationship> | | x | | x | |
+ | <service-class> | | x | | x | |
+ | <sphere> | x | | x | | |
+ | <status-icon> | x | | x | x | |
+ | <time-offset> | x | | x | | |
+ | <user-input> | | | x | x | x |
+ +-----------------+------------+------+----------+---------+----------+
+
+ Table 1
+
+ In general, it is unlikely that a presentity will publish or announce
+ all of these elements at the same time. Rather, these elements were
+ chosen to give the presentity maximum flexibility in deriving this
+ information from existing sources, such as calendaring tools, device
+ activity sensors, or location trackers, as well as to manually
+ configure this information. In either case, there is no guarantee
+ that the information is accurate, as users forget to update calendars
+ or may not always adjust the presence information manually.
+
+ The namespace URIs for these elements defined by this specification
+ are URNs [2], using the namespace identifier 'ietf' defined by [4]
+ and extended by [6]:
+
+ urn:ietf:params:xml:ns:pidf:rpid
+
+ The elements marked with the value 'x' in column 2 of Table 1 MAY be
+ qualified with the 'from' and 'until' attributes to describe the
+ absolute time when the element assumed this value and the absolute
+ time until which this element is expected to be valid. Note that
+ there can be multiple elements of the same type, whose time ranges
+ SHOULD NOT overlap.
+
+ Elements MAY contain an 'id' attribute that allows to uniquely
+ reference the element.
+
+
+
+Schulzrinne, et al. Standards Track [Page 6]
+
+RFC 4480 RIPD July 2006
+
+
+ Enumerations can be extended by elements from other namespaces, as
+ described in Section 6. The <activities>, <mood>, and <place-type>
+ elements can also take <other> elements containing text, for custom
+ free-text values specific to an application.
+
+ All elements described in this document are optional within PIDF
+ documents.
+
+3.2. Activities Element
+
+ The <activities> element describes what the person is currently
+ doing, expressed as an enumeration of activity-describing elements.
+ A person can be engaged in multiple activities at the same time,
+ e.g., traveling and having a meal. The <activities> element can be
+ quite helpful to the watcher in judging how appropriate a
+ communication attempt is and which means of communications is most
+ likely to succeed and not annoy the person. The activity indications
+ correspond roughly to the category field in calendar entries, such as
+ Section 4.8.1.2 of RFC 2445 [13].
+
+ An activities enumeration consists of one or more elements using
+ elements drawn from the list below, a string enclosed in the <other>
+ element, or IANA-registered values from other namespaces (Section 7).
+
+ If a person publishes an activity of "permanent-absence", it is
+ likely that all services will report a status of CLOSED. In general,
+ services MAY advertise either service status for any activity value.
+
+ Activities such as <appointment>, <breakfast>, <dinner>, <holiday>,
+ <lunch>, <meal>, <meeting>, <performance>, <travel>, or <vacation>
+ can often be derived from calendar information.
+
+ appointment: The person has a calendar appointment, without
+ specifying exactly of what type. This activity is indicated if
+ more detailed information is not available or the person chooses
+ not to reveal more information.
+
+ away: The person is physically away from all interactive
+ communication devices. This activity element was included since
+ it can often be derived automatically from security systems,
+ energy management systems, or entry badge systems. Although this
+ activity would typically be associated with a status of CLOSED
+ across all services, a person may declare himself or herself away
+
+
+
+
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 7]
+
+RFC 4480 RIPD July 2006
+
+
+ to discourage communication, but indicate that he or she still can
+ be reached if needed. However, communication attempts might reach
+ an answering service, for example.
+
+ breakfast: The person is eating the first meal of the day, usually
+ eaten in the morning.
+
+ busy: The person is busy, without further details. Although this
+ activity would typically be associated with a status of CLOSED
+ across all services, a person may declare himself or herself busy
+ to discourage communication, but indicate that he or she still can
+ be reached if needed.
+
+ dinner: The person is having his or her main meal of the day, eaten
+ in the evening or at midday.
+
+ holiday: This is a scheduled national or local holiday.
+
+ in-transit: The person is riding in a vehicle, such as a car, but
+ not steering. The <place-type> element provides more specific
+ information about the type of conveyance the person is using.
+
+ looking-for-work: The presentity is looking for (paid) work.
+
+ lunch: The person is eating his or her midday meal.
+
+ meal: The person is scheduled for a meal, without specifying whether
+ it is breakfast, lunch, or dinner, or some other meal.
+
+ meeting: The person is in an assembly or gathering of people, as for
+ a business, social, or religious purpose. A meeting is a sub-
+ class of an appointment.
+
+ on-the-phone: The person is talking on the telephone. This activity
+ is included since it can often be derived automatically.
+
+ other: The person is engaged in an activity with no defined
+ representation as an <activities> element. The enclosed string
+ describes the activity in plain text.
+
+ performance: A performance is a sub-class of an appointment and
+ includes musical, theatrical, and cinematic performances as well
+ as lectures. It is distinguished from a meeting by the fact that
+ the person may either be lecturing or be in the audience, with a
+ potentially large number of other people, making interruptions
+ particularly noticeable.
+
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 8]
+
+RFC 4480 RIPD July 2006
+
+
+ permanent-absence: The person will not return for the foreseeable
+ future, e.g., because it is no longer working for the company.
+ This activity is associated with a status of CLOSED across all
+ services.
+
+ playing: The person is occupying himself or herself in amusement,
+ sport, or other recreation.
+
+ presentation: The person is giving a presentation, lecture, or
+ participating in a formal round-table discussion.
+
+ shopping: The person is visiting stores in search of goods or
+ services.
+
+ sleeping: This activity category can often be generated
+ automatically from a calendar, local time information, or
+ biometric data.
+
+ spectator: The person is observing an event, such as a sports event.
+
+ steering: The person is controlling a vehicle, watercraft, or plane.
+
+ travel: The person is on a business or personal trip, but not
+ necessarily in-transit.
+
+ tv: The person is watching television.
+
+ unknown: The activity of the person is unknown. This element is
+ generally not used together with other activities.
+
+ vacation: A period of time devoted to pleasure, rest, or relaxation.
+
+ working: The presentity is engaged in, typically paid, labor, as
+ part of a profession or job.
+
+ worship: The presentity is participating in religious rites.
+
+ The <activities> element MAY be qualified with the 'from' and 'until'
+ attributes as described in Section 3.1.
+
+ Example:
+
+ <activities>
+ <note>Enjoying the morning paper</note>
+ <vacation/>
+ <breakfast/>
+ <other>reading</other>
+ </activities>
+
+
+
+Schulzrinne, et al. Standards Track [Page 9]
+
+RFC 4480 RIPD July 2006
+
+
+3.3. Class Element
+
+ The <class> element describes the class of the service, device, or
+ person. Multiple elements can have the same class name within a
+ presence document, but each person, service, or device can only have
+ one class label. The naming of classes is left to the presentity.
+ The presentity can use this information to group similar services,
+ devices, or person elements or to convey information that the
+ presence agent can use for filtering or authorization. This
+ information is not generally presented to the watcher user interface.
+
+ The <class> element MUST NOT be qualified with the 'from' and 'until'
+ attributes as described in Section 3.1.
+
+3.4. Device Identifier
+
+ The <deviceID> element in the <tuple> element references the device
+ that provides a particular service. The element is defined
+ syntactically in the data model [16] schema. One service can be
+ provided by multiple devices, so that each service tuple may contain
+ zero or more <deviceID> elements. There is no significance in the
+ order of these elements.
+
+ The <deviceID> element MUST NOT be qualified with the 'from' and
+ 'until' attributes as described in Section 3.1.
+
+3.5. Mood Element
+
+ The <mood> element describes the mood of the presentity. The mood
+ values are enumerated chosen by the presentity. The mood itself is
+ provided as the element name of a defined child element of the <mood>
+ element (e.g., <happy/>); one such child element is REQUIRED. The
+ user MAY also specify a natural-language description of, or reason
+ for, the mood in the <note> child of the <mood> element, which is
+ OPTIONAL. (This definition follows the Jabber Extension JEP-107.)
+ It is RECOMMENDED that an implementation support the mood values
+ proposed in Jabber Extension JEP-0107, which in turn are a superset
+ of the Wireless Village [18] mood values and the values enumerated in
+ the Affective Knowledge Representation that has been defined by
+ Lisetti [17]:
+
+ A mood enumeration consists of one or more elements using elements
+ drawn from the list below, a string enclosed in the <other> element,
+ or IANA-registered values from other namespaces (Section 7).
+
+ The <mood> element MAY be qualified with the 'from' and 'until'
+ attributes as described in Section 3.1.
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 10]
+
+RFC 4480 RIPD July 2006
+
+
+ o afraid
+ o amazed
+ o angry
+ o annoyed
+ o anxious
+ o ashamed
+ o bored
+ o brave
+ o calm
+ o cold
+ o confused
+ o contented
+ o cranky
+ o curious
+ o depressed
+ o disappointed
+ o disgusted
+ o distracted
+ o embarrassed
+ o excited
+ o flirtatious
+ o frustrated
+ o grumpy
+ o guilty
+ o happy
+ o hot
+ o humbled
+ o humiliated
+ o hungry
+ o hurt
+ o impressed
+ o in_awe
+ o in_love
+ o indignant
+ o interested
+ o invincible
+ o jealous
+ o lonely
+ o mean
+ o moody
+ o nervous
+ o neutral
+ o offended
+ o other
+ o playful
+ o proud
+ o relieved
+ o remorseful
+
+
+
+Schulzrinne, et al. Standards Track [Page 11]
+
+RFC 4480 RIPD July 2006
+
+
+ o restless
+ o sad
+ o sarcastic
+ o serious
+ o shocked
+ o shy
+ o sick
+ o sleepy
+ o stressed
+ o surprised
+ o thirsty
+ o unknown
+ o worried
+
+ Example:
+
+ <mood>
+ <note>I'm ready for the bar BOF!</note>
+ <sleepy/>
+ <thirsty/>
+ </mood>
+
+3.6. Place-is Element
+
+ The <place-is> element describes properties of the place the person
+ is currently at. This offers the watcher an indication of what kind
+ of communication is likely to be successful. Each major media type
+ has its own set of attributes. Omitting the element indicates that
+ the property is unknown.
+
+ For audio, we define the following attributes:
+
+ noisy: The person is in a place with a level of background noise
+ that makes audio communications difficult.
+
+ ok: The environmental conditions are suitable for audio
+ communications.
+
+ quiet: The person is in a place such as a library, restaurant, place
+ of worship, or theater that discourages noise, conversation, and
+ other distractions.
+
+ unknown: The place attributes for audio are unknown.
+
+ For video, we define the following attributes:
+
+ toobright: The person is in a bright place, sufficient for good
+ rendering on video.
+
+
+
+Schulzrinne, et al. Standards Track [Page 12]
+
+RFC 4480 RIPD July 2006
+
+
+ ok: The environmental conditions are suitable for video.
+
+ dark: The person is in a dark place, and thus the camera may not be
+ able to capture a good image.
+
+ unknown: The place attributes for video are unknown.
+
+ For text (real-time text and instant messaging), we define
+
+ uncomfortable: Typing or other text entry is uncomfortable.
+
+ inappropriate: Typing or other text entry is inappropriate, e.g.,
+ since the user is in a vehicle or house of worship.
+
+ ok: The environmental conditions are suitable for text-based
+ communications.
+
+ unknown: The place attributes for text are unknown.
+
+ This list can be augmented by free-text values in a note or
+ additional IANA-registered values (Section 7).
+
+ The <place-is> element contains other elements, e.g.,
+
+ <place-is>
+ <audio>
+ <noisy />
+ </audio>
+ <video>
+ <dark />
+ </video>
+ </place-is>
+
+ The <place-is> element MAY be qualified with the 'from' and 'until'
+ attributes as described in Section 3.1.
+
+3.7. Place-type Element
+
+ The <place-type> element describes the type of place the person is
+ currently at. This offers the watcher an indication of what kind of
+ communication is likely to be appropriate. The initial set of values
+ is contained in RFC 4589 [12].
+
+ This list can be augmented by free-text values or additional IANA-
+ registered values as described in RFC 4589.
+
+
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 13]
+
+RFC 4480 RIPD July 2006
+
+
+ The <place-type> element is a choice of elements, as in
+
+ <place-type>
+ <pt:street/>
+ </place-type>
+
+ The <place-type> element MAY be qualified with the 'from' and 'until'
+ attributes as described in Section 3.1.
+
+3.8. Privacy Element
+
+ The <privacy> element indicates which types of communication third
+ parties in the vicinity of the presentity are unlikely to be able to
+ intercept accidentally or intentionally. This does not in any way
+ describe the privacy properties of the electronic communication
+ channel, e.g., properties of the encryption algorithm or the network
+ protocol used.
+
+ audio: Inappropriate individuals are not likely to overhear audio
+ communications.
+
+ text: Inappropriate individuals are not likely to see text
+ communications.
+
+ unknown: This information is unknown.
+
+ video: Inappropriate individuals are not likely to see video
+ communications.
+
+ The <privacy> element can be used by logic executing on the
+ watcher or by a composer to filter, sort and label tuples. For
+ example, a composer may have rules that limit the publication of
+ tuples labeled "private" to a select subset of the watchers.
+
+ The <privacy> element MAY be qualified with the 'from' and 'until'
+ attributes as described in Section 3.1.
+
+ Example:
+
+ <privacy>
+ <text/>
+ <audio/>
+ </privacy>
+
+
+
+
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 14]
+
+RFC 4480 RIPD July 2006
+
+
+3.9. Relationship Element
+
+ The <relationship> element extends <tuple> and designates the type of
+ relationship an alternate contact has with the presentity. This
+ element is provided only if the tuple refers to somebody other than
+ the presentity. Relationship values include "family", "friend",
+ "associate" (e.g., for a colleague), "assistant", "supervisor",
+ "self", and "unknown". The default is "self".
+
+ If a relationship is indicated, the URI in the <contact> element
+ refers to the entity, such as the assistant, that has a relationship
+ to the presentity, not the presentity itself.
+
+ Like tuples without a <relationship> qualifier, the <contact> element
+ for tuples labeled with a relationship can contain either a
+ communication URI such as "im", "sip", "sips", "h323", "tel", or
+ "mailto", or a presence URI, such as "pres" or "sip".
+
+ Example:
+
+ <relationship>
+ <friend/>
+ </relationship>
+
+3.10. Service Class
+
+ The <service-class> element extends <tuple> and designates the type
+ of service offered.
+
+ electronic: Delivery of information by electronic means, i.e.,
+ without delivering physical objects. Examples include telephone,
+ fax, email, instant messaging, and SMS.
+
+ postal: Delivery by the postal service, e.g., as a letter, parcel,
+ or postcard. Delivery could be to a post office box or central
+ mailroom rather than the presentity's office location, for
+ example.
+
+ courier: Delivery by messenger, overnight delivery, or courier.
+ Courier-delivered messages are usually delivered to a receptionist
+ rather than, say, a mailroom or receiving department.
+
+ freight: Delivery by freight carrier, typically of larger objects
+ that are not sent by postal mail or courier. The recipient is
+ often the shipping department or a loading dock.
+
+ in-person: Describes the coordinates for visits in person, as by a
+ visitor, i.e., usually somebody's office or residence.
+
+
+
+Schulzrinne, et al. Standards Track [Page 15]
+
+RFC 4480 RIPD July 2006
+
+
+ unknown: The type of service is unknown.
+
+ Electronic service is implied if omitted. The service types
+ 'postal', 'courier', 'freight', and 'in-person' MUST NOT be used
+ unless the contact URI is empty. Additional data elements defined
+ elsewhere describe the physical service delivery address for the in-
+ person, postal, or delivery services. Such addresses might be
+ specified in geospatial coordinates, civic addresses, or some
+ specialized address format, e.g., for interstellar addresses or a
+ company-specific delivery system.
+
+ Example:
+
+ <service-class><postal/></service-class>
+
+3.11. Sphere Element
+
+ The <sphere> element designates the current state and role that the
+ person plays. For example, it might describe whether the person is
+ in a work mode, at home, or participating in activities related to
+ some other organization such as the IETF or a church. This document
+ does not define names for these spheres except for two common ones,
+ "work" and "home", as well as "unknown".
+
+ Spheres allow the person to easily turn on or off certain rules that
+ depend on what groups of people should be made aware of the person's
+ status. For example, if the person is a Boy Scout leader, he might
+ set the sphere to "scouting" and then have a rule set that allows
+ other scout masters in his troop to see his presence status. As soon
+ as he switches his status to "work", "home", or some other sphere,
+ the fellow scouts would lose access.
+
+ The <sphere> element MAY be qualified with the 'from' and 'until'
+ attributes as described in Section 3.1.
+
+ Example:
+
+ <sphere>
+ <home/>
+ </sphere>
+
+3.12. Status-Icon Element
+
+ The <status-icon> element includes a URI pointing to an image (icon)
+ representing the current status of the person or service. The
+ watcher MAY use this information to represent the status in a
+ graphical user interface. Presentities SHOULD provide images of
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 16]
+
+RFC 4480 RIPD July 2006
+
+
+ sizes and aspect ratios that are appropriate for rendering as an
+ icon. Support for JPEG, PNG, and GIF formats is RECOMMENDED.
+
+ Watchers resolving the URI MUST validate whether the local copy of
+ the icon is current when receiving a notification, using the standard
+ cache control mechanism in the URI-identified retrieval protocol.
+
+ Example:
+
+ <status-icon>http://www.example.com/playing.gif</status-icon>
+
+3.13. Time Offset
+
+ The <time-offset> element describes the number of minutes of offset
+ from UTC at the person's current location. A positive number
+ indicates that the local time-of-day is ahead (i.e., east of)
+ Universal Time, while a negative number indicates that the local
+ time-of-day is behind (i.e., west of) Universal Time. Transitions
+ into and out of daylight savings time may temporarily cause a
+ difference between the true offset from UTC and the time offset
+ element.
+
+ An optional attribute, description, can be used to describe the
+ offset, e.g., by labeling the time zone. This description is meant
+ for human consumption.
+
+ Publishers on mobile devices SHOULD NOT publish this information
+ unless they know the time offset information to reflect the current
+ location. (For example, many laptop users do not update their time
+ zone when traveling.) Publishers SHOULD update the information
+ whenever they discover that their UTC offset has changed.
+
+ Example:
+
+ <time-offset description="America/New_York">-300
+ </time-offset>
+
+3.14. User-Input Element
+
+ The <user-input> element records the user-input or usage state of the
+ service or device, based on human user input, e.g., keyboard,
+ pointing device, or voice. If contained in a <person> element, it
+ summarizes any user input activity across all services and devices
+ operated by the presentity. The mechanism for such aggregation is
+ beyond the scope of this document, but generally reflects the most
+ recent user input across all devices and services. The element can
+ assume one of two values, namely, 'active' or 'idle', with an
+ optional 'last-input' attribute that records when the last user input
+
+
+
+Schulzrinne, et al. Standards Track [Page 17]
+
+RFC 4480 RIPD July 2006
+
+
+ was received. An optional 'idle-threshold' element records how long
+ the presentity will wait before reporting the service or device to be
+ idle, measured in seconds.
+
+ (A two-state model was chosen since it would otherwise be necessary
+ to send repeated last-input updates during continuous activity.)
+
+ A service that wants to indicate user input activity sends a <user-
+ input> 'active' indication when the user has provided user input
+ within a configurable interval of time, the idle-threshold. If the
+ user ceases to provide input and the idle-threshold has elapsed, the
+ tuple is marked with a <user-input> 'idle' indication instead,
+ optionally including the time of last activity in the 'last-input'
+ attribute. An example is below:
+
+ <user-input idle-threshold="600"
+ last-input="2004-10-21T13:20:00.000-05:00">idle</user-input>
+
+ Depending on device or service capabilities, user input may be
+ detected only for a particular application, i.e., when the
+ application has user focus or when a user has sent a message or
+ placed a call, or can be based on user input across all applications
+ running on one end system.
+
+ The <user-input> element may be used by a watcher, typically in
+ combination with other data, to estimate how likely a user is to
+ answer when contacting the service. A tuple that has not been used
+ in a while may still be OPEN, but a watcher may choose to first
+ contact a URI in a tuple that is both OPEN and has been used more
+ recently.
+
+ The <user-input> attribute can be omitted if the presentity wants to
+ indicate that the device has not been used for a while, but does not
+ want to reveal the precise duration, as in the following:
+
+ <user-input>idle</user-input>
+
+ Configuration MUST include the option to omit the 'last-input'
+ attribute.
+
+4. Example
+
+ The example below describes the presentity
+ 'pres:someone@example.com', which has a SIP contact,
+ 'sip:someone@example.com', representing a service. It also has a
+ device contact, as an email box. The presentity is in a meeting, in
+ a public office setting. The 'until' information indicates that he
+ will be there until 5:30 pm local time. The presentity also has an
+
+
+
+Schulzrinne, et al. Standards Track [Page 18]
+
+RFC 4480 RIPD July 2006
+
+
+ assistant, sip:secretary@example.com, who happens to be available for
+ communications.
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <presence xmlns="urn:ietf:params:xml:ns:pidf"
+ xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model"
+ xmlns:lt="urn:ietf:params:xml:ns:location-type"
+ xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid"
+ entity="pres:someone@example.com">
+
+ <tuple id="bs35r9">
+ <status>
+ <basic>open</basic>
+ </status>
+ <dm:deviceID>urn:device:0003ba4811e3</dm:deviceID>
+ <rpid:relationship><rpid:self/></rpid:relationship>
+ <rpid:service-class><rpid:electronic/></rpid:service-class>
+ <contact priority="0.8">im:someone@mobile.example.net</contact>
+ <note xml:lang="en">Don't Disturb Please!</note>
+ <note xml:lang="fr">Ne derangez pas, s'il vous plait</note>
+ <timestamp>2005-10-27T16:49:29Z</timestamp>
+ </tuple>
+
+ <tuple id="ty4658">
+ <status>
+ <basic>open</basic>
+ </status>
+ <rpid:relationship><rpid:assistant/></rpid:relationship>
+ <contact priority="1.0">mailto:secretary@example.com</contact>
+ </tuple>
+
+ <tuple id="eg92n8">
+ <status>
+ <basic>open</basic>
+ </status>
+ <dm:deviceID>urn:x-mac:0003ba4811e3</dm:deviceID>
+ <rpid:class>email</rpid:class>
+ <rpid:service-class><rpid:electronic/></rpid:service-class>
+ <rpid:status-icon>http://example.com/mail.png</rpid:status-icon>
+ <contact priority="1.0">mailto:someone@example.com</contact>
+ </tuple>
+
+ <note>I'll be in Tokyo next week</note>
+
+ <dm:device id="pc147">
+ <rpid:user-input idle-threshold="600"
+ last-input="2004-10-21T13:20:00-05:00">idle</rpid:user-input>
+ <dm:deviceID>urn:device:0003ba4811e3</dm:deviceID>
+
+
+
+Schulzrinne, et al. Standards Track [Page 19]
+
+RFC 4480 RIPD July 2006
+
+
+ <dm:note>PC</dm:note>
+ </dm:device>
+
+ <dm:person id="p1">
+ <rpid:activities from="2005-05-30T12:00:00+05:00"
+ until="2005-05-30T17:00:00+05:00">
+ <rpid:note>Far away</rpid:note>
+ <rpid:away/>
+ </rpid:activities>
+ <rpid:class>calendar</rpid:class>
+ <rpid:mood>
+ <rpid:angry/>
+ <rpid:other>brooding</rpid:other>
+ </rpid:mood>
+ <rpid:place-is>
+ <rpid:audio>
+ <rpid:noisy/>
+ </rpid:audio>
+ </rpid:place-is>
+ <rpid:place-type><lt:residence/></rpid:place-type>
+ <rpid:privacy><rpid:unknown/></rpid:privacy>
+ <rpid:sphere>bowling league</rpid:sphere>
+ <rpid:status-icon>http://example.com/play.gif</rpid:status-icon>
+
+ <rpid:time-offset>-240</rpid:time-offset>
+ <dm:note>Scoring 120</dm:note>
+ <dm:timestamp>2005-05-30T16:09:44+05:00</dm:timestamp>
+ </dm:person>
+ </presence>
+
+5. XML Schema Definitions
+
+ The RPID schema is shown below. Due to limitations in composing
+ schemas, not all XML documents that validate against the schema below
+ are semantically valid RPID documents. In particular, the schema
+ allows each element to appear anyhere in PIDF or data-model elements;
+ Table 1 restricts where these elements can appear for semantically
+ valid RPID documents. Elements that do not have from/until
+ parameters MUST NOT appear more than once in each <person>, <tuple>,
+ or <device>.
+
+5.1. urn:ietf:params:xml:ns:pidf:rpid
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <xs:schema targetNamespace="urn:ietf:params:xml:ns:pidf:rpid"
+ xmlns="urn:ietf:params:xml:ns:pidf:rpid"
+ xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+
+
+
+Schulzrinne, et al. Standards Track [Page 20]
+
+RFC 4480 RIPD July 2006
+
+
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified">
+
+ <xs:simpleType name="activeIdle">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="active"/>
+ <xs:enumeration value="idle"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:element name="activities">
+ <xs:annotation>
+ <xs:documentation>
+ Describes what the person is currently doing, expressed as
+ an enumeration of activity-describing elements. A person
+ can be engaged in multiple activities at the same time,
+ e.g., traveling and having a meal.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="note" type="Note_t" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:choice>
+ <xs:element name="unknown" type="empty" minOccurs="0"/>
+ <xs:sequence maxOccurs="unbounded">
+ <xs:choice>
+ <xs:element name="appointment"
+ type="empty" />
+ <xs:element name="away"
+ type="empty" />
+ <xs:element name="breakfast"
+ type="empty" />
+ <xs:element name="busy"
+ type="empty" />
+ <xs:element name="dinner"
+ type="empty" />
+ <xs:element name="holiday"
+ type="empty" />
+ <xs:element name="in-transit"
+ type="empty" />
+ <xs:element name="looking-for-work"
+ type="empty" />
+ <xs:element name="meal"
+ type="empty" />
+ <xs:element name="meeting"
+ type="empty" />
+
+
+
+Schulzrinne, et al. Standards Track [Page 21]
+
+RFC 4480 RIPD July 2006
+
+
+ <xs:element name="on-the-phone"
+ type="empty" />
+ <xs:element name="performance"
+ type="empty" />
+ <xs:element name="permanent-absence"
+ type="empty" />
+ <xs:element name="playing"
+ type="empty" />
+ <xs:element name="presentation"
+ type="empty" />
+ <xs:element name="shopping"
+ type="empty" />
+ <xs:element name="sleeping"
+ type="empty" />
+ <xs:element name="spectator"
+ type="empty" />
+ <xs:element name="steering"
+ type="empty" />
+ <xs:element name="travel"
+ type="empty" />
+ <xs:element name="tv"
+ type="empty" />
+ <xs:element name="vacation"
+ type="empty" />
+ <xs:element name="working"
+ type="empty" />
+ <xs:element name="worship"
+ type="empty" />
+ <xs:element name="other"
+ type="Note_t" />
+ <xs:any namespace="##other"
+ maxOccurs="unbounded" processContents="lax"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="fromUntil"/>
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:anyAttribute namespace="##any" processContents="lax"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="class" type="xs:token">
+ <xs:annotation>
+ <xs:documentation>
+ Describes the class of the service, device or person.
+ </xs:documentation>
+ </xs:annotation>
+
+
+
+Schulzrinne, et al. Standards Track [Page 22]
+
+RFC 4480 RIPD July 2006
+
+
+ </xs:element>
+
+ <xs:element name="mood">
+ <xs:annotation>
+ <xs:documentation>
+ Describes the mood of the presentity.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="note" type="Note_t" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:choice>
+ <xs:element name="unknown" type="empty"/>
+ <xs:sequence maxOccurs="unbounded">
+ <xs:choice>
+ <xs:element name="afraid"
+ type="empty"/>
+ <xs:element name="amazed"
+ type="empty"/>
+ <xs:element name="angry"
+ type="empty"/>
+ <xs:element name="annoyed"
+ type="empty"/>
+ <xs:element name="anxious"
+ type="empty" />
+ <xs:element name="ashamed"
+ type="empty" />
+ <xs:element name="bored"
+ type="empty" />
+ <xs:element name="brave"
+ type="empty" />
+ <xs:element name="calm"
+ type="empty" />
+ <xs:element name="cold"
+ type="empty" />
+ <xs:element name="confused"
+ type="empty" />
+ <xs:element name="contented"
+ type="empty" />
+ <xs:element name="cranky"
+ type="empty" />
+ <xs:element name="curious"
+ type="empty" />
+ <xs:element name="depressed"
+ type="empty" />
+ <xs:element name="disappointed"
+ type="empty" />
+
+
+
+Schulzrinne, et al. Standards Track [Page 23]
+
+RFC 4480 RIPD July 2006
+
+
+ <xs:element name="disgusted"
+ type="empty" />
+ <xs:element name="distracted"
+ type="empty" />
+ <xs:element name="embarrassed"
+ type="empty" />
+ <xs:element name="excited"
+ type="empty" />
+ <xs:element name="flirtatious"
+ type="empty" />
+ <xs:element name="frustrated"
+ type="empty" />
+ <xs:element name="grumpy"
+ type="empty" />
+ <xs:element name="guilty"
+ type="empty" />
+ <xs:element name="happy"
+ type="empty" />
+ <xs:element name="hot"
+ type="empty" />
+ <xs:element name="humbled"
+ type="empty" />
+ <xs:element name="humiliated"
+ type="empty" />
+ <xs:element name="hungry"
+ type="empty" />
+ <xs:element name="hurt"
+ type="empty" />
+ <xs:element name="impressed"
+ type="empty" />
+ <xs:element name="in_awe"
+ type="empty" />
+ <xs:element name="in_love"
+ type="empty" />
+ <xs:element name="indignant"
+ type="empty" />
+ <xs:element name="interested"
+ type="empty" />
+ <xs:element name="invincible"
+ type="empty" />
+ <xs:element name="jealous"
+ type="empty" />
+ <xs:element name="lonely"
+ type="empty" />
+ <xs:element name="mean"
+ type="empty" />
+ <xs:element name="moody"
+ type="empty" />
+
+
+
+Schulzrinne, et al. Standards Track [Page 24]
+
+RFC 4480 RIPD July 2006
+
+
+ <xs:element name="nervous"
+ type="empty" />
+ <xs:element name="neutral"
+ type="empty" />
+ <xs:element name="offended"
+ type="empty" />
+ <xs:element name="playful"
+ type="empty" />
+ <xs:element name="proud"
+ type="empty" />
+ <xs:element name="relieved"
+ type="empty" />
+ <xs:element name="remorseful"
+ type="empty" />
+ <xs:element name="restless"
+ type="empty" />
+ <xs:element name="sad"
+ type="empty" />
+ <xs:element name="sarcastic"
+ type="empty" />
+ <xs:element name="serious"
+ type="empty" />
+ <xs:element name="shocked"
+ type="empty" />
+ <xs:element name="shy"
+ type="empty" />
+ <xs:element name="sick"
+ type="empty" />
+ <xs:element name="sleepy"
+ type="empty" />
+ <xs:element name="stressed"
+ type="empty" />
+ <xs:element name="surprised"
+ type="empty" />
+ <xs:element name="thirsty"
+ type="empty" />
+ <xs:element name="worried"
+ type="empty" />
+ <xs:element name="other"
+ type="Note_t" />
+ <xs:any namespace="##other"
+ maxOccurs="unbounded" processContents="lax"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="fromUntil"/>
+ <xs:attribute name="id" type="xs:ID"/>
+
+
+
+Schulzrinne, et al. Standards Track [Page 25]
+
+RFC 4480 RIPD July 2006
+
+
+ <xs:anyAttribute namespace="##any" processContents="lax"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="place-is">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="note" type="Note_t" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:element name="audio" minOccurs="0">
+ <xs:complexType>
+ <xs:choice>
+ <xs:element name="noisy" type="empty" />
+ <xs:element name="ok" type="empty" />
+ <xs:element name="quiet" type="empty" />
+ <xs:element name="unknown" type="empty" />
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="video" minOccurs="0">
+ <xs:complexType>
+ <xs:choice>
+ <xs:element name="toobright" type="empty" />
+ <xs:element name="ok" type="empty" />
+ <xs:element name="dark" type="empty" />
+ <xs:element name="unknown" type="empty" />
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="text" minOccurs="0">
+ <xs:complexType>
+ <xs:choice>
+ <xs:element name="uncomfortable" type="empty" />
+ <xs:element name="inappropriate" type="empty" />
+ <xs:element name="ok" type="empty" />
+ <xs:element name="unknown" type="empty" />
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attributeGroup ref="fromUntil"/>
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:anyAttribute namespace="##any" processContents="lax"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="place-type">
+ <xs:annotation>
+
+
+
+Schulzrinne, et al. Standards Track [Page 26]
+
+RFC 4480 RIPD July 2006
+
+
+ <xs:documentation>
+ Describes the type of place the person is currently at.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="note" type="Note_t" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:choice>
+ <xs:element name="other" type="Note_t"/>
+ <xs:any namespace="##other" maxOccurs="unbounded"
+ processContents="lax"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="fromUntil"/>
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:anyAttribute namespace="##any" processContents="lax"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="privacy">
+ <xs:annotation>
+ <xs:documentation>
+ Indicates which type of communication third parties in the
+ vicinity of the presentity are unlikely to be able to
+ intercept accidentally or intentionally.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="note" type="Note_t" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:choice>
+ <xs:element name="unknown" type="empty"/>
+ <xs:sequence minOccurs="1">
+ <xs:element name="audio" type="empty" minOccurs="0"/>
+ <xs:element name="text" type="empty" minOccurs="0"/>
+ <xs:element name="video" type="empty" minOccurs="0"/>
+ <xs:any namespace="##other" minOccurs="0"
+ maxOccurs="unbounded" processContents="lax"/>
+ </xs:sequence>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="fromUntil"/>
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:anyAttribute namespace="##any" processContents="lax"/>
+ </xs:complexType>
+ </xs:element>
+
+
+
+Schulzrinne, et al. Standards Track [Page 27]
+
+RFC 4480 RIPD July 2006
+
+
+ <xs:element name="relationship">
+ <xs:annotation>
+ <xs:documentation>
+ Designates the type of relationship an alternate contact
+ has with the presentity.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="note" type="Note_t" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:choice>
+ <xs:element name="assistant" type="empty" />
+ <xs:element name="associate" type="empty" />
+ <xs:element name="family" type="empty" />
+ <xs:element name="friend" type="empty" />
+ <xs:element name="other" type="Note_t" minOccurs="0" />
+ <xs:element name="self" type="empty" />
+ <xs:element name="supervisor" type="empty" />
+ <xs:element name="unknown" type="empty" />
+ <xs:any namespace="##other" maxOccurs="unbounded"
+ processContents="lax"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="service-class">
+ <xs:annotation>
+ <xs:documentation>
+ Designates the type of service offered.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="note" type="Note_t" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:choice>
+ <xs:element name="courier" type="empty" />
+ <xs:element name="electronic" type="empty" />
+ <xs:element name="freight" type="empty" />
+ <xs:element name="in-person" type="empty" />
+ <xs:element name="postal" type="empty" />
+ <xs:element name="unknown" type="empty" />
+ <xs:any namespace="##other" maxOccurs="unbounded"
+ processContents="lax"/>
+ </xs:choice>
+ </xs:sequence>
+
+
+
+Schulzrinne, et al. Standards Track [Page 28]
+
+RFC 4480 RIPD July 2006
+
+
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="sphere">
+ <xs:annotation>
+ <xs:documentation>
+ Designates the current state and role that the person plays.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:choice minOccurs="0">
+ <xs:element name="home" type="empty" />
+ <xs:element name="work" type="empty" />
+ <xs:element name="unknown" type="empty" />
+ <xs:any namespace="##other" maxOccurs="unbounded"
+ processContents="lax"/>
+ </xs:choice>
+ <xs:attributeGroup ref="fromUntil"/>
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:anyAttribute namespace="##any" processContents="lax"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="status-icon">
+ <xs:annotation>
+ <xs:documentation>
+ A URI pointing to an image (icon) representing the current
+ status of the person or service.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:anyURI">
+ <xs:attributeGroup ref="fromUntil"/>
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:anyAttribute namespace="##any" processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="time-offset">
+ <xs:annotation>
+ <xs:documentation>
+ Describes the number of minutes of offset from UTC at the
+ user's current location.
+ </xs:documentation>
+ </xs:annotation>
+
+
+
+Schulzrinne, et al. Standards Track [Page 29]
+
+RFC 4480 RIPD July 2006
+
+
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:integer">
+ <xs:attributeGroup ref="fromUntil"/>
+ <xs:attribute name="description"
+ type="xs:string"/>
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:anyAttribute namespace="##any" processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="user-input">
+ <xs:annotation>
+ <xs:documentation>
+ Records the user-input or usage state of the service or
+ device.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="activeIdle">
+ <xs:attribute name="idle-threshold"
+ type="xs:positiveInteger"/>
+ <xs:attribute name="last-input" type="xs:dateTime"/>
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:anyAttribute namespace="##any"
+ processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:schema>
+
+6. Extending RPID
+
+ Any developer can introduce their own element names, avoiding
+ conflict by choosing an appropriate namespace URI. To add new
+ standardized elements to the enumerations <activities>, <mood>,
+ <privacy>, <relationship> and <service-class>, the extension process
+ described in PIDF [9] is followed, i.e., such extensions would use
+ namespace designators such as urn:ietf:params:xml:ns:pidf:ext, where
+ 'ext' is the name of the extension. Any new values for the <place-
+ type> element are assigned according to [12] and are given a
+ namespace designator at their time of registration.
+
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 30]
+
+RFC 4480 RIPD July 2006
+
+
+ To avoid the unnecessary proliferation of XML namespaces containing a
+ single element, groups of element registrations for each of these
+ enumerations, such as <privacy>, SHOULD be bundled into a single
+ namespace rather than assigning a new namespace to each new element.
+
+7. IANA Considerations
+
+7.1. URN Sub-Namespace Registration for
+ 'urn:ietf:params:xml:ns:pidf:rpid'
+
+ URI: urn:ietf:params:xml:ns:pidf:rpid
+ Description: This is the XML namespace for XML elements defined by
+ RFC 4480 to describe rich presence information extensions for the
+ status element in the PIDF presence document format in the
+ application/pidf+xml content type.
+ Registrant Contact: IETF, SIMPLE working group, simple@ietf.org,
+ Henning Schulzrinne, hgs@cs.columbia.edu
+
+ 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>RPID: Rich Presence Extensions to the Presence
+ Information Data Format (PIDF)</title>
+ </head>
+ <body>
+ <h1>Namespace for rich presence extension</h1>
+ <h2>urn:ietf:params:xml:ns:pidf:rpid</h2>
+ <p>See <a href="http://www.rfc-editor.org/rfc/rfc4480.txt">
+ RFC&4480;</a>.</p>
+ </body>
+ </html>
+ END
+
+
+
+
+
+
+
+
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 31]
+
+RFC 4480 RIPD July 2006
+
+
+7.2. Schema Registration for Schema
+ 'urn:ietf:params:xml:ns:pidf:status:rpid'
+
+ URI: urn:ietf:params:xml:ns:pidf:status:rpid
+ Registrant Contact: IESG
+ XML: See Section 5
+
+ Note that this document does not need a new content type. It
+ inherits the content type from [8], namely, application/pidf+xml.
+
+8. Internationalization Considerations
+
+ RPID contains mostly tokens that are meant for consumption by
+ programs, not directly by humans. Programs are expected to translate
+ those tokens into language-appropriate text strings according to the
+ preferences of the watcher.
+
+ Some elements may contain <note> and <other> elements that can
+ contain free text. These elements SHOULD be labeled with the 'xml:
+ lang' attribute to indicate their language and script. The
+ specification allows multiple occurrences of these elements so that
+ the presentity can convey <note> and <other> elements in multiple
+ scripts and languages. If no 'xml:lang' attribute is provided, the
+ default value is "i-default" [3].
+
+ Since RPID is represented in XML, it provides native support for
+ encoding information using the Unicode character set and its more
+ compact representations including UTF-8. Conformant XML processors
+ recognize both UTF-8 and UTF-16. Though XML includes provisions to
+ identify and use other character encodings through use of an
+ "encoding" attribute in an <?xml?> declaration, use of UTF-8 is
+ RECOMMENDED in environments where parser encoding support
+ incompatibility exists.
+
+ A description of time-zone considerations can be found in
+ Section 3.13.
+
+9. Security Considerations
+
+ The security considerations in [8] apply, as well as [7]. Compared
+ to PIDF, this presence document format reveals additional information
+ about presentities that can be highly sensitive. Beyond traditional
+ security measures to protect confidentiality and integrity, systems
+ should offer a means to selectively reveal information to particular
+ watchers and to inspect the information that is being published,
+ particularly if it is generated automatically from other sources,
+ such as calendars or sensors.
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 32]
+
+RFC 4480 RIPD July 2006
+
+
+ Like any reference to an external object, the <status-icon> may allow
+ the presentity to induce the watcher to retrieve data from a third
+ party (content indirection attack), thus either retrieving harmful
+ content or adding to the server load of the referenced resource.
+
+10. References
+
+10.1. Normative References
+
+ [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
+ Levels", BCP 14, RFC 2119, March 1997.
+
+ [2] Moats, R., "URN Syntax", RFC 2141, May 1997.
+
+ [3] Alvestrand, H., "IETF Policy on Character Sets and Languages",
+ BCP 18, RFC 2277, January 1998.
+
+ [4] Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
+ August 1999.
+
+ [5] Day, M., Rosenberg, J., and H. Sugano, "A Model for Presence
+ and Instant Messaging", RFC 2778, February 2000.
+
+ [6] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
+ January 2004.
+
+ [7] Rosenberg, J., "A Presence Event Package for the Session
+ Initiation Protocol (SIP)", RFC 3856, August 2004.
+
+ [8] Sugano, H., Fujimoto, S., Klyne, G., Bateman, A., Carr, W., and
+ J. Peterson, "Presence Information Data Format (PIDF)", RFC
+ 3863, August 2004.
+
+ [9] Yergeau, F., Paoli, J., Sperberg-McQueen, C., Bray, T., and E.
+ Maler, "Extensible Markup Language (XML) 1.0 (Third Edition),"
+ W3C REC REC-xml-20040204, February 2004.
+
+ [10] Maloney, M., Beech, D., Thompson, H., and N. Mendelsohn, "XML
+ Schema Part 1: Structures Second Edition", W3C REC REC-
+ xmlschema-1-20041028, October 2004.
+
+ [11] Malhotra, A. and P. Biron, "XML Schema Part 2: Datatypes Second
+ Edition", W3C REC REC-xmlschema-2-20041028, October 2004.
+
+ [12] Schulzrinne, H. and H. Tschofenig, "Location Types Registry",
+ RFC 4589, July 2006.
+
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 33]
+
+RFC 4480 RIPD July 2006
+
+
+10.2. Informative References
+
+ [13] Dawson, F. and D. Stenerson, "Internet Calendaring and
+ Scheduling Core Object Specification (iCalendar)", RFC 2445,
+ November 1998.
+
+ [14] Peterson, J., "Common Profile for Instant Messaging (CPIM)",
+ RFC 3860, August 2004.
+
+ [15] Lennox, J., Wu, X., and H. Schulzrinne, "Call Processing
+ Language (CPL): A Language for User Control of Internet
+ Telephony Services", RFC 3880, October 2004.
+
+ [16] Rosenberg, J., "A Data Model for Presence", RFC 4479, July
+ 2006.
+
+ [17] Lisetti, C., "Personality, Affect, and Emotion Taxonomy for
+ Socially Intelligent Agents", Proceedings of FLAIRS 2002, 2002.
+
+ [18] Open Mobile Alliance, "The Wireless Village Initiative:
+ Presence Attributes 1.1", Recommendation WV-29, 2004.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 34]
+
+RFC 4480 RIPD July 2006
+
+
+Appendix A. Acknowledgements
+
+ The document reflects the discussion on the SIMPLE mailing list, with
+ contributions from many individuals. David L. Black, Miguel Garcia,
+ Avshalom Houri, Markus Isomaki, Rick Jones, Hisham Khartabil,
+ Jonathan Lennox, Eva-Maria Leppanen, Mikko Lonnfors, Rohan Mahy,
+ Miguel Marcia, Andrew Newton, Aki Niemi, Jon Peterson, and Brian
+ Rosen provided detailed comments and suggestions. Xiaotao Wu
+ assisted with schema testing. Jari Urpalainen provided valuable
+ advice on XML schema issues.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 35]
+
+RFC 4480 RIPD July 2006
+
+
+Authors' Addresses
+
+ Henning Schulzrinne
+ Columbia University
+ Department of Computer Science
+ 450 Computer Science Building
+ New York, NY 10027
+ US
+
+ Phone: +1 212 939 7042
+ EMail: hgs+simple@cs.columbia.edu
+ URI: http://www.cs.columbia.edu
+
+
+ Vijay Gurbani
+ Lucent
+ 2000 Naperville Rd.
+ Room 6G-440
+ Naperville, IL 60566-7033
+ US
+
+ EMail: vkg@lucent.com
+
+
+ Paul Kyzivat
+ Cisco Systems
+ BXB500 C2-2
+ 1414 Massachusetts Avenue
+ Boxborough, MA 01719
+ US
+
+ EMail: pkyzivat@cisco.com
+
+
+ Jonathan Rosenberg
+ Cisco Systems
+ 600 Lanidex Plaza
+ Parsippany, NJ 07054-2711
+ US
+
+ EMail: jdrosen@cisco.com
+
+
+
+
+
+
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 36]
+
+RFC 4480 RIPD July 2006
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2006).
+
+ 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.
+
+ 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.
+
+Intellectual Property
+
+ 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.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is provided by the IETF
+ Administrative Support Activity (IASA).
+
+
+
+
+
+
+
+Schulzrinne, et al. Standards Track [Page 37]
+