[standards-jig] gateway handling of legacy contact lists

Paul Curtis pcurtis at terrapin.com
Thu Dec 11 23:11:58 UTC 2003

On Thursday, December 11, 2003, at 03:50  PM, Joe Hildebrand wrote:

> With the caveat that the gateway, on receiving a <presence
> type='subscribe'/>, will check to see if you are already subscribed to 
> that
> contact on the other side of the gateway.  If so, it just responds 
> <presence
> type='subscribed'/>.  If not, it should subscribe (or add to your buddy
> list, or whatever) on the other side of the gateway.

There is two issues that resvolve around gateways and rosters. The 
first is an easy correction. The gateways should use the 
jabber:x:roster to add items correctly. This will be added to the Yahoo 
gateway to make it correct.

The second problem is how to determine whether to add a contact (on the 
second login for example) to the roster. Currently, the gateway can 
only retrieve the complete roster at once. It then has to iterate 
through the whole roster to determine whether a legacy IM contact 
exists. And then what to do? If the contact exists, you can ignore the 
contact. however, if it doesn't, you would need to push the contact 
onto the user's roster.

While this doesn't seem overly complex, it becomes a large bottleneck 
when you have a large number of contacts on your roster (like stpeter, 
for example :) ) and/or a large number of users who access the gateway.

I don't have an easy answer for this. Experience tells me that I should 
be using jabber:x:roster to add the contacts from the legacy IM system 
to the user's roster. It's the roster retrieval and traversing that 
worries me from a performance perspective.


More information about the Standards mailing list