[Telepathy] Connecting a remote DBus Object over a DBus Tube
alban.crequy at collabora.co.uk
Thu Aug 19 04:37:25 PDT 2010
Le Thu, 19 Aug 2010 08:34:35 +0200,
tomw <tomw at ubilix.com> a écrit :
> Hi folks,
> I'm trying to use a remote Object over a DBus tube. So far everything
> works fine. The tube is open and upon the tube_channel_state_change I
> get a dbus.connection.Connection object with the related address like
> unix:path=/tmp/dbus-gabble-6k8gfh-V. If I proceed then with:
> if state == TUBE_CHANNEL_STATE_OPEN:
> tube = dbus.connection.Connection(self.tube_addr)
> remote = tube.get_object(SERVICE, PATH)
What is "SERVICE" here? Are you using a 1-1 D-Bus tube or MUC D-Bus
In D-Bus tubes (both 1-1 and MUC), there is no bus driver implementing
org.freedesktop.DBus, so there is no well-known names.
In the case of MUC D-Bus tubes, you can find the D-Bus unique name (to
use instead of "SERVICE") of a contact with the "DBusNames" property on
your tube channel:
> Calling Method on the remote object always creates a DBus timeout:
> "DBusException(dbus.String(u'Did not receive a reply..."
> The remote object is running on the DBUs and locally works like it
> should. So, what am I missing here?
You can use strace on your application to see if it receives a D-Bus
message on the tube socket.
> BTW, the telepathy framework is really a great piece of work (once you
> grasp it :-)
More information about the telepathy