[standards-jig] gateway handling of legacy contact lists
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
> contact on the other side of the gateway. If so, it just responds
> 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