Presence Service

From OLPC
Revision as of 18:13, 26 January 2008 by Morgs (talk | contribs) (Some more content, much more coming soon)
Jump to navigation Jump to search

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.

Processes