Version 11 (modified by 16 years ago) (diff) | ,
---|
Table of Contents
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 dubbedtelepathy-haze
. - a Telepathy protocol plug-in for
libpurple
, to give Pidgin and Finch access to Telepathy implementations of protocols in addition to the implementations inlibpurple
.
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)
(Partly) Implemented
- 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)
- Protocols support statuses from available, busy, away, extended away, invisible, and offline presences, all but the latter two with a message, if a corresponding StatusType? exists on the underlying prpl.
- Ideally, each protocol would support at the Telepathy level exactly those status types which the prpl supports.
- Aliasing
- Retrieving remote aliases works
- Saving remote aliases works where the prpl allows, and is not available otherwise
- Setting your own alias is unimplemented because I haven't got around to adding API to libpurple to do this in a protocol-independent way rather than using a prpl action on MSN and setting the nickname field on xmpp and a prpl action on AIM and ...
- Avatars
- Retrieving remote avatars, and your current avatar, works
- You cannot set your own avatar. (Empathy doesn't support this either, so. :-))
- Typing notifications
Unimplemented
- Multi-user chats
- Privacy
- Everything I've forgotten.
Telepathy prpl
- Not started yet.
Possible further work
- A plugin to migrate existing accounts in Pidgin to use Telepathy.
Status
Grab telepathy-haze 0.1.1 ("Release less often, release correctly"). You may also want some profiles to use it with mission-control, although I believe recent Empathys include some telepathy-haze profiles.
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 should work with any released libpurple. If you want to use Empathy or some other libmissioncontrol-based Telepathy UI, you'll need at least libmissioncontrol 4.31. (Older versions choked on .manager files with more than one protocol.)
The Telepathy prpl will be developed in the im.pidgin.soc.2007.telepathy
branch; right now there's nothing useful in it.