[Telepathy] Problem to reuse existing channel when creating a call/chat

Xavier Claessens xclaesse at gmail.com
Thu Apr 17 09:48:52 PDT 2008


We discussed a problem on IRC and I'll summarise it with a simple
real-live use-case:

Alice has a megaphone applet[1] on her gnome-panel with Bob's contact.
When she clicks on that applet a audio/video call starts with Bob.

Alice also have empathy's contact list, when she clicks on the
microphone icon near Bobs's avatar it starts a call with Bob.

Alice calls Bob using the empathy's contact list, then do something else
(she don't need to have focus on the call window to speak with her
microphone). At some point she wants to get the focus back to the call
window and clicks on the megaphone applet because she don't know where
the window is (could be on another desktop, lost somewhere).

Actual result: A 2nd call is initiated
Expected result: The existing call window get focus because the system
knows that's stupid to call the same person twice.

The problem: The megaphone applet and empathy contact list are 2
different processes so they can't know that there is already an existing
channel for that call. They could list all existing channels and check
one-by-one if that's the channel for the call it wants but then it has
no way to tell the call-channel-handler that that call should get the

With named channels (handle_type != 0) and NMC4.x that can be worked
around by requesting again the channel so it get dispatched again and
the channel handler can see if there is already a window showing the
(handle_type, handle) tuple and give focus to it if it exists, create a
new window otherwise. However we discussed that redispatching channels
is wrong and that solution doesn't work for unnamed channels, so we need
a better way.

Xavier Claessens.

More information about the Telepathy mailing list