Hi,

RFC3921bis explicitly allows getting roster from many sources:

  RFC 3921 assumed that the only place where a user stores their roster
   is the server where the user's account is registered and at which the
   user authenticates for access to the XMPP network.  This
   specification removes that strict coupling of roster storage to
   account registration and network authentication, with the result that
   a user could store their roster at another location, or could have
   multiple rosters that are stored in multiple locations.

This can be exploited by IM gateways for avoiding the well know
synchronization problems (here are some details I've written today
http://blog.bluendo.com/ff/im-gateways ), making the clients directly
retrieve foreign network rosters from the gateways themselves. The
idea I discussed today with Jan Kaluza of Spectrum is quite simple:
- a user registers with a gateway and they establish a mutual presence
subscription, as it happens now
- the user's client after the registration (and after each login) asks
for the roster directly to the gateway (now in a new namespace, with
the new XMPP specs with a direct jabber:iq:roster stanza), and it
locally merges the results from different sources
- the gateway replies as if it where the server, optionally using any
available optimization such as XEP-237
- the XMPP server sends presence packets only to the JID of the
gateway, which replies with direct presences from all the virtual
contacts in the legacy network

Waiting for RFC3921bis to be implemented by servers, we can
transitionally use a different namespace, such as
iq:jabber:roster:remote, so that servers will allow remote roster
stanzas. What we are wondering if there is interest by other client
developers (for us with Lampiro this is a priority in order to make
things work smoothly), since basically they need to issue multiple
roster requests and merge locally the rosters. If there is interest I
start writing a xep documenting the protocol

-- 
Fabio Forno,
Bluendo srl http://www.bluendo.com
jabber id: f...@jabber.bluendo.com

Reply via email to