On Tuesday 05 August 2008 08:54:22 Pavel Simerda wrote:
> On Mon, 04 Aug 2008 16:59:50 -0600
>
> Peter Saint-Andre <[EMAIL PROTECTED]> wrote:
> > Right. Or XEP-0191. Effectively Google Talk (and other similar
> > services) deploy a rule of "forbid communications with people not on
> > my roster" on the user's behalf -- no need for fancy privacy rules
> > managed by the user.
>
> But this also disallows chatting with people outside your roster, which
> is something I often do.
>
> I'm for any way that doesn't leak presence but allows chat sessions (or
> single messages)... without giving any presence info. It's nice to be
> able to decide about the non-roster people blocking separately.
>
> Some people would also like to use the "invisible" facility, that would
> also be orthogonal to the roster subscriptions. (I never used
> invisible personally.)
>
> Sorry if I'm just repeating the obvious.

I've suggested using directed presence (which need not contain the same 
information as broadcasted presence, if any) for this.

A related discussion is that we wanted a way to trade caps and resource 
information between unsubscribed/invisible contacts.  Robert suggested 
sending directed presence with caps and a special field to indicate you want 
to trade capabilities and reveal each others' resource name.  E.g.:

  <presence from='contactA/Resource' to='contactB'>
    <tradewithme/>
    <c ...> // caps
  </presence>

I believe most clients drop unsolicited presence on the floor.  What we'd need 
is for clients to notice the <tradewithme> element on these stanzas as a 
request to trade presence temporarily with the sender, but not necessarily 
form a subscription.  So your client might say, "User 'contactA' wishes to 
engage in communication with you.  Is this okay? [Yes/No]"  If the user 
selects 'Yes', then your client would reply with the same kind of presence 
packet.  Now, each party may determine disco information of the other, and 
they can chat, do file transfers, jingle, etc.

Servers could then have a scheme where they block/bounce all communication 
except from contacts that have your presence.  Presence is the key word here, 
not subscriptions, since if you login invisible you'd still want the bouncing 
effect on subscribed contacts that you've not revealed yourself to.  I think 
presence is the most natural privacy control mechanism.

There's just one problem, and this was brought up at the summit: if both 
parties forbid communication with people not in the roster (or, more 
appropriately, forbid communication with people who don't have their 
presence), then it would not be possible to trade directed presence.  Oops!

IMO, for this to work we need to define some server exceptions.  For example, 
GTalk will let <presence type='subscribe'> packets through.  We'd want to 
take this a step further and let through any presence packet containing a 
<tradewithme> element.

We need two new XEPs: "Temporary Presence Exchange" (for exchanging 
caps/resource information with unknown/invisible entities), 
and "Presence-based Privacy" (which is TPE-aware).

-Justin

Reply via email to