This commit is contained in:
stpeter 2011-08-16 15:15:34 -06:00
parent a83e2c905e
commit bdc37fbb0c
1 changed files with 28 additions and 1 deletions

View File

@ -25,6 +25,12 @@
<url>http://xmpp.org/schemas/x-conference.xsd</url>
</schemaloc>
&stpeter;
<revision>
<version>1.2rc1</version>
<date>2011-08-16</date>
<initials>psa</initials>
<remark><p>Added continue and thread attributes for feature parity with mediated invitations when converting a one-to-one chat to a groupchat.</p></remark>
</revision>
<revision>
<version>1.1</version>
<date>2009-12-07</date>
@ -88,7 +94,7 @@
</header>
<section1 topic='Introduction' anchor='intro'>
<p>&xep0045; defines a protocol for groupchat over XMPP. That specification includes a method for inviting a contact to a room, where the invitation is mediated by the room itself: the user sends the invitation to the room, which in turn sends it to the contact. Unfortunately, a mediated invitation might not be delivered to the contact, for example if the contact blocks communication with entities not in its roster as specified in &xep0016;. As privacy lists have become more common, MUC invitations have been increasingly blocked at the server side, resulting in an undesirable user experience. Therefore, this specification defines a method for sending an invitation directly from the user to the contact, which re-uses the original 'jabber:x:conference' namespace in use before XEP-0045 was written (with the addition of a 'reason' attribute for the sake of feature parity with XEP-0045).</p>
<p>&xep0045; defines a protocol for groupchat over XMPP. That specification includes a method for inviting a contact to a room, where the invitation is mediated by the room itself: the user sends the invitation to the room, which in turn sends it to the contact. Unfortunately, a mediated invitation might not be delivered to the contact, for example if the contact blocks communication with entities not in its roster as specified in &xep0016;. As privacy lists have become more common, MUC invitations have been increasingly blocked at the server side, resulting in an undesirable user experience. Therefore, this specification defines a method for sending an invitation directly from the user to the contact, which re-uses the original 'jabber:x:conference' namespace in use before <cite>XEP-0045</cite> was written (with the addition of 'reason', 'continue', and 'thread' attributes for feature parity with mediated invitations).</p>
</section1>
<section1 topic='How It Works' anchor='howitworks'>
@ -106,6 +112,19 @@
<p>The 'jid' attribute, which is REQUIRED, specifies the address of the groupchat room to be joined.</p>
<p>The 'password' attribute, which is OPTIONAL, specifies a password needed for entry into a password-protected room and maps to the &lt;password/&gt; element in a mediated invitation.</p>
<p>The 'reason' attribute, which is OPTIONAL, specifies a human-readable purpose for the invitation and maps to the &lt;reason/&gt; element in a mediated invitation.</p>
<p>The 'continue' and 'thread' attributes, which are OPTIONAL, specify that the groupchat room continues a one-to-one chat having the designated thread; these map to the &lt;continue/&gt; element (with 'thread' attribute) in a mediated invitation. Note that the 'continue' attribute has a datatype of boolean. &BOOLEANNOTE;</p>
<example caption="A direct invitation that continues a one-to-one chat"><![CDATA[
<message
from='crone1@shakespeare.lit/desktop'
to='hecate@shakespeare.lit'>
<x xmlns='jabber:x:conference'
continue='true'
jid='darkcave@macbeth.shakespeare.lit'
password='cauldronburn'
reason='Hey Hecate, this is the place for all good witches!'
thread='e0ffe42b28561960c6b12b944a092794b9683a38'/>
</message>
]]></example>
<p>Upon receiving a direct invitation, the contact's client SHOULD present the invitation to the contact so that the contact can accept it or decline it. If the contact accepts the invitation, the contact's client shall join the room as described in <cite>XEP-0045</cite>. If the contact declines the invitation, it shall silently discard the invitation.</p>
</section1>
@ -179,6 +198,10 @@
<xs:complexType>
<xs:simpleContent>
<xs:extension base='empty'>
<xs:attribute
name='continue'
type='xs:boolean'
use='optional'/>
<xs:attribute
name='jid'
type='xs:string'
@ -191,6 +214,10 @@
name='reason'
type='xs:string'
use='optional'/>
<xs:attribute
name='thread'
type='xs:string'
use='optional'/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>