Connection Managers and Presence Service

Morgan Collett morgan.collett at collabora.co.uk
Mon Feb 18 04:38:14 EST 2008


Rene De Santiago wrote:
> I've been looking at how to implement a new communication manager that  
> communicates with the OLPC presence service and I'm still trying to  
> make sense out of parts involved there, like DBus, the presence  
> service and the existing plugins (linklocal_plugin.py and  
> server_plugin.py).
> 
> Can someone provide more insight on the role of the above plugins? It  
> seems that they act as "glue" between the presence service and the  
> connection managers implemented in C.  The OLPC wiki also provides a  
> list of methods for the Presence Service DBus, what are the plugins  
> that interact between the Connection Managers and the Presence Service  
> to satisfy these methods.  Furthermore, the DBus documentation talks  
> about "bindings" that can be use to interface with it, are the plugins  
> mentioned above (linklocal_plugin.py and server_plugin.py) these  
> bindings or are they somewhere else?

The plugins are indeed a simple layer between Presence Service and the
Telepathy Connection Managers. The CMs provide all the presence
information we are currently working with.

The plugins allow us to customise the way Presence Service starts and
stops its use of the Telepathy CMs - for example, check if we have an
existing connection to the CM and reuse it, or if not, create a connection.

If we integrate a new Connection Manager that conforms to the Telepathy
Spec, then we would add a new plugin to manage it.

Bindings are how a language can talk D-Bus. dbus-python is the python
binding.

The sugar.presence module talks to Presence Service over the D-Bus
session bus. Non-python activities can talk to Presence Service using
its D-Bus API - http://wiki.laptop.org/go/Presence_Service_DBus_API.
This is not related to how Presence Service talks to the Telepathy CMs,
or to the plugins.

Presence Service in turn talks to the appropriate Telepathy CM using
telepathy-python which goes over D-Bus as well. Activities in some cases
also use telepathy-python to talk directly to the Telepathy CM.
Guillaume gave the reference for this API, which is the Telepathy D-Bus
specification.

See http://wiki.laptop.org/go/Presence_Service#Presence_Stack for a diagram.

Further questions welcome.

Regards
Morgan



More information about the Devel mailing list