Decibel: Unified Communication Interface
Decibel is implemented in a desktop wide server process, offering services via DBus. This daemon process is desktop agnostic and uses desktop dependent components (e.g. GUIs) to integrate into the users preferred desktop environment. Components are configured to be started in response to communication events. This saves resources and allows for users work with those components that work best for them.
Decibel uses telepathy compatible protocol implementations to connect to realtime communication servers. By using this open source standard, Decibel supports a wide range of communication protocols.
Decibel software stack
The Decibel software stack
The Decibel daemon offers the following services:
These services dramatically reduce the complexity and effort required to integrate realtime communication into applications, enableing even "normal" desktop applications to offer realtime communication based services to their users. We hope that this ease of use will make application developers think about new uses of these communication methods, enableing users to interact with each other within the application they are currently working in.
Integration into Desktop environments
The Decibel daemon stores communication account data for the user and must have access to the user's PIM database to look up contact data. These integration points are desktop specific and currently implemented as compile time configuration options. All other integration into the desktop environment is done by components which are selected and started by the Decibel daemon as required using DBus activation.
The Decibel sources contain an example implementation of these integration points, using an INI-style text file for data storage. Integration into the KDE and Gnome desktop and other targets like embedded plattforms, Microsoft Windows or Mac OS X are possible.
Components are used to decouple the Decibel daemon from the desktop environment used. They are started to handle a single communication channel between users. Which component is started depends on the configuration of the Decibel daemon: Based on communication type (text chat, audio/video stream, etc.), protocol used or even contact trying to communicate users may configure their preferred component to handle any incoming or outgoing communication request.
This concept offers a great flexibility: User can eg. forward audio streams to a answerphone, send a note in reply to any communication request from one special contact and have all other text-based communication attempts pop up a chat window.
These component preferences are stored in profiles. Decibel makes it easy to switch between these profiles, allowing external applications to do that. This makes it possible to have eg. a cronjob switch between settings for "office hours" and "out of office hours".