[Standards] [XEP-0045 v. 1.23pre3] outsiders and 'broadcast' invitations

James Tomson jtomson at horizonwimba.com
Sun Oct 21 14:42:54 CDT 2007


For our xmpp deployment, we mostly use MUCs for spontaneous unique  
group chat rooms, rather than the irc-model of persistent, moderated  
rooms.

Luckily for us, XEP-0045 is flexible enough to accommodate this, but  
lacks one bit of polish in our use cases: the built-in ability to get  
a list of pending invitees to the current room.

We're currently doing it by having the inviter set the message stanza  
to type='groupchat' when sending the invite, so other occupants are  
made aware:

(firstwitch and secondwitch are in the 'darkcave' room)

firstwitch sends invite to thirdwitch:
--
<message from=' crone1 at shakespeare.lit/desktop'
                     to='darkcave at macbeth.shakespeare.lit'
                     type='groupchat'>
   <x xmlns='http://jabber.org/protocol/muc#user'>
     <invite to='hag66 at shakespeare.lit'/>
   </x>
</message>
--

secondwitch receives:
--
<message from='darkcave at macbeth.shakespeare.lit/firstwitch'
                     to='wiccarocks at shakespeare.lit/laptop'
                     type='groupchat'>
   <x xmlns='http://jabber.org/protocol/muc#user'>
     <invite to='hag66 at shakespeare.lit'>
   </x>
</message>

(not shown - the invite message from darkcave to thirdwitch, on  
behalf of firstwitch)

The new 'outsider' role makes it simple for the decline to be relayed  
back to the room occupants:

thirdwitch sends decline:
--
<message from='hag66 at shakespeare.lit''
                     to='darkcave at macbeth.shakespeare.lit'
                     type='groupchat'>
    <x xmlns='http://jabber.org/protocol/muc#user'>
      <decline to='crone1 at shakespeare.lit'/>
    </x>
</message>
--

(not shown - decline message from darkcave to firstwitch)

secondwitch receives:
--
<message from='darkcave at sharespeare.lit'
                     to='wiccarocks at shakespeare.lit/laptop'
                     type='groupchat'>
   <x xmlns='http://jabber.org/protocol/muc#user'>
     <item affiliation='none'
                jid='hag66 at shakespeare.lit'/pda'
                role='outsider'/>
     <decline to='crone1 at shakespeare.lit'/>
   </x>
</message>
--

Anyway we find this pretty handy, and allows for the client UI to  
keep a nice updated display of pending invitees.

In addition to 'broadcast invitations', we have added extensions to  
allow the inviter to cancel its pending invitations at any time, or  
have the room do it on their behalf after a specified timeout. For  
the sake of brevity I won't stanza-spam these case unless there is  
interest :D

I don't know if it any of these features are useful enough to others  
to consider inclusion into XEP-0045 v 1.23pre3, or some future version?

-James

---
James Tomson
james at wimba dot com


More information about the Standards mailing list