[standards-jig] gateway handling of legacy contact lists

Peter Saint-Andre stpeter at jabber.org
Thu Dec 11 20:37:04 UTC 2003

Currently, some gateways to legacy IM services handle legacy contact
lists by sending <presence type='subscribed'/> from each legacy contact.
However, this behavior is disallowed in XMPP-IM in order to plug an
existing hole in the protocol, which can enable a kind of roster spam.
There are several possible solutions:

1. Change the XMPP-IM spec. Not my preferred approach at this point. The
change would be: if the user receives a subscribed stanza from a legacy 
contact and the user is subscribed to the hostname of the contact's JID 
(e.g., I'm subscribed to yahoo.jabber.dk and receive a subscribed from 
'myfriend at yahoo.jabber.dk), then let it through. This feels like a hack
("special-casing" if you prefer that term) and I really would prefer not 
to make any changes to the XMPP specs at this point just to enable this 
gateway behavior, much as I don't like breaking existing functionality.

2. Put the onus on the client -- whenever my client receives presence
from someone through the gateway, it checks to see if that contact is in
the Jabber roster; if not, perform a roster set to add that contact.
This doesn't give the user the pleasant feeling of "I've registered
with the gateway, and look: here are all my contacts!"

3. After I register with the gateway, it sends a jabber:x:roster message
to me containing all my contacts.

Option #3 seems like the right way to go, since that is what the 
jabber:x:roster protocol is for, after all. ;-)




Peter Saint-Andre
Jabber Software Foundation

More information about the Standards mailing list