A quick recap about all the discussions we had since Brussels and some
new thoughts on roster optimizations

- Roster sequencing rocks, it should be inserted into rfc3921bis and
all the world will implement it

- Partial roster retrieval: it's not clear whether  it should be just
retrieval or something modifying also the behavior of presence
broadcast. I'd prefer to stick it just retrieval, without affecting
presence and implement it as an optional xep, letting what I call
"activation" to a different mechanism. The main reason is that these
are two different things which can be needed in different situations;
partial retrieval has sever distinct use cases, which are independent
from presence delivery:
- just discover the groups
- retrieve just a group
- retrieve accordingly the subscription state (I feel this is pretty
important since I don't want to retrieve 1000 contacts with
subscription == none on my mobile, as it can happen if I use the
roster as address book for contacts I have very infrequent
communications with)
- retrieve additional information bound to contacts (certificate, vcard, ...)

- About partial roster activation there are different points of view,
some say it's not necessary, some is fearing a new monster like
privacy lists, others say just use privacy lists! The only thing I'm
sure about it is that we need it, since from few tests when I go
online with my mobile (compression enabled), I get the following
figures:
 - ~ 1.5 KB for logging in with all the stream features and sasl thing
 - ~ 4-5 KB for a ~ 150 contact roster
 - ~ 12-14 KB for the inbound presence storm, most of it completely unwanted.

So we did some internal brainstorming and here is what is our
implementation plan:
 - privacy lists have the nice feature of being there and ready, so we
will use them
 - we don't implement them, but just use them, that's to say users
will be not aware of the existence of such a baffling thing like
privacy lists, we just add a group "VIPs" (an perhaps some other more
in future) and the the user: if you want to save bits just add there
all the people you want to see whether they are only or not
 - If the VIPs group has items we create a privacy list in which all
incoming presence is blocked but that of VIPs
 - Before going online we set the VIPs privacy list as the active one

The only problem is that if we want to probe some contacts not in them
VIPs group we must either put them temporarily in the VIPs group or
unset the privacy list, and I don't know if there ar workarounds for
this (but a service with which we can poke the presence of somebody
using an <iq/>

bye

-- 
Fabio Forno, Ph.D.
Bluendo srl http://www.bluendo.com
jabber id: [email protected]

Reply via email to