Blog by Sumana Harihareswara, Changeset founder

08 Oct 2009, 23:44 p.m.

An Oversimplified Cliffs Notes To Telepathy

Hi, reader. I wrote this in 2009 and it's now more than five years old. So it may be very out of date; the world, and I, have changed a lot since I wrote it! I'm keeping this up for historical archive purposes, but the me of today may 100% disagree with what I said then. I rarely edit posts after publishing them, but if I do, I usually leave a note in italics to mark the edit and the reason. If this post is particularly offensive or breaches someone's privacy, please contact me.

Lots of people have never heard of my company or its projects -- even fairly plugged-in geeks often say "who?" or say "Oh yeah, the Subversion people." (No, that's Collabnet, where Leonard used to work.) So this post is specifically for my friends, to help explain one thing my company is doing that is cool. I'm going to simplify a lot so I hope my colleagues and other hard-core geeks don't wince too much.

It is annoying to have to log in to a bunch of different chat services to reach all your friends. MSN, Google Talk, AOL Instant Messenger, Bonjour, blah blah blah. You may not think this is related, but it's also annoying that if I want to work with someone on a document and we're at different computers, I can't use my regular word processor, I have to load up a web browser with Google Docs. And it's annoying to have your cell phone text messages (SMS) in a different place from your other chats.

These are all aspects of real-time communication. As my colleague Danielle put it,

The Telepathy project is helping solve all these problems. Telepathy is a project aiming to give desktop applications (like word processors, jukeboxes, CAD programs, and games) a way to painlessly integrate instant messaging and VoIP (voice over IP) telephony features. In more technical language, in Telepathy, Collabora aims to develop a real-time communications framework for the desktop and embedded devices.

My boss, Rob McQueen, was one of the Telepathy inventors, and I work for Collabora, the company he co-founded. We hope programmers will use Telepathy to improve your computer and cell phone and get rid of the annoyances I mentioned above, and create neat applications and services. We've already gotten started.

Here's one way of viewing the Telepathy framework. It has three essential parts:

  1. a bunch of Connection Managers, each handling the interaction with a protocol, such as Google Talk, XMPP, various VoIP (internet phone call) services, or AOL Instant Messenger
  2. Mission Control, managing accounts and channels (the individual protocol-bound pipelines that your messages go through)
  3. a specification, telling all the parts how to interact (very technical)

This design gives Telepathy a lot of flexibility. If a new interesting service comes along, like Facebook chat, we can just write a new Connection Manager for it and bam, anything that uses Telepathy can now interact with it. And there are a lot of text, voice, and video chat networks! Who knows what other interesting collaboration or communication networks might hook into Telepathy someday?

Another important aspect of Telepathy's architecture is D-Bus. Telepathy is primarily a project for the open source Linux operating system. It's built on D-Bus, a piece of Linux infrastructure that lets applications, frameworks, and low-level system components talk to each other. So that means Telepathy can act like a wormhole, not just between two different people's computers, but between unassuming regular ol' apps on their desktops. You and a friend can collaborate on writing a paper together right in your word processor, or play a game against each other. And you can do it without having to deal with a slow, limited web app in a web browser.

In case you are a geek and find this interesting: There's an entire online book with more detail, and a system overview with a pretty graphic. And of course we're an open source project and you're welcome to join us.

In the real world, even regular folks like you and I are getting the benefit of Telepathy with (for example) the new N900 smartphone. Evidence of Telepathy's awesomeness is in the addressbook -- it combines your friends' various text chat, phonecall, and other contact info in the same screen, rather than making you use separate programs.

I use Telepathy every day, because I use the Empathy chat program to talk to my AIM and Google Talk friends all in one tidy window. Telepathy has made some other cool applications possible; I wrote about them for the new Collabora website, and if people want, I'll post a little about those.

Note to self: in future posts, explain GStreamer, Farstream, WebKit, Electrolysis, and how we make money.


Iñigo Martínez
09 Oct 2009, 6:11 a.m.

I have the a question in mind since some time now. What about moving telepathy and empathy to non-linux os ?

Telepathy relies on d-bus, is that the problem maybe ?

Sumana Harihareswara
09 Oct 2009, 7:41 a.m.

There is a Telepathy-on-Windows project, if you're looking for that. But a larger question is: why would someone port to Windows, the Mac OS, or any other OS? I'd want to know what competing projects native to those environments exist, and whether it would be worth the effort.

09 Oct 2009, 9:30 a.m.

This sounds amazing, and I will be keeping an eye on it henceforth! Thank you for sharing.

Iñigo Martínez
10 Oct 2009, 6:32 a.m.

For example, because usually people is forced to use one OS at work. I'm lucky at the moment and I can decide about my OS at the moment, but in other environments in the past I was forced to use Windows.

Another reason could be to make the software know to the people on other OS and extend it's use.