Presence Service
The Presence Service is a component in the Sugar stack that tracks the Presence of Buddies (other XOs) and Activities on the network. It has an API in Sugar, and also has a D-Bus interface that can be used by non-Python activities.
See Shared Sugar Activities for an overview of collaboration, or Tubes Tutorial for how to add collaboration to an activity.
Source
git clone git://dev.laptop.org/projects/presence-service
Overview
Sugar's Neighborhood view (or mesh view) acts as the equivalent of an instant messaging (IM) buddy list. It shows who is on line. Presence Service is the Sugar component that tracks the presence of these buddies and activities, using Telepathy, a real-time communications framework that can handle multiple protocols. We are using XMPP via a Jabber server, as well as link local XMPP, for presence and collaboration.
Diagram
Connection Types
Presence Service supports two Telepathy backends (connection managers):
- Gabble, that provides server-based Jabber/XMPP functionality. It talks to a Jabber server (e.g. olpc.collabora.co.uk) and sets up different chat rooms through which activities talk to each other.
- Salut, a link-local Connection Manager using reliable multicast over the local network
Active Connection
Though Presence Service is designed to run both connection managers simultaneously, at this stage only one is in effect at a time, since there is no UI support for showing which activities are shared on which connection.
Presence Service will use Gabble when it has Internet access (a valid IPv4 address) and has connected to a Jabber server, otherwise Salut (but not both at the same time).
API
See Low-level Activity API#Presence for the basic operations, and Presence Service DBus API for a more comprehensive, but out of date, API listing.