Trac is being migrated to new services! Issues can be found in our new YouTrack instance and WIKI pages can be found on our website.

Version 4 (modified by resiak, 17 years ago) (diff)

I implemented presence

Overview

Telepathy is a communications framework built around DBus. Connections to IM servers, text conversations, and voice calls (for instance) can be implemented with a number of separate processes, interacting via the session bus. This approach allows each component to do one thing well, rather than requiring a single monolithic application to provide every piece of functionality. It also allows any new UI to reuse the existing connection managers rather than having to reimplement every protocol itself.

resiak's Summer of Code project is to write:

  • a libpurple-based Telepathy connection manager, to provide Telepathy clients with access to the full range of protocols supported by libpurple. The connection manager has been dubbed telepathy-haze.
  • a Telepathy protocol plug-in for libpurple, to give Pidgin and Finch access to Telepathy implementations of protocols in addition to the implementations in libpurple.

This project's mentor is Robert McQueen.

Feature Checklist

(It's worth taking a look at the Telepathy spec if it's not clear what things here mean.)

Connection Manager (Haze)

  • Connect to protocols
    • Works, but needs a bit of work to make the connection have parameters for the options supported by the underlying prpl, and to make the parameters as far as possible match those used by other CMs.
    • Also, it'd be nice to report the actual reasons for unrequested disconnections.
  • Text IM channels
    • Done. Slight hiccup with /me on IRC, but I'm sure we'll survive, particularly since MUCs aren't implemented so IRC is a bit useless :-)
  • Contact lists
    • HANDLE_TYPE_LIST: Only the "subscribe" channel is implemented. Right now it's assumed that all protocols can store this stuff server-side; my reading of the spec suggests that this list should not exist if it can't be stored on the server, such as in IRC.
    • HANDLE_TYPE_GROUP: Working, with a small amount of surprising magic. When a contact is added to "subscribe", they mysteriously appear in the "Buddies" group (FIXME: they actually appear in _("Buddies")); if a buddy is removed from all groups, they fall off "subscribe" (FIXME: should they reappear in "Buddies" instead?).
  • Presence (status)
    • All protocols are advertised as supporting available, busy, away, extended away, invisible, and offline presences, all but the latter two with a message. Buddies appear in one of these statuses.
  • Avatars
  • Multi-user chats

Telepathy prpl

  • Support for at least everything supported by Haze.

Possible further work

  • A plugin to migrate existing accounts in Pidgin to use Telepathy.

Status

The original target was to have the connection manager essentially finished by 9th July. This turned out to be overly optimistic. The current plan is to get contact list support and presence done, so that it is usable, then move onto the prpl. (I will return to implementing MUCs and other goodies in the CM if I have time at the end of the summer; otherwise, I'll continue working on this stuff post-SoC anyway.)

Development

telepathy-haze is kept in a Darcs repository, currently at http://salami.ox.compsoc.net/~resiak/darcs/telepathy-haze/. In the nearish future, it will move to http://projects.collabora.co.uk/darcs/telepathy/ to be alongside most other Telepathy components. (Darcs is the de facto standard VCS for Telepathy components.)

Haze currently needs libpurple from the Monotone branch im.pidgin.soc.2007.telepathy.

The Telepathy prpl will be developed either in the same branch or into a sub-branch (im.pidgin.soc.2007.telepathy.prpl, maybe?).

All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!