Abstract: | This document defines an extension to Mediated Information eXchange (MIX) specified in XEP-0369. It specifies how MIX and MUC can be operated together. |
Authors: | Kevin Smith, Steve Kille |
Copyright: | © 1999 – 2017 XMPP Standards Foundation. SEE LEGAL NOTICES. |
Status: | Experimental |
Type: | Standards Track |
Version: | 0.1.0 |
Last Updated: | 2018-05-21 |
WARNING: This Standards-Track document is Experimental. Publication as an XMPP Extension Protocol does not imply approval of this proposal by the XMPP Standards Foundation. Implementation of the protocol described herein is encouraged in exploratory implementations, but production systems are advised to carefully consider whether it is appropriate to deploy implementations of this protocol before it advances to a status of Draft.
1. Introduction
2. Supporting MIX and MUC together
2.1. Choosing Which Invite to Send
3. Internationalization Considerations
4. Security Considerations
5. IANA Considerations
6. XMPP Registrar Considerations
7. XML Schema
8. Acknowledgements
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
The Mediated Information eXchange (MIX) protocol framework and core capabilities are specified in Mediated Information eXchange (MIX) (XEP-0369) [1] (MIX-CORE). MIX can be used independently of Multi-User Chat (XEP-0045) [2] (MUC).
It may be desirable to operate a service that provides MIX and MUC together. This specification specifies three options for achieving this.
If both MIX and MUC are implemented, three approaches are noted.
The fully integrated approach would be transparent to clients. The following example shows how a service that supports MIX and MUC in a fully integrated manner would respond following the specification of Mediated Information eXchange (MIX) (XEP-0369) [1]:
<iq from='hag66@shakespeare.example/UUID-c8y/1573' id='lx09df27' to='mix.shakespeare.example' type='get'> <query xmlns='http://jabber.org/protocol/disco#info'> </iq> <iq from='mix.shakespeare.example' id='lx09df27' to='hag66@shakespeare.example/UUID-c8y/1573' type='result'> <query xmlns='http://jabber.org/protocol/disco#info'> <identity category='conference' name='Shakespearean Chat Service' type='text'/> <feature var='urn:xmpp:mix:core:0'/> <feature var='http://jabber.org/protocol/muc'/> <feature var='urn:xmpp:mix:core:0#searchable'> </query> </iq>
In the fully integrated service item discovery on the MIX/MUC service determines a list of channels. The protocol used for this is the same in MUC and MIX. Discovery actions on a channel in MIX MUST use 'node=mix' attribute in the discovery which will lead to the return of MIX channel specific information, as mandated for this discovery in Mediated Information eXchange (MIX) (XEP-0369) [1]. If is not set, MUC room specific information is returned.
For the partially integrated service, MIX servers will reference the associated MUC server and MUC servers will reference the associated MIX service. This will allow a client that only support MUC or only supports MIX to find the right server if it is given a reference to the other one. For a client that supports both MUC and MIX, it will enable the client to select its preferred service. For a MIX client, it will also be useful to know the MUC service, so that this information can be shared with a MUC client invitation. The following example shows how a MIX server identifies the associated MUC server. Note that MUC MUST NOT be advertized as a feature:
<iq from='hag66@shakespeare.example/UUID-c8y/1573' id='lx09df27' to='mix.shakespeare.example' type='get'> <query xmlns='http://jabber.org/protocol/disco#info'> </iq> <iq from='mix.shakespeare.example' id='lx09df27' to='hag66@shakespeare.example/UUID-c8y/1573' type='result'> <query xmlns='http://jabber.org/protocol/disco#info'> <identity category='conference' name='Shakespearean Chat Service' type='text'/> <feature var='urn:xmpp:mix:core:0'/> <x xmlns='jabber:x:data' type='result'> <field var='FORM_TYPE' type='hidden'> <value>urn:xmpp:mix:muc:0#muc-mirror</value> </field> <field var='muc-mirror' type='jid-single' label='Location of MUC mirror service'> <value>chat.shakespeare.example</value> </field> </x> </query> </iq>
The result is returned in an extended disco results in a form whose type value is 'urn:xmpp:mix:muc:0#muc-mirror'. The field with var='muc-mirror' is the value of which is the mirrored MUC domain's JID.
Similarly, a MUC service can advertise an associated MIX doming. The following example shows discovery of a MUC domain. Note that MIX MUST NOT be advertized as a feature
<iq from='hag66@shakespeare.example/UUID-c8y/1573' id='lx09df27' to='mix.shakespeare.example' type='get'> <query xmlns='http://jabber.org/protocol/disco#info'> </iq> <iq from='chat.shakespeare.example' id='lx09df27' to='hag66@shakespeare.example/UUID-c8y/1573' 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'/> <x xmlns='jabber:x:data' type='result'> <field var='FORM_TYPE' type='hidden'> <value>urn:xmpp:mix:muc:0#mix-mirror</value> </field> <field var='mix-mirror' type='jid-single' label='Location of MUC mirror service'> <value>mix.shakespeare.example</value> </field> </x> </query> </iq>
The result is returned in an extended disco results in a form whose type value is 'urn:xmpp:mix:muc:0#mux-mirror'. The field with var='mix-mirror' is the value of which is the mirrored MIX domain's JID.
Where a client supports MUC and MIX and has determined that for a channel that the server also supports a MUC room, the client has a choice as to which type of invite to send. This SHOULD be done by determining if the client support MIX using the mechanism specified in Mediated Information eXchange (MIX) (XEP-0369) [1]. If the client supports MIX a MIX invite SHOULD be sent.
See considerations in Mediated Information eXchange (MIX) (XEP-0369) [1].
See considerations in Mediated Information eXchange (MIX) (XEP-0369) [1].
When converting a 1:1 conversation to a channel there is potential to expose sensitive information and to present invalid information.
None.
The urn:xmpp:mix namespace needs to be registered.
To be supplied when MIX progresses to proposed standard.
See Mediated Information eXchange (MIX) (XEP-0369) [1] for a list of contributors to the MIX Family of specifications.
Series: XEP
Number: 0408
Publisher: XMPP Standards Foundation
Status:
Experimental
Type:
Standards Track
Version: 0.1.0
Last Updated: 2018-05-21
Approving Body: XMPP Council
Dependencies: XMPP Core, XMPP IM, XEP-0004, XEP-0030, XEP-0054, XEP-0060, XEP-0084, XEP-0128, XEP-0198, XEP-0292, XEP-0297, XEP-0313, XEP-0372
Supersedes: None
Superseded By: None
Short Name: MIX-MUC
Source Control:
HTML
This document in other formats:
XML
PDF
Email:
kevin.smith@isode.com
JabberID:
kevin.smith@isode.com
Email:
steve.kille@isode.com
JabberID:
steve.kille@isode.com
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-0369: Mediated Information eXchange (MIX) <https://xmpp.org/extensions/xep-0369.html>.
2. XEP-0045: Multi-User Chat <https://xmpp.org/extensions/xep-0045.html>.
Note: Older versions of this specification might be available at http://xmpp.org/extensions/attic/
Split out from MIX 0.10.0;
(sek)END