[standards-jig] gateway handling of legacy contact lists
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. ;-)
Jabber Software Foundation
More information about the Standards