In part 1, we gave a general overview of Decibel. In this part, we cover everyone's favorite section - the definitions! Well, at least we hope that the definitions will be informative. We describe some benefits for developers and benefits for users. Read on for the details.

Decibel is a service that is concerned with real time communications; therefore, everything that connects one user with another user and makes it possible to get replies instantaneously is in the scope of Decibel. Decibel is based on the TelepathyD-Bus API's and uses the Tapioca implementation of these API's.

Real time communication refers to all computer-supported interactive means of communication. This includes text chats (AIM, MSN, IRC, Jabber, etc.), telephony (VoIP or CTI), video conferencing, and more. Other means of communication such as email and newsgroups are not instantaneous, and as such are beyond the scope of Decibel.

Computer Telephone Integration (CTI)

Computer Telephone Integration deals with a phone connecting to and being controlled by a computer. For example, the computer could be used to dial a phone number on the phone using the computer's address book. Also, the computer could display the contact information of an incoming call (by looking up the incoming phone number from the computer's contact data).

Telepathy (the project)

Telepathy is a project being hosted at freedesktop.org. Its focus is to create a set of API's that talk to Real Time Communication services. These API's are based on D-Bus and are pretty low level.

D-Bus

D-Bus is also a freedesktop.org project, heavily influenced by KDE's DCOP, and used as a simple means of communications between applications. The primary purposes of D-Bus are for communication between desktop applications (for better perceived integration), and communication between desktop applications and the operating system (including running system daemons and processes).

Voice over Internet Protocol (VoIP)

VoIP, or Voice over Internet Protocol, is the delivery of voice conversation over an IP-based network. This can be over a local network, using VoIP technologies for intra-office communications, or over the internet for inter-personal communications. VoIP service may make use of an analog POTS (Plain Old Telephone Service) line for access to the traditional telephone system, or simply a connection between two VoIP applications.

Tapioca (the project)

Tapioca is a project that is working towards implementing the Telepathy specification. Those working on the Tapioca project provide language bindings that are not available from the Telepathy developers. They also attempt to smooth over the 'rough edges' of Telepathy somewhat.

Houston

Houston is a part of Decibel. It is a policy daemon that tracks the user's online status for all communication channels they use, persistently stores settings, reacts to connections initiated from external sources, and more.

One potential benefit for developers is reported by Tobias: "Application developers will find with Decibel a centralized place to store real time communication settings like account data and online states, a means to establish outgoing connections using these settings and to react to incoming connection attempts. This makes it possible to do things like 'go offline with all my accounts' or 'notify me on all incoming text chats so that I can log them'".

Tobias continues, "Decibel will make it easy for a developer to do things like 'start a text chat with the person with these contact details.' Currently, an application developer will need to find and access the user's account data (which can be scattered over several applications), find a protocol the user and the requested contact have accounts for, bring that account online (using one of several libraries) and then initiate a chat session. Decibel tries to hide all these details from an application developer if he does not want to care".

Developers with experience in real time communications and those interested in working on Decibel itself are the most likely to be interested in developing for Decibel, although any developer would likely receive some benefit. Keep in mind though that Decibel will not automatically make someone a good programmer. It will just enable good programmers to be more efficient. Having said that, it will enable your application to better integrate with other applications, thus increasing the desirability of the application.

Interested developers can help in several ways. The build system used for Decibel has some problems that need to be resolved. Also, the API's need to be tested. This includes things such as connecting the Houston daemon to Akonadi and creating a plugin mechanism for Houston so that it can become desktop-neutral. Other issues to be worked on include writing protocol implementations following the Telepathy specification and coming up with graphical interfaces for the demonstrations of Decibel's capabilities. The Decibel website could also use an overhaul.

To find out more about the project, developers can visit the project website and Tobias' blog. Chatters can visit the IRC channel #decibel at irc.freenode.net. Please also visit NLnet, the organization sponsoring the development of Decibel.

Since Decibel is a service rather than an application, users are not likely to see direct benefits from Decibel. Rather, the benefits they see will be indirect ones. Also, keep in mind that while these benefits are possible, it is still up to each application to decide what features will or will not be used.

There are two main factors to keep in mind in dealing with the benefits of Decibel. First, since Decibel deals with Real Time Communications, the benefits would be realized in this arena. Second, since there is currently no comparable system with which to compare Decibel, all examples of benefits will be what Decibel 'could do' as opposed to what Decibel 'does do'.

However, these two factors do not mean that the benefits users see must be small. On the contrary, the integration Decibel provides make it possible for users to see some exciting benefits in at least two major areas.

First, applications normally associated with real time communications can add more features. For instance, an email program could use Decibel to update the online status of contacts in its address book and mail views.

Second, applications not normally associated with real time communications could use Decibel to implement communication features. An office suite could use Decibel to embed chat or even video conferencing with the author of a document or support channels. Since Decibel will make it easy to set up communication channels between users, it might even jump start the development of collaboration features. For example, a graphics program could use Decibel to set up a communication channel to another instance of itself running for another user somewhere on the internet. This channel could then be used for collaborative editing of a graphics document.

Decibel just reached the version 0.2.0 milestone which is a mostly feature-complete proof-of-concept implementation of the framework. Upcoming versions of Decibel will focus on integration into the KDE environment as well as improving the existing functionality and demo applications. Decibel will need some more releases before it can be used widely. Obviously, much work remains to be done. However, we hope you have a better understanding of the future possibilities with Decibel.

Digg has millions of visitors each day, if we can KDE on its front page that's really a great exposure for KDE. People that don't even know about KDE might learn about it. What's wrong with that? I don't get it.

The odds of someone who frequents a tech site such as Digg not knowing about KDE are small, in my opinion. Also, have you not seen the huge backlash against Ubuntu on that site due to the fact that there are so many articles about it? There is such a thing as over-exposure, you know :)

so the d-bus name differs from the name used everywhere else? would it make sense to harmonize the two so it's a bit more obvious and follows the 'principle of least suprise'? this would probably need to be done before lots of applications start using it (and therefore relying on 'houston'), of course....

You are right, it does make sense to do get rid of the name completely and I am contemplating to rename the service from de.basyskom.Decibel.Houston to de.basyskom.Decibel. I would like to wait a bit longer before I go through with this change (a release or two), just to make sure nothing else will pop up that I need to stick into de.basyskom.Decibel.

The Decibel client library contains a couple of string constants with all the important service names and object pathes, so renaming the daemon is not a big deal (at least while binary compatibility is not an issue).

It might be nice to put the Decibel service into org.kde at that point. I used de.basyskom mostly because I did not want to pollute the org.kde namespace without getting permission first.

The idea is to ask the Decibel daemon for a channel an ID of a contact stored e.g. in Akonadi. Decibel will then either return that channel to the calling application to do with it as it pleases (useful for those developers who want to write their own chat software) or it can invoke a channel handler for it. The channel handler is a Decibel-aware application (e.g. based on kopete) configured by the user for a combination of protocol, type of data transmission and contact.

So a office suite could e.g. look up the author of a document in its metadata, check for the name found there in Akonadi and then ask Decibel to connect to it, using whatever the user had configured as a GUI to handle the actual communication. One D-Bus call is all that takes:-)

In case any one was wondering why a new telephony system would be designed and then called "plain old telephony system" it is because that term is an American tongue and cheek variation of the proper meaning "Post Office Telephone System". I believe the system was first designed and implemented by the the British post office and later adopted around the world.

Just a small correction, but for some reason I felt compelled to tell.

Great project.
I'm impressed with KDE.
I'm starting a project to finance some GPL projects like KDE. If everyting well I will post a new here, a need the support of a teleco enterprise, this week I will have got more information.