Telepathy (software)

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.

Implementations
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

Mission Control is the name of the component that provides a way for end-user applications to abstract some details of low level telepathy components such as connection managers.

Tubes are Telepathy's mechanism for supporting arbitrary data transfer and remote IPC.

Telepathy forms the basis of the instant messaging and voice/video calling software on the Nokia 770, N800, N810, N900, N9 and Jolla.

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.

Applications

 * Empathy
 * KDE Telepathy
 * Sugar