A Temporary List of Recipients is a list of JIDs shared between two or more multicast (XEP-0033) components and can decrease and increase. It's a simple master and slave system where the master defines the JIDs in the list. This is useful for different XMPP messages which have the same recipients over and over again and just the content of the message changes. Like the title imposes these lists are just temporary. If not used in a specific amount of time, for example 5 minutes, they are deleted. The command set is small so it can be easily implemented and doesn't produce much overhead. In fact for room which hundreds of participants from 10 different servers it'll save a lot traffic. This multicast extension will be pretty useful for MUC (XEP-0045) and PubSub (XEP-0060).
Detailed Protocol Extension
The following sections describe what actions are possible using the technique described here.
Create a List
<address type='bcc' firstname.lastname@example.org'/> <address type='bcc' email@example.com'/> <address type='list-create' jid='2f8bae7a-f01f-40f4-8c91-242e972d3cc6' />
Now the list with the id 2f8bae7a-f01f-40f4-8c91-242e972d3cc6 has two JIDs of the time bcc. The component sends the message out to the receipients and creates a temporary list.
Use a List
<address type='list' jid='2f8bae7a-f01f-40f4-8c91-242e972d3cc6' />
A warm welcome to everyone.
The result is that the receiving component looks up the list with the ID 2f8bae7a-f01f-40f4-8c91-242e972d3cc6 and sends the message to the recipients of that list. You see this will decrease traffic and stanza size a lot which will automatically result in less time which is spend on parsing the stanza.
Add JID to List
<address type='bcc' firstname.lastname@example.org'/> <address type='list-add' jid='2f8bae7a-f01f-40f4-8c91-242e972d3cc6' />
I’m here too.
First, it adds email@example.com to the list 2f8bae7a-f01f-40f4-8c91-242e972d3cc6 and then sends the message to all recipients of that list.
Remove JID to List
<address type='bcc' firstname.lastname@example.org'/> <address type='list-remove' jid='2f8bae7a-f01f-40f4-8c91-242e972d3cc6' />
oh..he is already gone
Removes email@example.com from the list and then sends the message to all recipients of that list.
Delete a List
<address type='list-delete' jid='2f8bae7a-f01f-40f4-8c91-242e972d3cc6' />
oh..he is already gone
Sends the message stanza to all recipients of the list and then deletes the list.
Back to normal life. We(my class) got standing ovations and had a lot fun. Now to Google Summer of Code. My plan for this week is to finish coding all data field representations and get a save/load function done on the weekend. In short: back to coding.
My application for Google Summer of Code 2007 has been accepted today so I’ll spend some time of the summer coding a XMPP Data Form Designer Suite. Some short infos for now about that suite. It’ll cover a RAD like GUI designer for the data forms and bots who will later provide the form using Ad-Hoc Commands and Data Forms to the clients which request it. You can use this suite to create specific member bots, run polls and this kind of stuff.
I’ve relaunched the site. More detailed content will follow.