Revision 4 as of 2005-09-23 16:46:13

Clear message

Desktop Integration of SIP/IM in the (K)Ubuntu Desktop



Existing free IM software connects to either a single network (such as Jabber) and implements as much of that network's functionality as possible, or provides plugin architecture to connect to various networks and attempts to implement as many of the features in common on those networks. In either case the result is a large base of code which tries to do a great number of different tasks from the same program, leading to complicated and confusing user interfaces, poorly maintained areas of code, and violates the general principle of 'do one thing and do it well'.


Defining an extensible interface between backend server connections and to the user interfaces will allow seperate simpler programs to implement one part of the functionality, be it reliable connection to a Jabber or a SIP server, or present a single consistent user interface to the user for having an IM chat, making a voice call, or transferring a file.

Scope and Use Cases

Todays most used desktop applications are eMail clients, InstantMessaging clients and VoIP Softphones, so it could be like this:

1. Ken installs Ubuntu and wants to write an eMail, write an instant message or wants to phone his friend Barbie. So he starts up his eMail application and adds his friends eMail/IM-ID/SIP-ID/PhoneNumber to his addressbook. The addressbook now tells him that his friend Barbie is Online, so he can instant message her, and the addressbook tells him as well, that she is able to receive VoIP phone calls. So Ken clicks on her ID and starts a voice chat with Barbie.

2. Ken knows someone in India, who has no bandwith for Voice Chats, but his buddy is able to do Instant Messaging e.g. via Jabber, so Ken adds his buddy to the Addressbook and it tells him, that his indian friend is online and available for a text chat. Ken klicks on his contact and he starts chatting.

3. Barbie, meanwhile, tries to reach her bank to apply for a new credit for her new Computer, which runs Ubuntu. She adds her contact at the bank to her addressbook and the Addressbook tells her, that her contact is not online, but she can write him an eMail. She clicks on the contact and start writing an eMail. (If she ever got approved for the credit, we actually don't know)

Implementation Plan

We will work closely together with the IPCF Team ( for the underlaying protocol. You can see here ( the integration into already existing desktops. (The diagram is a bit outdate, but you should get the idea).

The Presence Manager (galago -> will be integrated into GNOME/KDE. This is the work of the IPCF Team. They will release a reference implementation for GNOME (*give a timeframe?*). The Protocol Stacks (e.g. SIP, Video over IP, Jabber, ICQ, etc.) will be implemented as connection managers. The IPCF Team is focusing for the first release on Jabber and SIP.

The connection managers for the different protocol stacks are emitting signals for presence changes, which are picked up by galago.

The Presence Manager is providing a high level API for client developers, so it will be easy for every developer to integrate the functionality into their software (e.g. Evolution, Thunderbird, Kontact). IM Clients like Gajim/Gaim/PSI/Kopete can easily be extented to support this system. SIP /Video Over IP Clients (e.g. KPhone, Gnomemeeting, minisip) can be as well extended easily to provide support to the IPCF approach.

[CategoryUbz] [CategoryMOTUIM] [CategoryMOTU]