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 Telepathy D-Bus API's and uses the Tapioca implementation of these API's.
A few Decibel-related definitions:
Real Time Communication (RTC)
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 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 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.