%ents; ]>
Unique Room Names for Multi-User Chat This specification defines an XMPP protocol extension for requesting a unique room ID from a multi-user chat service. &LEGALNOTICE; 0307 Experimental Standards Track Standards XMPP Core XEP-0045 muc-unique http://www.xmpp.org/schemas/muc-unique.xsd &stpeter; 0.1 2011-11-10 psa

Initial published version.

0.0.1 2011-09-26 psa

First version, moved from XEP-0045.

&xep0045; defines the protocol for groupchat in XMPP. In some situations, the room creator may want to request a unique room name before attempting to create the room (e.g., to avoid the possibility of a room conflict). Naturally, one way to do so is for the creator's client to generate a globally unique identifier, for example as defined in &rfc4122;. Another way is for the client to ask the MUC service for a unique room ID (which the service will thus reserve for that user).

The room creator requests a unique room name by sending an IQ-get to the service itself, containing an empty <unique/> element qualified by the 'http://jabber.org/protocol/muc#unique' namespace:

]]>

If the service supports this feature, it SHOULD return a unique room name as the XML character data of the <unique/> element (but not create the room):

6d9423a55f499b29ad20bf7b2bdea4f4b885ead1 ]]>

The service MAY refuse to return a unique room name to entities that are not entitled to create rooms, entities that have sent an excessive number of requests for unique room names, etc.

The service MAY use any algorithm that ensures the creation of a room name that will be permanently unique in the context of the service (e.g., a cryptographic hash of the requesting JID, datetime, and random salt), or simply use a UUID as defined by RFC 4122.

The room creator would then use the XML character data of the <unique/> element as the node identifier portion of the room JID it requests:

]]>

If a MUC service supports the protocol specified herein, it MUST advertise that fact by returning a feature of "http://jabber.org/protocol/muc#unique" in response to &xep0030; information requests &NSNOTE;.

]]> [...] [...] ]]>
]]>