XEP-0045: Multi-User Chat

Size: px
Start display at page:

Download "XEP-0045: Multi-User Chat"

Transcription

1 XEP-0045: Multi-User Chat Peter Saint-Andre Version 1.29 Status Type Short Name Draft Standards Track muc This specification defines an XMPP protocol extension for multi-user text chat, whereby multiple XMPP users can exchange messages in the context of a room or channel, similar to Internet Relay Chat (IRC). In addition to standard chatroom features such as room topics and invitations, the protocol defines a strong room control model, including the ability to kick and ban users, to name room moderators and administrators, to require membership or passwords in order to join the room, etc.

2 Legal Copyright This XMPP Extension Protocol is copyright by the XMPP Standards Foundation (XSF). Permissions Permission is hereby granted, free of charge, to any person obtaining a copy of this specification (the Specification ), to make use of the Specification without restriction, including without limitation the rights to implement the Specification in a software program, deploy the Specification in a network service, and copy, modify, merge, publish, translate, distribute, sublicense, or sell copies of the Specification, and to permit persons to whom the Specification is furnished to do so, subject to the condition that the foregoing copyright notice and this permission notice shall be included in all copies or substantial portions of the Specification. Unless separate permission is granted, modified works that are redistributed shall not contain misleading information regarding the authors, title, number, or publisher of the Specification, and shall not claim endorsement of the modified works by the authors, any organization or project to which the authors belong, or the XMPP Standards Foundation. Warranty ## NOTE WELL: This Specification is provided on an AS IS BASIS, WITHOUT WARRANTIES OR CONDI- TIONS OF ANY KIND, express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. ## Liability In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall the XMPP Standards Foundation or any author of this Specification be liable for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising from, out of, or in connection with the Specification or the implementation, deployment, or other use of the Specification (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if the XMPP Standards Foundation or such author has been advised of the possibility of such damages. Conformance This XMPP Extension Protocol has been contributed in full conformance with the XSF s Intellectual Property Rights Policy (a copy of which can be found at < or obtained by writing to XMPP Standards Foundation, P.O. Box 787, Parker, CO USA).

3 Contents 1 Introduction 1 2 Scope 1 3 Requirements 2 4 Terminology General Terms Room Types Dramatis Personae Roles, Affiliations, and Privileges Roles Privileges Default Roles Changing Roles Affiliations Privileges Changing Affiliations Entity Use Cases Discovering a MUC Service Discovering the Features Supported by a MUC Service Discovering Rooms Querying for Room Information Querying for Room Items Querying a Room Occupant Discovering Client Support for MUC Occupant Use Cases Order of Events Entering a Room Groupchat 1.0 Protocol Basic MUC Protocol Presence Broadcast Non-Anonymous Rooms Semi-Anonymous Rooms Password-Protected Rooms Members-Only Rooms Banned Users Nickname Conflict Max Users Locked Room

4 Nonexistent Room Room Logging Discussion History Managing Discussion History Room Subject Live Messages Error Conditions Occupant Modification of the Room Subject Sending a Message to All Occupants Sending a Private Message Changing Nickname Changing Availability Status Inviting Another User to a Room Direct Invitation Mediated Invitation Converting a One-to-One Chat Into a Multi-User Conference Registering with a Room Getting the Member List Discovering Reserved Room Nickname Requesting Voice Exiting a Room Moderator Use Cases Modifying the Room Subject Kicking an Occupant Granting Voice to a Visitor Revoking Voice from a Participant Modifying the Voice List Approving Voice Requests Admin Use Cases Banning a User Modifying the Ban List Granting Membership Revoking Membership Modifying the Member List Granting Moderator Status Revoking Moderator Status Modifying the Moderator List Approving Registration Requests Owner Use Cases Creating a Room General Considerations

5 Creating an Instant Room Creating a Reserved Room Subsequent Room Configuration Notification of Configuration Changes Granting Owner Status Revoking Owner Status Modifying the Owner List Granting Admin Status Revoking Admin Status Modifying the Admin List Destroying a Room Status Codes Internationalization Considerations Security Considerations User Authentication and Authorization End-to-End Encryption Privacy Information Leaks Anonymity Denial of Service Other Considerations IANA Considerations XMPP Registrar Considerations Protocol Namespaces Service Discovery Category/Type Service Discovery Features Well-Known Service Discovery Nodes Field Standardization muc#register FORM_TYPE muc#request FORM_TYPE muc#roomconfig FORM_TYPE muc#roominfo FORM_TYPE Status Codes Registry Process Initial Submission URI Query Types join invite

6 16 Business Rules Addresses Message Presence IQ Implementation Notes Services Allowable Traffic Ghost Users Clients IRC Command Mapping Presence Subscriptions XML Schemas Acknowledgements 154

7 2 SCOPE 1 Introduction Traditionally, instant messaging is thought to consist of one-to-one chat rather than manyto-many chat, which is called variously groupchat or text conferencing. Groupchat functionality is familiar from systems such as Internet Relay Chat (IRC) and the chatroom functionality offered by popular consumer IM services. The Jabber/XMPP community developed and implemented a basic groupchat protocol as long ago as That groupchat 1.0 (GC) protocol provided a minimal feature set for chat rooms but was rather limited in scope. This specification (Multi-User Chat or MUC) builds on the older groupchat 1.0 protocol in a backwards-compatible manner but provides advanced features such as invitations, room moderation and administration, and specialized room types. 2 Scope This document addresses common requirements related to configuration of, participation in, and administration of individual text-based conference rooms. All of the requirements addressed herein apply at the level of the individual room and are common in the sense that they have been widely discussed within the Jabber/XMPP community or are familiar from existing text-based conference environments (e.g., Internet Relay Chat as defined in RFC and its successors: RFC , RFC , RFC , RFC ). This document explicitly does not address the following: Relationships between rooms (e.g., hierarchies of rooms) Management of multi-user chat services (e.g., managing permissions across an entire service or registering a global room nickname); such use cases are specified in Service Administration (XEP-0133) 6 Moderation of individual messages Encryption of messages sent through a room Advanced features such as attaching files to a room, integrating whiteboards, and using MUC rooms as a way to manage the signalling for multi-user audio or video conferencing (see Multiparty Jingle (XEP-0272) 7 ) Interaction between MUC deployments and foreign chat systems (e.g., gateways to IRC or to legacy IM systems) 1 RFC 1459: Internet Relay Chat < 2 RFC 2810: Internet Relay Chat: Architecture < 3 RFC 2811: Internet Relay Chat: Channel Management < 4 RFC 2812: Internet Relay Chat: Client Protocol < 5 RFC 2813: Internet Relay Chat: Server Protocol < 6 XEP-0133: Service Administration < 7 XEP-0272: Multiparty Jingle < 1

8 3 REQUIREMENTS Mirroring or replication of rooms among multiple MUC deployments This limited scope is not meant to disparage such topics, which are of inherent interest; however, it is meant to focus the discussion in this document and to present a comprehensible protocol that can be implemented by client and service developers alike. Future specifications might address the topics mentioned above. 3 Requirements This document addresses the minimal functionality provided by Jabber-based multi-user chat services that existed in 2002 when development of MUC began. For the sake of backwardscompatibility, this document uses the original groupchat 1.0 protocol for this baseline functionality, with the result that: Each room is identified as a room JID <room@service> (e.g., <jdev@conference.jabber.org>), where room is the name of the room and service is the hostname at which the multi-user chat service is running. Each occupant in a room is identified as an occupant JID <room@service/nick>, where nick is the room nickname of the occupant as specified on entering the room or subsequently changed during the occupant s visit. A user enters a room (i.e., becomes an occupant) by sending directed presence to <room@service/nick>. An occupant can change his or her room nickname and availability status within the room by sending presence information to <room@service/newnick>. Messages sent within multi-user chat rooms are of a special type groupchat and are addressed to the room itself (room@service), then reflected to all occupants. An occupant exits a room by sending presence of type unavailable to its current <room@service/nick>. The additional features and functionality addressed in MUC include the following: 1. native conversation logging (no in-room bot required) 2. enabling users to request membership in a room 3. enabling occupants to view an occupant s full JID in a non-anonymous room 4. enabling moderators to view an occupant s full JID in a semi-anonymous room 5. allowing only moderators to change the room subject 2

9 4 TERMINOLOGY 6. enabling moderators to kick participants and visitors from the room 7. enabling moderators to grant and revoke voice (i.e., the privilege to speak) in a moderated room, and to manage the voice list 8. enabling admins to grant and revoke moderator status, and to manage the moderator list 9. enabling admins to ban users from the room, and to manage the ban list 10. enabling admins to grant and revoke membership privileges, and to manage the member list for a members-only room 11. enabling owners to configure various room parameters (e.g., limiting the number of occupants) 12. enabling owners to specify other owners 13. enabling owners to grant and revoke admin status, and to manage the admin list 14. enabling owners to destroy the room In addition, this document provides protocol elements for supporting the following room types: 1. public vs. hidden 2. persistent vs. temporary 3. password-protected vs. unsecured 4. members-only vs. open 5. moderated vs. unmoderated 6. non-anonymous vs. semi-anonymous The extensions needed to implement these requirements are qualified by the namespace (and the #owner, #admin, and #user fragments on the main namespace URI). 4 Terminology 4.1 General Terms Affiliation A long-lived association or connection with a room; the possible affiliations are owner, admin, member, and outcast (naturally it is also possible to have no affiliation); affiliation is distinct from role. An affiliation lasts across a user s visits to a room. 3

10 4 TERMINOLOGY Ban To remove a user from a room such that the user is not allowed to re-enter the room (until and unless the ban has been removed). A banned user has an affiliation of outcast. Bare JID The <user@host> by which a user is identified outside the context of any existing session or resource; contrast with Full JID and Occupant JID. Full JID The <user@host/resource> by which an online user is identified outside the context of a room; contrast with Bare JID and Occupant JID. GC The minimal groupchat 1.0 protocol developed within the Jabber community in 1999; MUC is backwards-compatible with GC. History A limited number of message stanzas sent to a new occupant to provide the context of current discussion. Invitation A special message sent from one user to another asking the recipient to join a room; the invitation can be sent directly (see Direct MUC Invitations (XEP-0249) XEP- 0249: Direct MUC Invitations < or mediated through the room (as described under Inviting Another User to a Room). IRC Internet Relay Chat. Kick To temporarily remove a participant or visitor from a room; the user is allowed to reenter the room at any time. A kicked user has a role of none. Logging Storage of discussions that occur within a room for public retrieval outside the context of the room. Member A user who is on the whitelist for a members-only room or who is registered with an open room. A member has an affiliation of member. Moderator A room role that is usually associated with room admins but that can be granted to non-admins; is allowed to kick users, grant and revoke voice, etc. A moderator has a role of moderator. MUC The multi-user chat protocol for text-based conferencing specified in this document. Multi-Session Nick If allowed by the service, a user can associate more than one full JID with the same occupant JID (e.g., the user juliet@capulet.lit is allowed to log in simultaneously as the nick JuliC in the characters@chat.shakespeare.lit chatroom from both juliet@capulet.lit/balcony and juliet@capulet.lit/chamber). Multi-session nicks are not currently defined in this document. Occupant Any user who is in a room (this is an abstract class and does not correspond to any specific role). Occupant JID The <room@service/nick> by which an occupant is identified within the context of a room; contrast with Bare JID and Full JID. 4

11 4 TERMINOLOGY Outcast A user who has been banned from a room. An outcast has an affiliation of outcast. Participant An occupant who does not have admin status; in a moderated room, a participant is further defined as having voice (in contrast to a visitor). A participant has a role of participant. Private Message A message sent from one occupant directly to another s occupant JID (not to the room itself for broadcasting to all occupants). Role A temporary position or privilege level within a room, distinct from a user s long-lived affiliation with the room; the possible roles are moderator, participant, and visitor (it is also possible to have no defined role). A role lasts only for the duration of an occupant s visit to a room. Room A virtual space that users figuratively enter in order to participate in real-time, textbased conferencing with other users. Room Administrator A user empowered by the room owner to perform administrative functions such as banning users; however, a room administrator is not allowed to change the room configuration or to destroy the room. An admin has an affiliation of admin. Room ID The localpart of a Room JID, which might be opaque and thus lack meaning for human users (see under Business Rules for syntax); contrast with Room Name. Room JID The <room@service> address of a room. Room Name A user-friendly, natural-language name for a room, configured by the room owner and presented in Service Discovery queries; contrast with Room ID. Room Nickname The resourcepart of an Occupant JID (see Business Rules for syntax); this is the friendly name by which an occupant is known in the room. Room Owner The user who created the room or a user who has been designated by the room creator or owner as someone with owner status (if allowed); an owner is allowed to change the room configuration and destroy the room, in addition to all admin status. An owner has an affiliation of owner. Room Roster A client s representation of the occupants in a room. Server An XMPP server that may or may not have associated with it a text-based conferencing service. Service A host that offers text-based conferencing capabilities; often but not necessarily a sub-domain of an XMPP server (e.g., conference.jabber.org). Subject A temporary discussion topic within a room. Visit A user s session in a room, beginning when the user enters the room (i.e., becomes an occupant) and ending when the user exits the room. 5

12 4 TERMINOLOGY Visitor In a moderated room, an occupant who does not have voice (in contrast to a participant). A visitor has a role of visitor. Voice In a moderated room, the privilege to send messages to all occupants. 4.2 Room Types Hidden Room A room that cannot be found by any user through normal means such as searching and service discovery; antonym: Public Room. Members-Only Room A room that a user cannot enter without being on the member list; antonym: Open Room. Moderated Room A room in which only those with voice are allowed to send messages to all occupants; antonym: Unmoderated Room. Non-Anonymous Room A room in which an occupant s full JID is exposed to all other occupants, although the occupant can request any desired room nickname; contrast with Semi-Anonymous Room. Open Room A room that non-banned entities are allowed to enter without being on the member list; antonym: Members-Only Room. Password-Protected Room A room that a user cannot enter without first providing the correct password; antonym: Unsecured Room. Persistent Room A room that is not destroyed if the last occupant exits; antonym: Temporary Room. Public Room A room that can be found by any user through normal means such as searching and service discovery; antonym: Hidden Room. Semi-Anonymous Room A room in which an occupant s full JID can be discovered by room admins only; contrast with Non-Anonymous Room. Temporary Room A room that is destroyed if the last occupant exits; antonym: Persistent Room. Unmoderated Room A room in which any occupant is allowed to send messages to all occupants; antonym: Moderated Room. Unsecured Room A room that anyone is allowed to enter without first providing the correct password; antonym: Password-Protected Room. 6

13 4 TERMINOLOGY 4.3 Dramatis Personae Most of the examples in this document use the scenario of the witches meeting held in a dark cave at the beginning of Act IV, Scene I of Shakespeare s Macbeth, represented here as the coven@chat.shakespeare.lit chatroom. The characters are as follows: 7

14 5 ROLES, AFFILIATIONS, AND PRIVILEGES Room Nickname Full JID Affiliation firstwitch Owner secondwitch Admin thirdwitch None 5 Roles, Affiliations, and Privileges A user might be allowed to perform any number of actions in a room, from joining or sending a message to changing configuration options or destroying the room altogether. We call each permitted action a privilege. There are two ways we might structure privileges: 1. Define each privilege atomically and explicitly define each user s particular privileges; this is flexible but can be confusing to manage. 2. Define bundles of privileges that are generally applicable and assign a user-friendly shortcut to each bundle (e.g., moderator or admin ). MUC takes the second approach. MUC also defines two different associations: long-lived affiliations and session-specific roles. These two association types are distinct from each other in MUC, since an affiliation lasts across visits, while a role lasts only for the duration of a visit. In addition, there is no one-to-one correspondence between roles and affiliations; for example, someone who is not affiliated with a room may be a (temporary) moderator, and a member may be a participant or a visitor in a moderated room. These concepts are explained more fully below. 5.1 Roles The following roles are defined: Name Moderator None Participant Visitor Support REQUIRED N/A (the absence of a role) REQUIRED RECOMMENDED 8

15 5 ROLES, AFFILIATIONS, AND PRIVILEGES Roles are temporary in that they do not necessarily persist across a user s visits to the room and MAY change during the course of an occupant s visit to the room. An implementation MAY persist roles across visits and SHOULD do so for moderated rooms (since the distinction between visitor and participant is critical to the functioning of a moderated room). There is no one-to-one mapping between roles and affiliations (e.g., a member could be a participant or a visitor). A moderator is the most powerful role within the context of the room, and can to some extent manage other occupants roles in the room. A participant has fewer privileges than a moderator, although he or she always has the right to speak. A visitor is a more restricted role within the context of a moderated room, since visitors are not allowed to send messages to all occupants (depending on room configuration, it is even possible that visitors presence will not be broadcasted to the room). Roles are granted, revoked, and maintained based on the occupant s room nickname or full JID rather than bare JID. The privileges associated with these roles, as well as the actions that trigger changes in roles, are defined below. Information about roles MUST be sent in all presence stanzas generated or reflected by the room and thus sent to occupants (if the room is configured to broadcast presence for a given role) Privileges For the most part, roles exist in a hierarchy. For instance, a participant can do anything a visitor can do, and a moderator can do anything a participant can do. Each role has all the privileges possessed by the next-lowest role, plus additional privileges; these privileges are specified in the following table as defaults (an implementation MAY provide configuration options that override these defaults). Privilege None Visitor Participant Moderator Present in Room No Yes Yes Yes Receive Messages No Yes Yes Yes Receive Occupant Presence No Yes Yes Yes Broadcast Presence to All Occupants No Yes* Yes Yes Change Availability Status No Yes* Yes Yes Change Room Nickname No Yes* Yes Yes Send Private Messages No Yes* Yes Yes Invite Other Users No Yes* Yes* Yes Send Messages to All No No** Yes Yes Modify Subject No No* Yes* Yes Kick Participants and Visitors No No No Yes Grant Voice No No No Yes Revoke Voice No No No Yes*** 9

16 5 ROLES, AFFILIATIONS, AND PRIVILEGES * Default; configuration settings MAY modify this privilege. * An implementation MAY grant voice by default to visitors in unmoderated rooms. ** A moderator MUST NOT be able to revoke voice privileges from an admin or owner Default Roles The following table summarizes the initial default roles that a service SHOULD set based on the user s affiliation (there is no role associated with the outcast affiliation, since such users are not allowed to enter the room). Room Type None Member Admin Owner Moderated Visitor Participant Moderator Moderator Unmoderated Participant Participant Moderator Moderator Members-Only N/A * Participant Moderator Moderator Open Participant Participant Moderator Moderator * Entry is not permitted Changing Roles The ways in which an occupant s role changes are well-defined. Sometimes the change results from the occupant s own action (e.g., entering or exiting the room), whereas sometimes the change results from an action taken by a moderator, admin, or owner. If an occupant s role changes, a MUC service implementation MUST change the occupant s role to reflect the change and communicate the change to all occupants (if the room is configured to broadcast presence from entities with a given role). Role changes and their triggering actions are specified in the following table. > None Visitor Participant Moderator None -- Enter moderated Enter unmoderated Admin or owner Visitor Exit room or be room -- room Moderator enters room Admin or owner kicked by a moderator grants voice grants moderator Participant Exit room or be Moderator -- status Admin or owner kicked by a moderatotor revokes voice grants modera- status 10

17 5 ROLES, AFFILIATIONS, AND PRIVILEGES > None Visitor Participant Moderator Moderator Exit room or be kicked by an admin or owner * Admin or owner changes role to visitor * Admin or owner changes role to participant or revokes moderator status * -- * A moderator SHOULD NOT be allowed to revoke moderation privileges from someone with a higher affiliation than themselves (i.e., an unaffiliated moderator SHOULD NOT be allowed to revoke moderation privileges from an admin or an owner, and an admin SHOULD NOT be allowed to revoke moderation privileges from an owner). Note: Certain roles are typically implicit in certain affiliations. For example, an admin or owner is automatically a moderator, so if an occupant is granted an affiliation of admin then the occupant will by that fact be granted a role of moderator; similarly, when an occupant is granted an affiliation of member in a moderated room, the occupant automatically has a role of participant. However, the loss of the admin affiliation does not necessarily mean that the occupant no longer has a role of moderator (since a mere occupant can be a moderator). Therefore, the role that is gained when an occupant is granted a certain affiliation is stable, whereas the role that is lost when an occupant loses a certain affilitation is not hardcoded and is left up to the implementation. 5.2 Affiliations The following affiliations are defined: 1. Owner 2. Admin 3. Member 4. Outcast 5. None (the absence of an affiliation) Support for the owner affiliation is REQUIRED. Support for the admin, member, and outcast affiliations is RECOMMENDED. (The None affiliation is the absence of an affiliation.) These affiliations are long-lived in that they persist across a user s visits to the room and are not affected by happenings in the room. In addition, there is no one-to-one mapping between these affiliations and an occupant s role within the room. Affiliations are granted, revoked, and maintained based on the user s bare JID, not the nick as with roles. If a user without a defined affiliation enters a room, the user s affiliation is defined as none ; however, this affiliation does not persist across visits (i.e., a service does not maintain a none 11

18 5 ROLES, AFFILIATIONS, AND PRIVILEGES list across visits). The member affiliation provides a way for a room owner or admin to specify a whitelist of users who are allowed to enter a members-only room. When a member enters a members-only room, his or her affiliation does not change, no matter what his or her role is. The member affiliation also provides a way for users to register with an open room and thus be lastingly associated with that room in some way (one result might be that the service could reserve the user s nickname in the room). An outcast is a user who has been banned from a room and who is not allowed to enter the room. Information about affiliations MUST be sent in all presence stanzas generated or reflected by the room and sent to occupants (if the room is configured to broadcast presence from entities with a given role) Privileges For the most part, affiliations exist in a hierarchy. For instance, an owner can do anything an admin can do, and an admin can do anything a member can do. Each affiliation has all the privileges possessed by the next-lowest affiliation, plus additional privileges; these privileges are specified in the following table. Privilege Outcast None Member Admin Owner Enter Open Room No Yes* Yes Yes Yes Register with Open Room No Yes N/A N/A N/A Retrieve Member List No No Yes Yes Yes Enter Members-Only Room No No Yes* Yes Yes Ban Members and Unaffiliated Users No No No Yes Yes Edit Member List No No No Yes Yes Assign and Remove Moderator Role No No No Yes** Yes** Edit Admin List No No No No Yes Edit Owner List No No No No Yes Change Room Configuration No No No No Yes Destroy Room No No No No Yes * As a default, an unaffiliated user enters a moderated room as a visitor, and enters an open room as a participant. A member enters a room as a participant. An admin or owner enters a room as a moderator. * As noted, a moderator SHOULD NOT be allowed to revoke moderation privileges from someone with a higher affiliation than themselves (i.e., an unaffiliated moderator SHOULD NOT be allowed to revoke moderation privileges from an admin or an owner, and an admin SHOULD NOT be allowed to revoke moderation privileges from an owner). 12

19 5 ROLES, AFFILIATIONS, AND PRIVILEGES Changing Affiliations The ways in which a user s affiliation changes are well-defined. Sometimes the change results from the user s own action (e.g., registering as a member of the room), whereas sometimes the change results from an action taken by an admin or owner. If a user s affiliation changes, a MUC service implementation MUST change the user s affiliation to reflect the change and communicate that to all occupants (if the room is configured to broadcast presence from entities with a given role). Affiliation changes and their triggering actions are specified in the following table. > Outcast None Member Admin Owner Outcast -- Admin or Admin or Owner adds Owner adds owner removes owner adds user to admin user to owner ban user to list list None Admin or -- member list Admin or Owner adds Owner adds owner applies owner adds user to admin user to owner ban user to mem- list list ber list, or user registers as member (if allowed) Member Admin or owner applies ban Admin Owner applies ban Owner Owner applies ban Admin or owner changes affiliation to none Owner changes affiliation to none Owner changes affiliation to none -- Owner adds user to admin list Owner changes affiliation to member Owner changes affiliation to member Owner adds user to owner list -- Owner adds user to owner list af- to Owner changes filiation admin -- 13

20 6 ENTITY USE CASES 6 Entity Use Cases A MUC implementation MUST support Service Discovery (XEP-0030) 8 ( disco ). Any entity can complete the following disco-related use cases. 6.1 Discovering a MUC Service An entity often discovers a MUC service by sending a Service Discovery items ( disco#items ) request to its own server. Listing 1: Entity Queries Server for Associated Services <iq from = hag66@shakespeare.lit /pda id= h7ns81g to= shakespeare.lit type = get > <query xmlns = http: // jabber.org / protocol / disco # items /> The server then returns the services that are associated with it. Listing 2: Server Returns Disco Items Result <iq from = shakespeare. lit id= h7ns81g to= hag66@shakespeare.lit /pda type = result > <query xmlns = http: // jabber.org / protocol / disco # items > <item jid = chat. shakespeare.lit name = Chatroom Service /> </ query > 6.2 Discovering the Features Supported by a MUC Service An entity may wish to discover if a service implements the Multi-User Chat protocol; in order to do so, it sends a service discovery information ( disco#info ) query to the MUC service s JID. Listing 3: Entity Queries Chat Service for MUC Support via Disco <iq from = hag66@shakespeare.lit /pda id= lx09df27 to= chat. shakespeare.lit type = get > 8 XEP-0030: Service Discovery < 14

21 6 ENTITY USE CASES <query xmlns = http: // jabber.org / protocol / disco # info /> The service MUST return its identity and the features it supports. Listing 4: Service Returns Disco Info Result <iq from = chat. shakespeare.lit id= lx09df27 to= hag66@shakespeare.lit /pda type = result > <query xmlns = http: // jabber.org / protocol / disco # info > <identity category = conference name = Shakespearean Chat Service type = text /> <feature var = http: // jabber.org / protocol /muc /> </ query > 6.3 Discovering Rooms The service discovery items ( disco#items ) protocol enables an entity to query a service for a list of associated items, which in the case of a chat service would consist of the specific chat rooms hosted by the service. Listing 5: Entity Queries Chat Service for Rooms <iq from = hag66@shakespeare.lit /pda id= zb8q41f4 to= chat. shakespeare.lit type = get > <query xmlns = http: // jabber.org / protocol / disco # items /> The service SHOULD return a full list of the public rooms it hosts (i.e., not return any rooms that are hidden). Listing 6: Service Returns Disco Items Result <iq from = chat. shakespeare.lit id= zb8q41f4 to= hag66@shakespeare.lit /pda type = result > <query xmlns = http: // jabber.org / protocol / disco # items > <item jid = heath@chat. shakespeare.lit name = A Lonely Heath /> 15

22 6 ENTITY USE CASES <item jid = coven@chat. shakespeare.lit name = A Dark Cave /> <item jid = forres@chat. shakespeare.lit name = The Palace /> <item jid = inverness@chat. shakespeare.lit name = Macbeth & apos ;s Castle /> </ query > If the full list of rooms is large (see XEP-0030 for details), the service MAY return only a partial list of rooms. If it does so, it SHOULD include a <set/> element qualified by the namespace (as defined in Result Set Management (XEP- 0059) 9 ) to indicate that the list is not the full result set. Listing 7: Service Returns Limited List of Disco Items Result <iq from = chat. shakespeare.lit id= hx51v49s to= hag66@shakespeare.lit /pda type = result > <query xmlns = http: // jabber.org / protocol / disco # items > <item jid = alls -well -that -ends - well@chat. shakespeare.lit /> <item jid = as -you -like - it@chat. shakespeare.lit /> <item jid = cleopatra@chat. shakespeare.lit /> <item jid = comedy -of - errors@chat. shakespeare.lit /> <item jid = coriolanus@chat. shakespeare.lit /> <item jid = cymbeline@chat. shakespeare.lit /> <item jid = hamlet@chat. shakespeare.lit /> <item jid = henry -the -fourth - one@chat. shakespeare.lit /> <item jid = henry -the -fourth - two@chat. shakespeare.lit /> <item jid = henry -the - fifth@chat. shakespeare.lit /> <set xmlns = http: // jabber.org / protocol /rsm > <first index = 0 >alls -well -that -ends - well@chat. shakespeare.lit </ first > <last >henry -the - fifth@chat. shakespeare.lit </ last > <count >37 </ count > </ set > </ query > 6.4 Querying for Room Information Using the disco#info protocol, an entity may also query a specific chat room for more detailed information about the room. An entity SHOULD do so before entering a room in order to determine the privacy and security profile of the room configuration (see the Security 9 XEP-0059: Result Set Management < 16

23 6 ENTITY USE CASES Considerations for details). Listing 8: Entity Queries for Information about a Specific Chat Room <iq from = hag66@shakespeare.lit /pda id= ik3vs715 to= coven@chat. shakespeare.lit type = get > <query xmlns = http: // jabber.org / protocol / disco # info /> The room MUST return its identity and SHOULD return the features it supports: Listing 9: Room Returns Disco Info Result <iq from = coven@chat. shakespeare. lit id= ik3vs715 to= hag66@shakespeare.lit /pda type = result > <query xmlns = http: // jabber.org / protocol / disco # info > <identity category = conference name = A Dark Cave type = text /> <feature var = http: // jabber.org / protocol /muc /> < feature var = muc_ passwordprotected / > <feature var = muc_hidden /> <feature var = muc_temporary /> <feature var = muc_open /> <feature var = muc_unmoderated /> <feature var = muc_nonanonymous /> </ query > Note: The room SHOULD return the materially-relevant features it supports, such as password protection and room moderation (these are listed fully in the feature registry maintained by the XMPP Registrar; see also the XMPP Registrar section of this document). A chatroom MAY return more detailed information in its disco#info response using Service Discovery Extensions (XEP-0128) 10, identified by inclusion of a hidden FORM_TYPE field whose value is Such information might include a more verbose description of the room, the current room subject, and the current number of occupants in the room: Listing 10: Room Returns Extended Disco Info Result <iq from = coven@chat. shakespeare. lit 10 XEP-0128: Service Discovery Extensions < 17

24 6 ENTITY USE CASES id= ik3vs715 to= /pda type = result > <query xmlns = http: // jabber.org / protocol / disco # info > <identity category = conference name = A Dark Cave type = text /> <feature var = http: // jabber.org / protocol /muc /> < feature var = muc_ passwordprotected / > <feature var = muc_hidden /> <feature var = muc_temporary /> <feature var = muc_open /> <feature var = muc_unmoderated /> <feature var = muc_nonanonymous /> <x xmlns = jabber:x:data type = result > var = FORM_TYPE type = hidden > <value >http: // jabber.org/ protocol /muc# roominfo </ value > var = muc # roominfo_description label = Description > < value > The place for all good witches! </ value > var = muc # roominfo_changesubject label = Occupants May Change the Subject > <value >true </ value > var = muc # roominfo_contactjid label = Contact Addresses > <value > crone1@shakespeare.lit </ value > var = muc # roominfo_subject label = Current Discussion Topic > <value >Spells </ value > var = muc # roomconfig_changesubject label = Subject can be modified > <value >true </ value > var = muc # roominfo_occupants label = Number of occupants > <value >3</ value > var = muc # roominfo_ldapgroup label = Associated LDAP Group > <value >cn= witches,dc= shakespeare,dc=lit </ value > var = muc # roominfo_lang label = Language of discussion > 18

25 6 ENTITY USE CASES <value >en </ value > var = muc # roominfo_logs label = URL for discussion logs > <value >http: // www. shakespeare.lit/ chatlogs / coven /</ value > var = muc # maxhistoryfetch label = Maximum Number of History Messages Returned by Room > <value >50 </ value > var = muc # roominfo_pubsub label = Associated pubsub node > <value >xmpp:pubsub. shakespeare.lit?; node =the -coven - node </ value > </ query > Some extended room information is dynamically generated (e.g., the URL for discussion logs, which may be based on service-wide configuration), whereas other information is based on the more-stable room configuration, which is why any field defined for the muc#roomconfig FORM_TYPE can be included in the extended service discovery fields (as shown above for the muc#roomconfig_changesubject field). Note: The foregoing extended service discovery fields for the FORM_TYPE are examples only and might be supplemented in the future via the mechanisms described in the Field Standardization section of this document. 6.5 Querying for Room Items An entity MAY also query a specific chat room for its associated items: Listing 11: Entity Queries for Items Associated with a Specific Chat Room <iq from = hag66@shakespeare.lit /pda id= kl2fax27 to= coven@chat. shakespeare.lit type = get > <query xmlns = http: // jabber.org / protocol / disco # items /> An implementation MAY return a list of existing occupants if that information is publicly available, or return no list at all if this information is kept private. Implementations and deployments are advised to turn off such information sharing by default. 19

26 6 ENTITY USE CASES Listing 12: Room Returns Disco Items Result (Items are Public) <iq from = coven@chat. shakespeare. lit id= kl2fax27 to= hag66@shakespeare.lit /pda type = result > <query xmlns = http: // jabber.org / protocol / disco # items > <item jid = coven@chat. shakespeare.lit / firstwitch /> <item jid = coven@chat. shakespeare.lit / secondwitch /> </ query > Note: These <item/> elements are qualified by the disco#items namespace, not the muc namespace; this means that they cannot possess affiliation or role attributes, for example. If the list of occupants is private, the room MUST return an empty <query/> element, in accordance with XEP Listing 13: Room Returns Empty Disco Items Result (Items are Private) <iq from = coven@chat. shakespeare. lit id= kl2fax27 to= hag66@shakespeare.lit /pda type = result > <query xmlns = http: // jabber.org / protocol / disco # items /> 6.6 Querying a Room Occupant If a non-occupant attempts to send a disco request to an address of the form <room@service/nick>, a MUC service MUST return a <bad-request/> error. If an occupant sends such a request, the service MAY pass it through the intended recipient; see the Implementation Guidelines section of this document for details. 6.7 Discovering Client Support for MUC An entity might want to discover if one of the entity s contacts supports the Multi-User Chat protocol (e.g., before attempting to invite the contact to a room). This can be done using Service Discovery. Listing 14: Entity Queries Contact Regarding MUC Support <iq from = hag66@shakespeare.lit /pda id= yh2fs843 to= wiccarocks@shakespeare.lit / laptop type = get > <query xmlns = http: // jabber.org / protocol / disco # info /> 20

27 6 ENTITY USE CASES The client SHOULD return its identity and the features it supports. Listing 15: Contact Returns Disco Info Result <iq from = wiccarocks@shakespeare. lit / laptop id= yh2fs843 to= hag66@shakespeare.lit /pda type = result > <query xmlns = http: // jabber.org / protocol / disco # info > <identity category = client type = pc />... <feature var = http: // jabber.org / protocol /muc />... </ query > An entity may also query a contact regarding which rooms the contact is in. This is done by querying the contact s full JID (<user@host/resource>) while specifying the well-known Service Discovery node Listing 16: Entity Queries Contact for Current Rooms <iq from = hag66@shakespeare.lit /pda id= gp7w61v3 to= wiccarocks@shakespeare.lit / laptop type = get > <query xmlns = http: // jabber.org / protocol / disco # items node = http: // jabber.org / protocol /muc # rooms /> Listing 17: Contact Returns Room Query Result <iq from = wiccarocks@shakespeare. lit / laptop id= gp7w61v3 to= hag66@shakespeare.lit /pda type = result > <query xmlns = http: // jabber.org / protocol / disco # items node = http: // jabber.org / protocol /muc # rooms > <item jid = coven@chat. shakespeare.lit /> <item jid = characters@conference. shakespeare.lit /> </ query > Optionally, the contact MAY include its roomnick as the value of the name attribute: 21

28 7 OCCUPANT USE CASES... <item jid = coven@chat. shakespeare.lit name = secondwitch />... If this information is private, the user MUST return an empty <query/> element, in accordance with XEP Occupant Use Cases The main actor in a multi-user chat environment is the occupant, who can be said to be located in a multi-user chat room and to participate in the discussions held in that room (for the purposes of this specification, participants and visitors are considered to be mere occupants, since they possess no admin status). As will become clear, the protocol elements proposed in this document to fulfill the occupant use cases fall into three categories: 1. the basic functionality for joining a room, exchanging messages with all occupants, etc. (supported by the groupchat 1.0 protocol that preceded MUC) 2. straightforward additions to the basic functionality, such as handling of errors related to new room types 3. additional protocol elements to handle functionality not covered by groupchat 1.0 (room invites, room passwords, extended presence related to room roles and affiliations); these are qualified by the namespace Note: All client-generated examples herein are presented from the perspective of the service, with the result that all stanzas received by a service contain a from attribute corresponding to the sender s full JID as added by a normal XMPP router or session manager. In addition, normal IQ result stanzas sent upon successful completion of a request (as required by XMPP Core 11 ) are not shown. 7.1 Order of Events The order of events involved in joining a room needs to be consistent so that clients can know which events to expect when. After a client sends presence to join a room, the MUC service MUST send it events in the following order: 11 RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core < 22

29 7 OCCUPANT USE CASES 1. In-room presence from other occupants 2. In-room presence from the joining entity itself (so-called self-presence ) 3. Room history (if any) 4. The room subject 5. Live messages, presence updates, new user joins, etc. 7.2 Entering a Room Groupchat 1.0 Protocol In order to participate in the discussions held in a multi-user chat room, a user MUST first become an occupant by entering the room. In the old groupchat 1.0 protocol, this was done by sending presence with no type attribute to <room@service/nick>, where room is the room ID, service is the hostname of the chat service, and nick is the user s desired nickname within the room: Listing 18: User Seeks to Enter a Room (groupchat 1.0) from = hag66@shakespeare.lit /pda id= ng91xs69 to= coven@chat. shakespeare.lit / thirdwitch /> In this example, a user with a full JID of hag66@shakespeare.lit/pda has requested to enter the room coven on the chat.shakespeare.lit chat service with a room nickname of thirdwitch. If the user does not specify a room nickname (note the bare JID on the from address in the following example), the service MUST return a <jid-malformed/> error: Listing 19: No Nickname Specified from = coven@chat. shakespeare. lit id= 273 hs51g to= hag66@shakespeare.lit /pda type = error > <error by= coven@chat. shakespeare.lit type = modify > <jid - malformed xmlns = urn:ietf:params:xml:ns:xmpp - stanzas /> </ error > </ presence > Note: The presence stanza used to join a room MUST NOT possess a type attribute, i.e., it must be available presence. For further discussion, see the Presence business rules. 23

XEP-0133: Service Administration

XEP-0133: Service Administration XEP-0133: Service Administration Peter Saint-Andre mailto:xsf@stpeter.im xmpp:peter@jabber.org http://stpeter.im/ 2017-07-15 Version 1.2 Status Type Short Name Active Informational admin This document

More information

XEP-0135: File Sharing

XEP-0135: File Sharing XEP-0135: File Sharing Peter Saint-Andre mailto:xsf@stpeter.im xmpp:peter@jabber.org http://stpeter.im/ 2004-06-04 Version 0.1 Status Type Short Name Deferred Standards Track files This document specifies

More information

XEP-0140: Shared Groups

XEP-0140: Shared Groups XEP-0140: Shared Groups Peter Saint-Andre mailto:peter@andyetnet xmpp:stpeter@stpeterim https://stpeterim/ 2004-10-27 Version 02 Status Type Short Name Retracted Informational groups This document defines

More information

XEP-0146: Remote Controlling Clients

XEP-0146: Remote Controlling Clients XEP-0146: Remote Controlling Clients Remko Tronçon http://el-tramo.be/ Peter Saint-Andre mailto:xsf@stpeter.im xmpp:peter@jabber.org http://stpeter.im/ 2017-11-07 Version 1.1 Status Type Short Name Obsolete

More information

XEP-0363: HTTP File Upload

XEP-0363: HTTP File Upload XEP-0363: HTTP File Upload Daniel Gultsch mailto:daniel@gultsch.de xmpp:daniel@gultsch.de 2018-04-21 Version 0.6.0 Status Type Short Name Proposed Standards Track NOT_YET_ASSIGNED This specification defines

More information

XEP-0357: Push Notifications

XEP-0357: Push Notifications XEP-0357: Push Notifications Kevin Smith mailto:kevin@kismith.co.uk xmpp:kevin@doomsong.co.uk Lance Stout mailto:lance@andyet.com xmpp:lance@lance.im 2017-08-24 Version 0.3 Status Type Short Name Experimental

More information

XEP-0033: Extended Stanza Addressing

XEP-0033: Extended Stanza Addressing XEP-0033: Extended Stanza Addressing Joe Hildebrand mailto:jhildebr@cisco.com xmpp:hildjj@jabber.org Peter Saint-Andre mailto:xsf@stpeter.im xmpp:peter@jabber.org http://stpeter.im/ 2017-01-11 Version

More information

XEP-0129: WebDAV File Transfers

XEP-0129: WebDAV File Transfers XEP-0129: WebDAV File Transfers Peter Saint-Andre mailto:xsf@stpeter.im xmpp:peter@jabber.org http://stpeter.im/ Dave Smith mailto:dizzyd@jabber.org xmpp:dizzyd@jabber.org 2007-04-19 Version 0.3 Status

More information

XEP-0087: Stream Initiation

XEP-0087: Stream Initiation XEP-0087: Stream Initiation Thomas Muldowney mailto:temas@jabber.org xmpp:temas@jabber.org 2003-05-22 Version 0.1 Status Type Short Name Retracted Standards Track si A common method to initiate a stream

More information

XEP-0060: Publish-Subscribe

XEP-0060: Publish-Subscribe XEP-0060: Publish-Subscribe Peter Millard Peter Saint-Andre mailto:xsf@stpeter.im xmpp:peter@jabber.org http://stpeter.im/ 2018-05-14 Version 1.15.2 Ralph Meijer mailto:ralphm@ik.nu xmpp:ralphm@ik.nu Status

More information

XEP-0333: Chat Markers

XEP-0333: Chat Markers XEP-0333: Chat Markers Spencer MacDonald mailto:im@spencermacdonald.com xmpp:im@spencermacdonald.com 2017-09-11 Version 0.3 Status Type Short Name Deferred Standards Track NOT_YET_ASSIGNED This specification

More information

XEP-0114: Jabber Component Protocol

XEP-0114: Jabber Component Protocol XEP-0114: Jabber Component Protocol Peter Saint-Andre mailto:xsf@stpeter.im xmpp:peter@jabber.org http://stpeter.im/ 2012-01-25 Version 1.6 Status Type Short Name Active Historical component This specification

More information

XEP-0283: Moved. Tory Patnoe Version 0.1.1

XEP-0283: Moved. Tory Patnoe Version 0.1.1 XEP-0283: Moved Tory Patnoe mailto:tpatnoe@cisco.com xmpp:tpatnoe@cisco.com 2018-08-06 Version 0.1.1 Status Type Short Name Experimental Standards Track moved This document defines an XMPP protocol extension

More information

XEP-0099: IQ Query Action Protocol

XEP-0099: IQ Query Action Protocol XEP-0099: IQ Query Action Protocol Iain Shigeoka mailto:iain@jivesoftware.com xmpp:smirk@jabber.com 2018-11-03 Version 0.1.1 Status Type Short Name Deferred Standards Track Not yet assigned Standardizes

More information

XEP-0289: Federated MUC for Constrained Environments

XEP-0289: Federated MUC for Constrained Environments XEP-0289: Federated MUC for Constrained Environments Kevin Smith mailto:kevin.smith@isode.com xmpp:kevin.smith@isode.com 2012-05-29 Version 0.2 Status Type Short Name Deferred Standards Track FMUC This

More information

XEP-0293: Jingle RTP Feedback Negotiation

XEP-0293: Jingle RTP Feedback Negotiation XEP-0293: Jingle RTP Feedback Negotiation Olivier Crête mailto:olivier.crete@collabora.co.uk xmpp:olivier.crete@collabora.co.uk 2015-08-11 Version 1.0 Status Type Short Name Draft Standards Track NOT_YET_ASSIGNED

More information

XEP-0171: Language Translation

XEP-0171: Language Translation XEP-0171: Language Translation Boyd Fletcher mailto:boyd.fletcher@us.army.mil Keith Lirette mailto:keith.lirette@tridsys.com Daniel LaPrade mailto:dlaprade@echostorm.net Brian Raymond mailto:braymond@echostorm.net

More information

XEP-0104: HTTP Scheme for URL Data

XEP-0104: HTTP Scheme for URL Data XEP-0104: HTTP Scheme for URL Data Matthew Miller mailto:linuxwolf@outer-planes.net xmpp:linuxwolf@outer-planes.net 2004-01-20 Version 0.3 Status Type Short Name Deferred Standards Track N/A This document

More information

XEP-0412: XMPP Compliance Suites 2019

XEP-0412: XMPP Compliance Suites 2019 0412: XMPP Compliance Suites 2019 Jonas Schäfer mailto:jonas@wielicki.name xmpp:jonas@wielicki.name 2019-01-13 Version 0.4.0 Status Type Short Name Proposed Standards Track CS2019 This document defines

More information

XEP-0290: Encapsulated Digital Signatures in XMPP

XEP-0290: Encapsulated Digital Signatures in XMPP XEP-0290: Encapsulated Digital Signatures in XMPP Kurt Zeilenga mailto:kurt.zeilenga@isode.com xmpp:kurt.zeilenga@isode.com 2011-01-28 Version 0.2 Status Type Short Name Deferred Standards Track N/A This

More information

XEP-0341: Rayo CPA. Ben Langfeld Version 0.2

XEP-0341: Rayo CPA. Ben Langfeld Version 0.2 XEP-0341: Rayo CPA Ben Langfeld mailto:ben@langfeld.me xmpp:ben@langfeld.me http://langfeld.me 2017-09-11 Version 0.2 Status Type Short Name Deferred Standards Track NOT_YET_ASSIGNED This specification

More information

XEP-0206: XMPP Over BOSH

XEP-0206: XMPP Over BOSH 1 di 15 31/01/2011 19:39 XEP-0206: XMPP Over BOSH Abstract: Authors: Copyright: Status: Type: This specification defines how the Bidirectional-streams Over Synchronous HTTP (BOSH) technology can be used

More information

XEP-0395: Atomically Compare-And-Publish PubSub Items

XEP-0395: Atomically Compare-And-Publish PubSub Items XEP-0395: Atomically Compare-And-Publish PubSub Items Florian Schmaus mailto:flo@geekplace.eu xmpp:flo@geekplace.eu 2018-12-06 Version 0.2.0 Status Type Short Name Deferred Standards Track cap This specification

More information

XEP-0009: Jabber-RPC

XEP-0009: Jabber-RPC XEP-0009: Jabber-RPC DJ Adams mailto:dj.adams@pobox.com xmpp:dj@gnu.mine.nu 2011-11-10 Version 2.2 Status Type Short Name Final Standards Track jabber-rpc This specification defines an XMPP protocol extension

More information

XEP-0399: Client Key Support

XEP-0399: Client Key Support XEP-0399: Client Key Support Dave Cridland mailto:dave.c@threadsstyling.com xmpp:dwd@dave.cridland.net 2018-01-25 Version 0.1.0 Status Type Short Name Experimental Standards Track client-key This specification

More information

XEP-0059: Result Set Management

XEP-0059: Result Set Management XEP-0059: Result Set Management Ian Paterson mailto:ianpaterson@clientsidecouk xmpp:ian@zoofycom Valerie Mercier mailto:valeriemercier@orange-ftgroupcom xmpp:vmercier@jabbercom Peter Saint-Andre mailto:xsf@stpeterim

More information

XEP-0280: Message Carbons

XEP-0280: Message Carbons XEP-0280: Message Carbons Joe Hildebrand mailto:jhildebr@cisco.com xmpp:jhildebr@cisco.com Matthew Miller mailto:linuxwolf@outer-planes.net xmpp:linuxwolf@outer-planes.net 2017-02-16 Version 0.12.0 Status

More information

XEP-0295: JSON Encodings for XMPP

XEP-0295: JSON Encodings for XMPP XEP-0295: JSON Encodings for XMPP Kevin Smith mailto:kevin@kismith.co.uk xmpp:kevin@doomsong.co.uk Matthew Wild mailto:mwild1@gmail.com xmpp:me@matthewwild.co.uk 2011-04-01 Version 1.0 Status Type Short

More information

XEP-0052: File Transfer

XEP-0052: File Transfer XEP-0052: File Transfer Thomas Muldowney mailto:temas@box5.net xmpp:temas@jabber.org Matthew Miller mailto:linuxwolf@outer-planes.net xmpp:linuxwolf@outer-planes.net Justin Karneges mailto:justin@affinix.com

More information

XEP-0042: Jabber OOB Broadcast Service (JOBS)

XEP-0042: Jabber OOB Broadcast Service (JOBS) XEP-0042: Jabber OOB Broadcast Service (JOBS) Matthew Miller mailto:linuxwolf@outer-planes.net xmpp:linuxwolf@outer-planes.net 2003-04-11 Version 0.5 Status Type Short Name Retracted Standards Track JOBS

More information

XEP-0344: Impact of TLS and DNSSEC on Dialback

XEP-0344: Impact of TLS and DNSSEC on Dialback XEP-0344: Impact of TLS and DNSSEC on Dialback Philipp Hancke mailto:fippo@andyet.com xmpp:fippo@goodadvice.pages.de Dave Cridland mailto:dave.cridland@surevine.com xmpp:dave.cridland@surevine.com 2017-09-11

More information

XEP-0130: Waiting Lists

XEP-0130: Waiting Lists XEP-0130: Waiting Lists Peter Saint-Andre mailto:xsf@stpeter.im xmpp:peter@jabber.org http://stpeter.im/ Alexandre Nolle mailto:anolle@francetelecom.com Mark Troyer mailto:mtroyer@jabber.com xmpp:mtroyer@corp.jabber.com

More information

XEP-0044: Full Namespace Support for XML Streams

XEP-0044: Full Namespace Support for XML Streams XEP-0044: Full Namespace Support for XML Streams Robert Norris mailto:rob@cataclysm.cx xmpp:rob@cataclysm.cx 2002-08-26 Version 0.1 Status Type Short Name Deferred Standards Track N/A A description of

More information

XEP-0361: Zero Handshake Server to Server Protocol

XEP-0361: Zero Handshake Server to Server Protocol XEP-0361: Zero Handshake Server to Server Protocol Steve Kille mailto:steve.kille@isode.com xmpp:steve.kille@isode.com 2017-09-11 Version 0.3 Status Type Short Name Deferred Informational X2X This specification

More information

XEP-0011: Jabber Browsing

XEP-0011: Jabber Browsing XEP-0011: Jabber Browsing Jeremie Miller mailto:jer@jabber.org xmpp:jer@jabber.org Julian Missig mailto:julian@jabber.org xmpp:julian@jabber.org 2009-06-03 Version 1.3 Thomas Muldowney mailto:temas@jabber.org

More information

XEP-0056: Business Data Interchange

XEP-0056: Business Data Interchange XEP-0056: Business Data Interchange Ulrich Staudinger mailto:chicago5@gmx.de xmpp:uls@jabber.org 2018-11-03 Version 0.3.1 Status Type Short Name Deferred Standards Track N/A This document defines a way

More information

XEP-0266: Codecs for Jingle Audio

XEP-0266: Codecs for Jingle Audio XEP-0266: Codecs for Jingle Audio Peter Saint-Andre mailto:xsf@stpeter.im xmpp:peter@jabber.org http://stpeter.im/ 2013-03-01 Version 1.1rc1 Status Type Short Name Draft Standards Track N/A This document

More information

XEP-0298: Delivering Conference Information to Jingle Participants (Coin)

XEP-0298: Delivering Conference Information to Jingle Participants (Coin) XEP-0298: Delivering Conference Information to Jingle Participants (Coin) Emil Ivov mailto:emcho@jitsi.org xmpp:emcho@jit.si Enrico Marocco mailto:enrico.marocco@telecomitalia.it xmpp:enrico@tilab.com

More information

XEP-0313: Message Archive Management

XEP-0313: Message Archive Management XEP-0313: Message Archive Management Matthew Wild mailto:mwild1@gmail.com xmpp:me@matthewwild.co.uk Kevin Smith mailto:kevin@kismith.co.uk xmpp:kevin@doomsong.co.uk 2018-07-16 Version 0.6.3 Status Type

More information

Chat Setup and Management

Chat Setup and Management Chat Deployments, page 1 Chat Administration Settings, page 3 Chat Node Alias Management, page 9 Chat Room Management, page 14 Group Chat and Persistent Chat Interactions and Restrictions, page 18 Chat

More information

XEP-0278: Jingle Relay Nodes

XEP-0278: Jingle Relay Nodes XEP-0278: Jingle Relay Nodes Thiago Camargo mailto:thiago@xmppjingle.com xmpp:barata7@gmail.com 2017-09-14 Version 0.3 Status Type Short Name Experimental Standards Track jinglenodes This documents specifies

More information

XEP-0284: Shared XML Editing

XEP-0284: Shared XML Editing XEP-0284: Shared XML Editing Joonas Govenius mailto:joonas@uwc.net xmpp:joonas@jabber.org Peter Saint-Andre mailto:xsf@stpeter.im xmpp:peter@jabber.org http://stpeter.im/ 2010-07-02 Version 0.1 Tom Pusateri

More information

XEP-0337: Event Logging over XMPP

XEP-0337: Event Logging over XMPP XEP-0337: Event Logging over XMPP Peter Waher mailto:peterwaher@hotmail.com xmpp:peter.waher@jabber.org http://www.linkedin.com/in/peterwaher 2017-09-11 Version 0.3 Status Type Short Name Deferred Standards

More information

XEP-0065: SOCKS5 Bytestreams

XEP-0065: SOCKS5 Bytestreams XEP-0065: SOCKS5 Bytestreams Dave Smith mailto:dizzyd@jabber.org xmpp:dizzyd@jabber.org Matthew Miller mailto:linuxwolf@outer-planes.net xmpp:linuxwolf@outer-planes.net Justin Karneges mailto:justin@affinix.com

More information

XEP-0340: COnferences with LIghtweight BRIdging (COLIBRI)

XEP-0340: COnferences with LIghtweight BRIdging (COLIBRI) XEP-0340: COnferences with LIghtweight BRIdging (COLIBRI) Emil Ivov mailto:emcho@jitsi.org xmpp:emcho@sip-communicator.org Philipp Hancke mailto:fippo@andyet.com xmpp:fippo@goodadvice.pages.de 2017-09-11

More information

XEP-0050: Ad-Hoc Commands

XEP-0050: Ad-Hoc Commands XEP-0050: Ad-Hoc Commands Matthew Miller mailto:linuxwolf@outer-planes.net xmpp:linuxwolf@outer-planes.net 2019-03-26 Version 1.2.3 Status Type Short Name Draft Standards Track commands This document defines

More information

XEP-0136: Message Archiving

XEP-0136: Message Archiving XEP-0136: Message Archiving Ian Paterson mailto:ian.paterson@clientside.co.uk xmpp:ian@zoofy.com Justin Karneges mailto:justin@affinix.com xmpp:justin@andbit.net Jon Perlow mailto:jonp@google.com xmpp:jonp@google.com

More information

XEP-0043: Jabber Database Access

XEP-0043: Jabber Database Access XEP-0043: Jabber Database Access Justin Kirby mailto:justin@openaether.org xmpp:zion@openaether.org 2003-10-20 Version 0.2 Status Type Short Name Retracted Standards Track N/A Expose RDBM systems directly

More information

XEP-0324: Internet of Things - Provisioning

XEP-0324: Internet of Things - Provisioning XEP-0324: Internet of Things - Provisioning Peter Waher mailto:peterwaher@hotmail.com xmpp:peter.waher@jabber.org http://www.linkedin.com/in/peterwaher 2017-05-20 Version 0.5 Status Type Short Name Retracted

More information

XEP-0166: Jingle. Joe Beda

XEP-0166: Jingle. Joe Beda XEP-0166: Jingle Scott Ludwig mailto:scottlu@google.com xmpp:scottlu@google.com Joe Beda mailto:jbeda@google.com xmpp:jbeda@google.com Robert McQueen mailto:robert.mcqueen@collabora.co.uk xmpp:robert.mcqueen@collabora.co.uk

More information

XEP-0148: Instant Messaging Intelligence Quotient (IM IQ)

XEP-0148: Instant Messaging Intelligence Quotient (IM IQ) XEP-0148: Instant Messaging Intelligence Quotient (IM IQ) Peter Saint-Andre mailto:xsf@stpeter.im xmpp:peter@jabber.org http://stpeter.im/ 2005-04-01 Version 1.0 Status Type Short Name Active Humorous

More information

Chat and Presence. Browser Click to Call

Chat and Presence. Browser Click to Call Browser Click to Call, page 1 Custom Emoticons, page 2 Enterprise Groups for Cisco Unified Communications Manager IM and Presence Service, page 6 File Transfers and Screen Captures, page 9 My Jabber Chats

More information

Status Type Short Name

Status Type Short Name XEP-0327: Rayo Ben Langfeld mailto:ben@langfeld.me xmpp:ben@langfeld.me http://langfeld.me Jose de Castro mailto:jdecastro@tropo.com xmpp:jdecastro@tropo.com http://tropo.com 2017-09-11 Version 0.8 Status

More information

XMPP Illustrated: Getting to Know XMPP

XMPP Illustrated: Getting to Know XMPP HISTORY XMPP Is A Protocol The extensible Messaging and Presence Protocol (XMPP) is, at its most basic level, a protocol for moving small, structured pieces of data between two places. Like other protocols,

More information

Cisco Jabber Features and Options

Cisco Jabber Features and Options Cisco Jabber 10.6 Features, page 1 Cisco Jabber Features for Windows, Mac, ios and Android, page 3 Cisco Jabber Features for Windows, page 15 Cisco Jabber Features for Mac, page 36 Cisco Jabber for Android

More information

CA File Master Plus. Release Notes. Version

CA File Master Plus. Release Notes. Version CA File Master Plus Release Notes Version 9.0.00 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to as the Documentation ) is for

More information

Additional License Authorizations for HPE OneView for Microsoft Azure Log Analytics

Additional License Authorizations for HPE OneView for Microsoft Azure Log Analytics Additional License Authorizations for HPE OneView for Microsoft Azure Log Analytics Product Use Authorizations This document provides Additional License Authorizations for HPE OneView for Microsoft Azure

More information

Department of Defense Unified Capabilities (UC) Extensible Messaging and Presence Protocol (XMPP) 2013 (UC XMPP 2013) Errata-1

Department of Defense Unified Capabilities (UC) Extensible Messaging and Presence Protocol (XMPP) 2013 (UC XMPP 2013) Errata-1 Department of Defense Unified Capabilities (UC) Extensible Messaging and Presence Protocol (XMPP) 2013 (UC XMPP 2013) Errata-1 July 2013 The Office of the DoD Chief Information Officer DEPARTMENT OF DEFENSE

More information

Adobe Connect. Adobe Connect. Deployment Guide

Adobe Connect. Adobe Connect. Deployment Guide Deployment Guide VERSION: 1.0 UPDATED: MARCH 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies logo are registered trademarks

More information

Instant Messaging Compliance for the IM and Presence Service, Release 12.0(1)

Instant Messaging Compliance for the IM and Presence Service, Release 12.0(1) Instant Messaging Compliance for the IM and Presence Service, Release 12.0(1) First Published: 2017-08-17 Last Modified: 2017-11-30 Americas Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose,

More information

Request for Comments: 5437 Category: Standards Track Isode Limited January 2009

Request for Comments: 5437 Category: Standards Track Isode Limited January 2009 Network Working Group Request for Comments: 5437 Category: Standards Track P. Saint-Andre Cisco A. Melnikov Isode Limited January 2009 Status of This Memo Sieve Notification Mechanism: Extensible Messaging

More information

Tigase MUC Component

Tigase MUC Component Tigase MUC Component Tigase MUC Component Table of Contents... iv 1. Overview... 1 2. Announcement... 2 Major changes... 2 Database schema changes... 2 Support for MAM... 3 Disabled support for XEP-0091:

More information

JMWeb Online Help

JMWeb Online Help Table Of Contents Contents Welcome to Jabber Messenger for the Web... 3 What do you want to do?... 3 Adding Contacts... 4 Chatting with Contacts... 5 What is Presence?... 7 Presence types... 7 Your presence...

More information

Intended status: Informational. B. Wyman October 2, 2007

Intended status: Informational. B. Wyman October 2, 2007 Network Working Group Internet-Draft Intended status: Informational Expires: April 4, 2008 P. Saint-Andre XMPP Standards Foundation J. Hildebrand Jabber, Inc. B. Wyman October 2, 2007 Transporting Atom

More information

IETF TRUST. Legal Provisions Relating to IETF Documents. Approved November 6, Effective Date: November 10, 2008

IETF TRUST. Legal Provisions Relating to IETF Documents. Approved November 6, Effective Date: November 10, 2008 IETF TRUST Legal Provisions Relating to IETF Documents Approved November 6, 2008 Effective Date: November 10, 2008 1. Background The IETF Trust was formed on December 15, 2005, for, among other things,

More information

Category: Standards Track October Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence

Category: Standards Track October Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence Network Working Group P. Saint-Andre, Ed. Request for Comments: 3921 Jabber Software Foundation Category: Standards Track October 2004 Status of this Memo Extensible Messaging and Presence Protocol (XMPP):

More information

Altus Shared Data Experience (SDX)

Altus Shared Data Experience (SDX) Altus Shared Data Experience (SDX) Important Notice 2010-2018 Cloudera, Inc. All rights reserved. Cloudera, the Cloudera logo, and any other product or service names or slogans contained in this document

More information

IETF TRUST. Legal Provisions Relating to IETF Documents. February 12, Effective Date: February 15, 2009

IETF TRUST. Legal Provisions Relating to IETF Documents. February 12, Effective Date: February 15, 2009 IETF TRUST Legal Provisions Relating to IETF Documents February 12, 2009 Effective Date: February 15, 2009 1. Background The IETF Trust was formed on December 15, 2005, for, among other things, the purpose

More information

Bar Code Discovery. Administrator's Guide

Bar Code Discovery. Administrator's Guide Bar Code Discovery Administrator's Guide November 2012 www.lexmark.com Contents 2 Contents Overview...3 Configuring the application...4 Configuring the application...4 Configuring Bar Code Discovery...4

More information

Epic. Epic Systems. Deployment Guide

Epic. Epic Systems. Deployment Guide Epic Systems Deployment Guide VERSION: 1.0 UPDATED: AUGUST 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies logo are

More information

Jabber, Inc. August 20, 2004

Jabber, Inc. August 20, 2004 Network Working Group Internet-Draft Expires: February 18, 2005 P. Saint-Andre Jabber Software Foundation J. Hildebrand Jabber, Inc. August 20, 2004 Transporting Atom Notifications over the Extensible

More information

Site Impact Policies for Website Use

Site Impact Policies for Website Use Site Impact Policies for Website Use Thank you for visiting the Site Impact website (the Website ). We have set up some ground rules to ensure protection of our rights and yours. Site Impact reserves the

More information

LoadMaster VMware Horizon (with View) 6. Deployment Guide

LoadMaster VMware Horizon (with View) 6. Deployment Guide LoadMaster VMware Horizon (with View) 6 Deployment Guide VERSION: 6.0 UPDATED: MARCH 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the

More information

Splunk. Splunk. Deployment Guide

Splunk. Splunk. Deployment Guide Deployment Guide VERSION: 1.0 UPDATED: JULY 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies logo are registered trademarks

More information

ServerStatus Installation and Operation Manual

ServerStatus Installation and Operation Manual ServerStatus Installation and Operation Manual Capitalware Inc. Unit 11, 1673 Richmond Street, PMB524 London, Ontario N6G2N3 Canada sales@capitalware.com http://www.capitalware.com ServerStatus Installation

More information

Policies & Medical Disclaimer

Policies & Medical Disclaimer Policies & Medical Disclaimer Money Back Guarantee Heather Woodruff Nutrition proudly stands behind its programs. To help you feel comfortable we offer a Money-Back Guarantee* If you are not absolutely

More information

HTNG Web Services Product Specification. Version 2014A

HTNG Web Services Product Specification. Version 2014A HTNG Web Services Product Specification Version 2014A About HTNG Hotel Technology Next Generation (HTNG) is a non-profit association with a mission to foster, through collaboration and partnership, the

More information

Ecma International Policy on Submission, Inclusion and Licensing of Software

Ecma International Policy on Submission, Inclusion and Licensing of Software Ecma International Policy on Submission, Inclusion and Licensing of Software Experimental TC39 Policy This Ecma International Policy on Submission, Inclusion and Licensing of Software ( Policy ) is being

More information

System Architecture Model Version 1.1 WV Tracking Number: WV-020

System Architecture Model Version 1.1 WV Tracking Number: WV-020 System Architecture Model Version 1.1 WV Tracking Number: WV-020 Notice Copyright 2001-2002 Ericsson, Motorola and Nokia. All Rights Reserved. Implementation of all or part of any Specification may require

More information

MQ Port Scan Installation and Operation Manual

MQ Port Scan Installation and Operation Manual MQ Port Scan Installation and Operation Manual Capitalware Inc. Unit 11, 1673 Richmond Street, PMB524 London, Ontario N6G2N3 Canada sales@capitalware.com http://www.capitalware.com MQPS Installation and

More information

RSA Two Factor Authentication

RSA Two Factor Authentication RSA Two Factor Authentication Feature Description VERSION: 6.0 UPDATED: JULY 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies

More information

MERIDIANSOUNDINGBOARD.COM TERMS AND CONDITIONS

MERIDIANSOUNDINGBOARD.COM TERMS AND CONDITIONS MERIDIANSOUNDINGBOARD.COM TERMS AND CONDITIONS Introduction This document sets forth the terms and conditions ("Terms and Conditions") governing your use of the MeridianHealth.com Web site ("Web Site")

More information

IEEE Electronic Mail Policy

IEEE Electronic Mail Policy IEEE Electronic Mail Policy 1. Policy Responsibility and related documents This policy is maintained by the IEEE Information Technology Strategy Committee (ITSC), with revisions submitted to the Board

More information

Panasonic Audio Player 2 User Guide

Panasonic Audio Player 2 User Guide Panasonic Audio Player 2 User Guide ASIO is a trademark and software of Steinberg Media Technologies GmbH. Overview Panasonic Audio Player 2 is simple GUI audio player software for Windows and Mac OS with

More information

Spontania Administrators Manual

Spontania Administrators Manual Spontania Administrators Manual ClearOne 5225 Wiley Post Way Suite 500 Salt Lake City, UT 84116 Telephone 1.800.945.7730 1.801.975.7200 Spontania Support 801-974-3612 TechSales 1.800.705.2103 FAX 1.801.977-0087

More information

Moodle. Moodle. Deployment Guide

Moodle. Moodle. Deployment Guide Moodle Deployment Guide VERSION: 6.0 UPDATED: MARCH 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies logo are registered

More information

Avaya Converged Office 2007 User Guide Microsoft Office Communications Server 2007

Avaya Converged Office 2007 User Guide Microsoft Office Communications Server 2007 Avaya Converged Office 2007 User Guide Microsoft Office Communications Server 2007 Avaya Communication Server 1000 Release 7.5 Document Status: Standard Document Version: 04.01 Document Number: NN43001-123

More information

Jabber Messenger Online Help

Jabber Messenger Online Help Jabber Messenger 3.2.1 Online Help Table Of Contents Welcome... 1 Welcome... 1 What's New in this Release?... 2 Getting Started... 3 Logging In... 3 Creating a New Account... 6 Using Jabber Messenger...

More information

CALSTRS ONLINE AGREEMENT TERMS AND CONDITIONS

CALSTRS ONLINE AGREEMENT TERMS AND CONDITIONS CALSTRS ONLINE AGREEMENT TERMS AND CONDITIONS INTRODUCTION: Before the California State Teachers Retirement System (hereinafter "CalSTRS," "We," or "Us") will provide services found at mycalstrs.com (the

More information

SDLC INTELLECTUAL PROPERTY POLICY

SDLC INTELLECTUAL PROPERTY POLICY SDLC INTELLECTUAL PROPERTY POLICY Last Revised: 11/14/17 1. Introduction. This Intellectual Property Policy ( Policy ) governs intellectual property rights of the SDL Consortium ( SDLC ) and its Members

More information

Technics Audio Player User Guide

Technics Audio Player User Guide Technics Audio Player User Guide Overview Technics Audio Player is simple GUI audio player software for Windows and Mac OS with high-resolution audio data processing capabilities. When connected to Technics

More information

TCG Compliance TNC IF-MAP Metadata for Network Security Compliance Test Plan

TCG Compliance TNC IF-MAP Metadata for Network Security Compliance Test Plan TCG Compliance TNC IF-MAP Metadata for Network Security Compliance Test Plan 0 Revision 11 10 March 2011 Published Contact: admin@trustedcomputinggroup.org Copyright TCG 2006-2011 Copyright 2006-2011 Trusted

More information

QPP Proprietary Profile Guide

QPP Proprietary Profile Guide Rev. 04 April 2018 Application note Document information Info Content Keywords Proprietary Profile, Server, Client Abstract The Proprietary Profile is used to transfer the raw data between BLE devices.

More information

Ecma International Policy on Submission, Inclusion and Licensing of Software

Ecma International Policy on Submission, Inclusion and Licensing of Software Ecma International Policy on Submission, Inclusion and Licensing of Software Experimental TC39 Policy This Ecma International Policy on Submission, Inclusion and Licensing of Software ( Policy ) is being

More information

Installing Your Microsoft Access Database (Manual Installation Instructions)

Installing Your Microsoft Access Database (Manual Installation Instructions) Installing Your Microsoft Access Database (Manual Installation Instructions) Installation and Setup Instructions... 1 Single User Setup... 1 Multiple User Setup... 2 Adjusting Microsoft Access 2003 Macro

More information

VMware vcenter Log Insight Manager. Deployment Guide

VMware vcenter Log Insight Manager. Deployment Guide VMware vcenter Log Insight Manager Deployment Guide VERSION: 6.0 UPDATED: JULY 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies

More information

One Identity Starling Two-Factor Desktop Login 1.0. Administration Guide

One Identity Starling Two-Factor Desktop Login 1.0. Administration Guide One Identity Starling Two-Factor Desktop Login 1.0 Administration Guide Copyright 2018 One Identity LLC. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The software

More information

Massive IM Scalability using WebSockets Michał Ślaski

Massive IM Scalability using WebSockets Michał Ślaski Erlang Solutions Ltd. Massive IM Scalability using WebSockets Michał Ślaski What am I chatting about? 1999-2011 Erlang Solutions Ltd. 2 What am I chatting about? Chat features 1999-2011 Erlang Solutions

More information

HTNG Web Services Product Specification. Version 2011A

HTNG Web Services Product Specification. Version 2011A HTNG Web Services Product Specification Version 2011A About HTNG Hotel Technology Next Generation ( HTNG ) is a nonprofit organization with global scope, formed in 2002 to facilitate the development of

More information

Administration Guide. BlackBerry Connect. Version 2.8

Administration Guide. BlackBerry Connect. Version 2.8 Administration Guide BlackBerry Connect Version 2.8 Published: 2018-05-18 SWD-20180518105958797 Contents What is BlackBerry Connect?... 5 Steps to manage BlackBerry Connect... 6 System requirements...7

More information