Interacting with Skype via DBus/GLib

Osmo Antero Maatta osmoma at
Sat Dec 25 07:55:34 PST 2010

Many thanks to both Thomas and Alberto.

Now the Skype interface works very well.

I created a SkypeService object and registered it with
"/com/Skype/Client", (GObject*)service_object);

This following XML defines the skype_service_notify_callback(...) method 
and its argumets (it has only one).
See the skype-service-object.xml file.

<?xml version="1.0" encoding="UTF-8" ?>
<interface name="com.Skype.API.Client">
<method name="Notify">
<annotation name="org.freedesktop.DBus.GLib.CSymbol" 
<arg type="s" name="message" direction="in"/>

I converted it to skype-service-object-glue.h with
$ dbus-binding-tool --prefix=server_object --mode=glib-server 
skype-service-object.xml > skype-service-object-glue.h

The SkypeService object is described by skype-service.[hc]

Here is a functional example and test for the Skype - GLib/DBus interface.

Unpack the files, then compile and link with it
$ ./

$ ./t1

Study the t1.c  for more information.

Again, thanks for the help and happy holidays :-)

   Osmo Antero (Moma)  (.com)

On 12/25/2010 11:29 AM, Alberto Mardegan wrote:
> On 12/25/2010 11:31 AM, Osmo Antero Maatta wrote:
>> But I have problems with setting the "Notify" signal right for Skype.
>> The example code below (t1.c) never receives notifications from the 
>> Skype.
> Yes, because "Notify" is not a signal, but a method:
>> method call sender=:1.121 -> dest=:1.124 serial=20
>> path=/com/Skype/Client; interface=com.Skype.API.Client; member=Notify
>> string "CALL 64 XXX"
> The program is registering an object, not a proxy. You 
> should not call dbus_g_proxy_new_for_name() in 
> skype_connect_dbus_signals(), but dbus_g_connection_register_g_object().
> HTH,
>   Alberto

More information about the dbus mailing list