[Gossip-dev] Re: [Telepathy] GossipProtocol problems

Mikael Hallendal micke at imendio.com
Mon Oct 16 22:46:50 CEST 2006


Robert McQueen wrote:
> Mikael Hallendal wrote:
>> It is used by the UI layer in order to send the message to the right
>> window. Ie. if we have an active discussion in an open chat window with
>> someone it is locked to that resource even if another resource with
>> higher priority comes online.
> 
> Telepathy knows this because you have a Channel open to that person,
> which stores this state, and any entity caps you were given during that
> session, etc.

Ok, that might do the trick but would require us to add some notion of
active chat session to Gossip I guess. Ie. close a channel and open a
new one at a later point if some timeout is reached.

Not entirely sure if this is how it would be done, the resource stuff is
quite tricky.

>> It should be exported by Telepathy since it is needed by us and will
>> most definitely be by some other application as well.
> 
> We've not come across anything that needs it as yet; that's why Gabble
> doesn't export it currently. As Xavier spotted, we could put multiple
> presences in for one person, and then say which resource they belonged
> to, which has the problem of requiring all clients to understand
> multiple-presence/resource contacts to use XMPP, or maybe just have a
> list of the available resources as a parameter to the main presence. I
> won't dismiss it out of hand, but it seems very unimportant to me
> provided Gabble's choice of resource for outgoing events is correct.

Now, we currently don't support that the user decides himself which
resource to contact and it does have a few bad sides. For example, you
might know that a person is available on a certain resource even though
that client would have lower priority. Many jabber clients expose this
in the UI for that reason.

I can imagine in some other use cases it can be even more important
(though I have no idea of how these are handled inside of Gabble as it is).

Say for example, Person A is connected from two different desktops with
resources 'laptop' and 'desktop'. On 'desktop' he is running a chat
client, say Gossip ;) and on 'laptop' he is running a whiteboard
application. Person B is going to start a whiteboard session with Person
A but 'desktop' has higher priority. What will happen?

And, given that Person B is sitting in the same room as Person A he
knows that he should target 'laptop' with his traffic. This is a meeting
and Person A don't want any chat messages getting here so he won't race
the priority of 'laptop' to be higher than 'desktop'.

How is this handled by Gabble, and if not, I think it has to be
considered because it would be a quite common use case.

Cheers,
  Mikael Hallendal

-- 
Imendio AB, http://www.imendio.com/


More information about the Gossip-dev mailing list