About DeStar, a web frontend for the Asterisk open source PBX
De Grupo GNU/Linux de la Universidad del Cauca
January 17, 2.005
Translated By Alejandro Ríos Peña.
DeStar is a very recent Free/Open Source software project which objective is to provide the community with a robust, yet simple, web application to configure a digital PBX with value added services, based on Asterisk.
Asterisk is nowadays recognized as a big-scale Open Source Project that creates a software based PBX aimed to be extremely flexible and perfect to be deployed on production enviroments of any kind. Asterisk is a versatile software product that can be taken to many enterprise voice communications scenarios using many kinds of network tecnologies, handling a big amount of codification algoritms, and with different possible terminals. Because of this complexity and power, its configuration is made on a low-level basis, and can be very tricky. This "problem" was the reason why DeStar was born, to make Asterisk configuration an easier task, where the user has to concentrate only on punctual configuration elements, as a SIP troncal, an analog extension, a conference room, etc. and not on a configuration file like /etc/asterisk/*.conf . In short words, DeStar is a high level application that will let anyone configure an Asterisk PBX.
As usual, DeStar is not the only application of its kind on the Free Software world. Because of Asterisk's great success, there are many iniciatives of projects that have born to complement or make easier its performance. DeStar is my favorite iniciative, because of its versatile architecture and the facility it brings to add new features.
In general terms, DeStar is divided in two main sections, called "backend" and "frontend". The first one is the most important and its functional behavior is based on little pieces of code called "configlets", this components alllow the configuration of individual «objects» from the PBX.
The "backend" is an independent section of the system, it doesn't need the "frontend" to work. This section takes care of the creation of the Asterisk configuration files, using an intermediate file where all the configuration objects are created (mainly trough the "frontend"). The "configlets" are part of the "backend" and are cathegorized under a flexible and organized class hierarchy.
The "backend" also handles information related to the CDR (Call Detail Recording) module of Asterisk and the Asterisk Manager API.
The "frontend" handles the user interface, which is based on a web application. It also handles the URL namespaces, html code, and cascade style sheets for presentation.
The programming language of DeStar is python, a language with many new followers every day and known for being pretty simple and complete. DeStar is based on Quixote, a "framework" that makes trivial the development of web applications centered on programming logic and not on visual presentation and templates.
Quixote allows the use of PTL (Python Template Language) to generate html pages. This language is similar to python and is usefull to take all the tecniques and capabilities of python to web application development. Quixote is a coherent plattform that does not "guess the behavior" and is focused on web application logic and not on database handling, graphics, or any other functionality implemented by other libraries. It can be said that DeStar's flexibility is based mainly on all of Quixote's possibilities.
A similar, but more known than DeStar Free/Open Source Software application is AMPortal. AMP is a complete program with many features, incluiding an operator control panel and a CDR software. AMP also has a considerable growing community working on its development, but it is not so flexible and versatile, and its code, written on PHP, is deficiently organized.
DeStar is a project enough flexible and robust to grow and consolidate as a killer web frontend for the Asterisk open source PBX. It will probably be used by many people at the end of this year.
The author is responsible for the material published in this column.
See more about our Articles and Columns (in spanish).
