Please ask development related questions in the KDE Community Forum.
Projects/Telepathy
Contents
|
Introduction
The Telepathy framework is a DBus specification which provides a cross-desktop and cross-protocol abstraction layer for instant messaging, voice/video over IP and collaborative applications. See the Telepathy web site for more information about Telepathy itself.
This project is focused on integrating Telepathy with KDE. Our high-level aims are the following:
- to provide a unified instant messaging and voice/video communication framework within KDE, which integrates throughout the desktop experience.
- to provide collaborative features in applications which fit seemlessly into the KDE platform
- to provide the infrastructure within KDE necessary to acheive the above two, using cross-desktop specifications and implementations wherever possible.
Infrastructure
This section contains details of all the Telepathy-in-KDE infrastructure components, and their statuses.
Telepathy Integration Daemon
This is a small light-weight daemon that monitors the Telepathy Account Manager and keeps ensures that all Accounts are recorded in Nepomuk as NCO:Contact instances of "myself" and that they each have a Telepathy Contacts Akonadi Resource instance.
It could possibly be made into a KDED module, but I'm not sure if this is a good idea. Grundleborg
Status
The bare bones are implemented, but the Nepomuk part is blocking on standardising the Ontologies for telepathy specific stuff and how to access the "myself" PIMO:Person through Nepomuk. The Akonadi part is blocking on getting the Telepathy Contacts Akonadi Resource below implemented.
Source Code
Source code can be found in KDE svn at:
svn://anonsvn.kde.org/home/kde/trunk/playground/network/telepathy-integration-daemon
Telepathy Contacts Akonadi Resource
This is an Akonadi Resource that synchronises the contacts of a Telepathy Account into Akonadi as vcards. The instances of this resource are managed by the telepathy-integration-daemon mentioned above.
Status
Partially implemented. Requires some Telepathy CM's to implement the org.freedesktop.Telepathy.Connection.Interface.ContactInfo.DRAFT interface to complete it, since we shouldn't try and support legacy CM's which don't support that interface.
Source Code
The code can be found in the KDE svn playground at the following URL:
svn://anonsvn.kde.org/home/kde/trunk/playground/network/telepathy-contacts-resource
Presence Dataengine and Plasmoid
Status
The dataengine is functional, allowing you to set the Requested Presence and Status Message, and view the Current Presence, Status Message, Avatar, Alias and name of all Telepathy Accounts.
The applet is working well on its first version, supporting to set up presence status and presence message. It still needs some polishing and love from designers.
Source Code
Applet in KDE svn:
svn://anonsvn.kde.org/home/kde/trunk/playground/base/plasma/applets/presence
Dataengine in KDE svn:
svn://anonsvn.kde.org/home/kde/trunk/playground/base/plasma/dataengines/presence
Account Management KCM
Ideas
- One single UI that any application can load for add/edit/delete Telepathy Accounts
- Creates a dynamic UI on-the-fly using Connection Manager parameters, but this should be used only when a specific UI plugin for that CM isn't installed.
- Create specialised UI plugins for the popular CM's (e.g. gabble) since dynamic UI will be pretty crap usability-wise.
Status
Some code is there in svn, but it's pretty much just experimental shell-files. So feel free to ignore existing code to implement this :) Grundleborg
Source Code
Source code is in KDE svn playground at:
svn://anonsvn.kde.org/home/kde/trunk/playground/network/telepathy-accounts-kcm/
KWallet Account Manager
This was originally intended to be an implementation of the Telepathy AccountManager which was integrated with KDE and KWallet for the account data storage. However, in light of the shared-secrets API being developed on freedesktop.org which will unify the KWallet and Gnome-Keyring API it would probably be a better use of resources to just get Mission Control ported to that instead.
In light of that, its probably best not to work on telepathy-accountmanager-kwallet or telepathy-qt4-accountmanager at the moment.
Telepathy Enabled Applications
Problems
- QtDBus doesn't have peer-to-peer DBus implemented properly - the classes are just non-functional stubs. This stops us from implementing D-tubes in KDE/Qt based Telepathy applications. Upstream bug is private in Qt Software's tracker and this is unlikely to get fixed by Qt Software, so if anyone feels like implementing it and then merging it upstream into Qt, that would be really fantastic.
- Telepathy-Mission-Control still requires you to use both the channel dispatcher part of it and the Account Manager. For KDE, we need to be able to use only the Channel Dispatcher from Mission-Control and have that talk over the standard Telepathy DBus interfaces to the KDE KWallet based Account Manager.(OR we need MC's AM to start using the shared-secrets API)
Trying out Telepathy
Prerequisites
- telepathy-mission-control 5
- telepathy-qt4
- telepathy-gabble, telepathy-butterfly, telepathy-haze (for jabber/msn/everything else support respectively)
KDE Stuff
All the KDE Telepathy infrastructure components are detailed above, and they may or may not be in working/compiling order. Any problems, ask in #kde-telepathy.
How to Get Involved
Come and talk to us in #kde-telepathy on irc.freenode.net. There is also a #telepathy channel for talking about Telepathy stuff that is not specific to KDE.
Frequently Asked Questions
What happened to Decibel?
Decibel development has completely stagnated and it no longer works with recent Telepathy components. It is not necessary to use Decibel to get Telepathy support in KDE - all the applications/components above do not require Decibel to compile or function.
