[Telepathy] MC5 and my GSoC project for Banshee

Simon McVittie simon.mcvittie at collabora.co.uk
Mon Jun 22 03:07:08 PDT 2009

On Sun, 21 Jun 2009 at 22:14:18 -0600, Neil Loknath wrote:
> So, what disadvantages are there to sticking with the Requests and
> ContactCapabilities interfaces instead of using the new MC5 things?

The problem is that you won't interact correctly with other clients:

* SetSelfCapabilities, as you noticed, needs to be handled by one process (MC)
  to work properly

* If you don't tell MC 5 that you're willing to handle a certain type of tube,
  it will decide the tube can't be handled, and close it as undispatchable

* If another client could handle your tube (perhaps Banshee, RB and Amarok will
  eventually all support StreamTubes with service "daap"?) then Banshee will
  try to use an incoming tube that RB has already been given by MC, and they'll
  fight over it

The solution to all these is to have some central process dispatch the

* The current hack is that Empathy is that central process - have a look at
  Arnaud's work on VNC tubes. The tube handler (Vinagre) registers itself with
  Empathy, Empathy is the channel handler as far as MC 4 is concerned, and
  Empathy passes the tube to Vinagre.

* When Empathy is ported to MC 5, initially it will tell MC 5 that it handles
  every channel, then do dispatching internally; in particular, it'll continue
  to provide the current "EmpathyTubeHandler" hack, and Vinagre will work

* When Empathy-on-MC5 is stable, Vinagre can be ported to use MC 5 directly,
  as a real ChannelDispatcher client.

* When a reasonable number of tube handlers are real ChannelDispatcher clients,
  Empathy will stop providing the EmpathyTubeHandler hack and pretending to be
  a channel dispatcher, and will be "just another client".

I'd suggest following the same process for Banshee as for Vinagre - depending
on Empathy in the short term shouldn't be a big problem.

I realise this isn't an ideally smooth transition, but we're hoping to move
everything over to the AccountManager/ChannelDispatcher as fast as possible
(in time for GNOME 2.28, in Empathy's case).


More information about the telepathy mailing list