Telepathy is a software framework which can be used to make software for interpersonal communications such as instant messaging, Voice over IP or videoconferencing. Telepathy enables the creation of communications applications using components via the D-Bus inter-process communication mechanism. Through this it aims to simplify development of communications applications and promote code reuse within the free software and open source communities by defining a logical boundary between the applications and underlying network protocols.
There are free software implementations of various protocols that export Telepathy interfaces:
- Gabble: for XMPP, including support for Jingle
- Butterfly: for Windows Live Messenger
- Idle: for Internet Relay Chat
- Salut: for the link-local XMPP protocol
- Haze: for accessing protocols supported by libpurple, the library used by the Pidgin messaging client. This was done as a Google Summer of Code project in 2007.
- Spirit: for the Skype protocol on the Nokia N900 and Nokia N9
- Rakia: for the Session Initiation Protocol (SIP), using Nokia's open source Sofia-SIP library
- Morse: for Telegram
Tubes are Telepathy's mechanism for supporting arbitrary data transfer and remote IPC.
How Telepathy works
Protocol implementations provide a D-Bus service called a connection manager. Telepathy clients use these to create connections to services. Once a connection is established, further communication happens using objects called channels which are requested from the connection. A channel might be used to send and receive text messages, or represent the contact list, or to establish a VoIP call.
- Farstream (formerly Farsight)