Jump to main content | Jump to related content. | Jump to Search.

Multimedia communication? – you need Telepathy!

Permanent link

Posted by at Sep 19, 04:35 PM

As published in Linux User Magazine

Introduction

Everyone reading this article knows that Linux and open source is the way forward for software development. The good news is that over the last few years this belief has spread to more and more large companies who see the benefits of open source, both for them and for their customers. However the problem has often been in matching the needs of business with the needs of the open source community – ensuring that development goes in the right direction to benefit everyone. Often this is not as easy as it sounds, community support crumbles and the business walks away.

The Telepathy project shows how you can balance business and open source – and create cool stuff as well. Led by Rob McQueen and Philippe Kalaf of Collabora, Telepathy is a new approach to Instant Messaging (IM) and Voice over IP (VoIP) built on the D-Bus IPC system and the GStreamer media framework.

Not only has it created a framework that takes the hard work out of real time communications, but has been adopted by Nokia for its Linux-based 770 Internet Tablet. By working with Nokia, Collabora has fostered an active open source community around the framework itself, enabling faster development for everyone.

Telepathy

Firstly, why do we need Telepathy? Started by Collabora in early 2005, it is a new approach to IM and VoIP. Essentially it puts in place a framework that cuts development and integration efforts by separating protocol code backends from the user interfaces that link to them.

Looking at the GNOME desktop as an example, existing IM and VoIP clients such as Gossip, Gaim and Ekiga have their various strengths, and provide some of the features that people are looking for, but none of them represent a complete solution in terms of either function or compatibility. Furthermore, each of these clients has its own D-Bus interface to provide functions to other desktop programs, so developers who want to integrate presence, IM and VoIP functionality into their programs have to either choose one client to support, or duplicate their efforts for the different interfaces. This divergence is holding back the integration of presence, messaging and VoIP technologies into other desktop programs, such as the panel, web browsers, e-mail clients and address books.

Telepathy solves the duplication issues by moving away from the monolithic client, and creates a framework that allows both multiple clients and multiple backends. Essentially, Telepathy creates a standard set of D-Bus interfaces, abstracting common messaging, presence and multimedia services so developers don’t need to continually re-invent the wheel. The protocol code back ends are seperated from the UI programs that present them to the user.

The benefits are obvious – it fits with the open source mantra of doing one thing and doing it right. It provides re-usable components that can be used irrespective of user interface. Being language and license independent by communicating over D-Bus, it offers the widest opportunity to developers looking at peer to peer communication such as text or VoIP.

Telepathy – how does it work?

Telepathy presents a hierarchy of objects to programmers. Connection manager objects create connection objects, which connect to an IM or VoIP account and provide interfaces such as receiving presence, managing contact aliases, retrieving avatars, etc. In turn, connections create channel objects which have a specified type – for example IM, VoIP/Video or contact lists. Channel objects can also implement interfaces enabling you to perform tasks such as manage their members or chat room settings. At each level new interfaces and channel types can be added easily, extending the Telepathy framework to include new functionality. This makes development both seamless and straightforward – it is simple to create new connection managers for different protocols, but present the same D-Bus interface to UI programmers.

Gabble, Telepathy’s Jabber/XMPP backend implementation was created by Collabora using the Loudmouth Jabber client library and the D-Bus glib bindings. It provides IM, multi-user chat and roster channels and implements Google Talk (Jingle) VoIP signalling. Gabble is just one backend which provides support for Jabber and Google Talk, but there is already plenty of active development on alternative protocol backends such as AOL, MSN, ICQ, SIP, IRC, etc.

To handle voice and video traffic, Farsight, Collabora’s GStreamer-based streaming library, implements protocol-independent streaming media channels that automatically exchange and negotiate connection and codec candidates with your contacts. This code forms the basis of a VoIP engine which is re-usable on top of different protocol backends allowing the streaming code to be shared between eg Google Talk or SIP voice calls.

Collabora

Collabora was launched with a clear mission. Not just to generate open source developments that helped the community, but to increase the involvement of businesses to benefit everyone. One of the big problems holding back embedded Linux from entering the development mainstream is that companies simply aren’t doing it right. Traditional embedded development methods – hack up existing code to get product out the door quickly and deal with the consequences later have simply been transferred to the open source world. So, rather than taking part in community development, organisations are duplicating effort to solve the same problems. It’s the equivalent of banging your head against the wall rather than asking where the door is. Collabora aims to educate businesses that the advantages of Linux aren’t just ‘free’ software but the ability to work together to achieve goals that benefit everyone. Often it is difficult to get the ‘Ask first, code later’ message across to programmers on deadlines but once they see the advantages in generating maintainable solutions quickly and cost-effectively their eyes are opened. Collabora works to foster communities, bringing companies and individuals together and helping them set and meet common goals.

Nokia

While Collabora and others were working on the early development of Telepathy, Nokia was planning the addition of VoIP and IM to its Linux-based 770 Internet Tablet.

The 770 delivers internet communications on a portable size tablet, optimised to allow you to view the web on an impressive, high-resolution (800×480) 4.13” widescreen display. Input is through an on-screen, full-screen finger keyboard or handwriting recognition. Connections are via Wi-Fi or Bluetooth to a compatible mobile device, allowing users to view web pages and check emails at home, at destinations or en route.

Easy to use and stylishly designed in a slim pocketsized format, the 770 also lets consumers stream files, tune in to Internet radio, News Reader, or play videos and music as well as surf the web.

Before potentially embarking on its own messaging development, Nokia looked around the open source world to see if anyone else was looking to solve the same issues that they were facing. After seeing Telepathy and meeting Collabora, Nokia realised that the two projects were a good match and that working together would benefit everyone.

Development was rapid – taking six months to create a version of Telepathy that met both Nokia’s needs and formed the basis of a vibrant Open Source community project. These developments were incorporated into the latest 770 operating system – OS 2006 Edition, which was launched in May 2006.

The Nokia 770 Internet Tablet OS 2006 Edition uses Telepathy and Farsight as the foundation of VoIP and IM functionality enabling users to communicate via text or voice with friends using Google Talk and Jabber servers across the world. Additionally the 770 uses the openness and features of Telepathy to link to the Galago presence framework, allowing users to see the status of contacts at a glance.

The results of the Collabora/Nokia partnership have been continuously fed to the Open Source community and merged into the Telepathy project under the GNU LGPL license.

Future plans

The Telepathy project is moving ahead fast with many new ideas being developed. With over 10 developers actively contributing and many others involved, the Collabora/Nokia partnership has created an active and far-reaching community that has already written over 47,000 lines of code in a relatively short time.

More connection managers are under development by the Telepathy community, including AOL/ICQ/iChat (based on the Joscar library), MSN backend (in Python) and a SIP backend (using Nokia’s Sofia-SIP).

The advantage of Telepathy’s open framework is that it is straightforward to move beyond voice and text messaging to allow multimedia applications of all types. A peer to peer channel type is being developed which will allow users to share music, files and carry out collaborative editing. Further work on features such as avatars and notifications will increase what Telepathy can use and projects to link to more back ends and other new channel types such as video are also under way.

Telepathy isn’t just aimed at embedded devices like the Nokia 770 – there is already a prototype GNOME client (Cohoba) written in Python using GTK and D-Bus bindings and there are plans to add Telepathy support to applications such as Gossip, Gimmie, Deskbar, Evolution, Nautilus, and wherever it makes sense. For the latest on Telepathy visit the community Wiki at http://telepathy.freedesktop.org/ or join the mailing list at telepathy@lists.freedesktop.org

Conclusion

The Telepathy project set out with the rationale of delivering a completely new approach to IM and VoIP in the open source world. Not only has it achieved its first goal by creating an open framework that developers can use for multimedia communications but it has exciting plans for the future in areas such as peer to peer, video and file sharing.

However the biggest result of Telepathy has been to show how businesses and the community can work together to deliver benefits to everyone. Nokia’s use of Telepathy as the foundation of VoIP and instant messaging functions in the latest version of the Nokia 770 Internet Tablet OS 2006 Edition demonstrates what can be achieved together. As Yannick Pellet, Nokia R&D manager comments “Telepathy is a tribute to the speed and quality of development that can be attained when the corporate and open source world work hand in hand towards the same goals. Open Source development, spot-on design and competence has allowed us to achieve a small development miracle.”

Robert McQueen, Director, Collabora

Press Release Archive