Currently it is not possible to send room invitations directly from one
person to another. That is, the invitation must go through the room. See:

http://www.xmpp.org/extensions/xep-0045.html#invite

This can cause problems with deployments that use privacy lists to block
communications from entities that are not in your roster.

In order to solve this issue, we need to modify the <invite/> element in
XEP-0045. Currently the flow is like this:

1. Occupant Sends an Invitation by Way of Room

<message
    from='[EMAIL PROTECTED]/desktop'
    to='[EMAIL PROTECTED]'>
  <x xmlns='http://jabber.org/protocol/muc#user'>
    <invite to='[EMAIL PROTECTED]'/>
  </x>
</message>

2. Room Sends Invitation to Invitee on Behalf of Occupant

<message
    from='[EMAIL PROTECTED]'
    to='[EMAIL PROTECTED]'>
  <x xmlns='http://jabber.org/protocol/muc#user'>
    <invite from='[EMAIL PROTECTED]'/>
  </x>
</message>

Notice that the invitation comes from the room and there is no way for
the invitee to know which room to join other than by checking the 'from'
address on the <message/>.

For direct invitations we'd need to include a 'room' attribute, like so:

<message
    from='[EMAIL PROTECTED]/desktop'
    to='[EMAIL PROTECTED]'>
  <x xmlns='http://jabber.org/protocol/muc#user'>
    <invite room='[EMAIL PROTECTED]'/>
  </x>
</message>

Yes, this is basically just like jabber:x:conference. Hmm. Everything
that's old is new again.

BTW, I think the room itself should include the 'room' attribute too.
That way you can just check the room attribute, not the 'from' address
of the <message/>.

Naturally, you could still send invitations through the room, but the
ability to invite directly enables us to work around the privacy lists
blocking issue.

Thoughts?

Peter

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to