Abstract: | This specification defines a payload format for communicating information about the status of a user. The payload format is typically transported using the personal eventing protocol, a profile of XMPP publish-subscribe specified in XEP-0163. |
Author: | Philipp Hörist |
Copyright: | © 1999 – 2017 XMPP Standards Foundation. SEE LEGAL NOTICES. |
Status: | ProtoXEP |
Type: | Standards Track |
Version: | 0.0.1 |
Last Updated: | 2018-03-16 |
WARNING: This document has not yet been accepted for consideration or approved in any official manner by the XMPP Standards Foundation, and this document is not yet an XMPP Extension Protocol (XEP). If this document is accepted as a XEP by the XMPP Council, it will be published at <http://xmpp.org/extensions/> and announced on the <standards@xmpp.org> mailing list.
1. Introduction
2. Protocol
2.1. Data Format
2.2. Pubsub Transport
3. Requirements
4. Glossary
5. Use Cases
6. Business Rules
7. Implementation Notes
8. Internationalization Considerations
9. Security Considerations
10. IANA Considerations
11. XMPP Registrar Considerations
11.1. Protocol Namespaces
12. XML Schema
Appendices
A: Document Information
B: Author Information
C: Legal Notices
D: Relation to XMPP
E: Discussion Venue
F: Requirements Conformance
G: Notes
H: Revision History
This document defines an extension mechanism for capturing "extended presence" data about user status.
Information about user status is provided by the user and propagated on the network by the user's client. The information is structured via a <status/> element that is qualified by the 'http://jabber.org/protocol/status' namespace. The status itself is provided as in the <text/> child. All described elements are REQUIRED. Here is an example:
<status xmlns='http://jabber.org/protocol/status'> <text>Away!</text> </status>
Status information MUST be communicated and transported by means of the Publish-Subscribe (XEP-0060) [1] subset specified in Personal Eventing Protocol (XEP-0163) [2].
Example 1. User Publishes Status
<iq from='juliet@capulet.lit/balcony' id='publish1' type='set'> <pubsub xmlns='http://jabber.org/protocol/pubsub'> <publish node='http://jabber.org/protocol/status'> <item> <status xmlns='http://jabber.org/protocol/status'> <text>Away!</text> </status> </item> </publish> </pubsub> </iq>
The status is then delivered to all subscribers:
Example 2. Status is Delivered to All Subscribers
<message from='juliet@capulet.lit' to='romeo@montague.net'> <event xmlns='http://jabber.org/protocol/pubsub#event'> <items node='http://jabber.org/protocol/status'> <item id='a475804a-0f9c-11dc-98a8-001143d5d5db'> <status xmlns='http://jabber.org/protocol/status'> <text>Away!</text> </status> </item> </items> </event> </message>
In order to indicate that the user is no longer publishing a status, the user's client shall send an empty <status/> element.
Example 3. User Disables Publishing
<iq from='juliet@capulet.lit/balcony' id='publish1' type='set'> <pubsub xmlns='http://jabber.org/protocol/pubsub'> <publish node='http://jabber.org/protocol/status'> <item> <status xmlns='http://jabber.org/protocol/status'/> </item> </publish> </pubsub> </iq>
Example 4. Empty Status Information is Delivered to All Subscribers
<message from='juliet@capulet.lit' to='romeo@montague.net'> <event xmlns='http://jabber.org/protocol/pubsub#event'> <items node='http://jabber.org/protocol/status'> <item id='a475804a-0f9c-11dc-98a8-001143d5d5db'> <status xmlns='http://jabber.org/protocol/status'/> </item> </items> </event> </message>
TODO
MAYBE TODO
TODO
MAYBE TODO
TODO
TODO
Because user status may be published to a large number of pubsub subscribers, users should take care in approving subscribers and in characterizing their current status.
TODO
The XMPP Registrar [3] includes 'http://jabber.org/protocol/status' in its registry of protocol namespaces.
REQUIRED for protocol specifications.
Series: XEP
Number: xxxx
Publisher: XMPP Standards Foundation
Status:
ProtoXEP
Type:
Standards Track
Version: 0.0.1
Last Updated: 2018-03-16
Approving Body: XMPP Council
Dependencies: XMPP Core, XEP-0163
Supersedes: None
Superseded By: None
Short Name: NOT_YET_ASSIGNED
This document in other formats:
XML
PDF
The Extensible Messaging and Presence Protocol (XMPP) is defined in the XMPP Core (RFC 6120) and XMPP IM (RFC 6121) specifications contributed by the XMPP Standards Foundation to the Internet Standards Process, which is managed by the Internet Engineering Task Force in accordance with RFC 2026. Any protocol defined in this document has been developed outside the Internet Standards Process and is to be understood as an extension to XMPP rather than as an evolution, development, or modification of XMPP itself.
The primary venue for discussion of XMPP Extension Protocols is the <standards@xmpp.org> discussion list.
Discussion on other xmpp.org discussion lists might also be appropriate; see <http://xmpp.org/about/discuss.shtml> for a complete list.
Errata can be sent to <editor@xmpp.org>.
The following requirements keywords as used in this document are to be interpreted as described in RFC 2119: "MUST", "SHALL", "REQUIRED"; "MUST NOT", "SHALL NOT"; "SHOULD", "RECOMMENDED"; "SHOULD NOT", "NOT RECOMMENDED"; "MAY", "OPTIONAL".
1. XEP-0060: Publish-Subscribe <https://xmpp.org/extensions/xep-0060.html>.
2. XEP-0163: Personal Eventing Protocol <https://xmpp.org/extensions/xep-0163.html>.
3. The XMPP Registrar maintains a list of reserved protocol namespaces as well as registries of parameters used in the context of XMPP extension protocols approved by the XMPP Standards Foundation. For further information, see <https://xmpp.org/registrar/>.
Note: Older versions of this specification might be available at http://xmpp.org/extensions/attic/
First draft.
(psa)END