Contest Results & What Makes freePBX 'tick'

I’ll start by thanking all the participants for the time they took to enter our contest and provide such great feedback! Choosing a winner was a hard choice – so I avoided the task and delegated it to two members of the team who independently chose a set of top winners . To my delight, my team both chose the same winners. Congratulations to both tbooth and graham!

I want to address many of the great ideas that were listed but there are too many to comment on in one posting, so I will sum up my thoughts and then begin a regular series to discuss these and other relevant topics.

Refreshingly, we found very few surprises in the feedback. Requests like per-extension ringtimes are already implemented in the svn trunk, and menu redesign has been ongoing since version 2.0. Many of the other changes mentioned: timeconditons, phone/mass provisioning and deployment, system recordings, inter-office connections, multi-tenant/dial-contexts, improved directory flexibility, online core upgrade, and more are all in some stage of planning or ongoing development.

I’ll start today’s article addressing some common questions that are all closely related:

  • Why is it hard to find the Asterisk configuration file changes when I make a change in the GUI?
  • Why do you have to use so many macros vs. core Asterisk functions?
  • Why does freePBX have to depend on such ‘heavy weight’ components like Apache and MySQL?

I believe that these questions come up because of a common misconception about freePBX. FreePBX is not an “Asterisk Configuration File GUI.” FreePBX is an entire application layer that sits above Asterisk and provides an abstraction to separate the underlying Asterisk engine from the logical user interface that is exposed in the GUI. There are complex objects stored in the Astdb database that work in conjunction with special AGI scripts and sophisticated dialplans. Collectively, these result in the rich set of functionality and ease of use that has propelled freePBX into the explosive hit it has become in today’s ‘Asterisk’ world. My own view is we are guilty in too many places of our GUI directly mapping to Asterisk functionality and these will be cleaned up over time.

Because of its architecture, changes you make in the GUI might result in no changes to the configuration files because they are being applied to a database object that is used by the freePBX application. We will continue to expose the necessary hooks in our auto-generated configuration files to allow for customizations required for your special needs. In order to fully take advantage though, it requires a level of expertise in studying and understanding how the underlying application is implemented – not changing the GUI to better conform with the Asterisk configuration files. Also – because of its feature rich design goal, freePBX does depend on important and ‘heavy’ applications like Apache, SQL, PHP and more. It is with these tools that freePBX can deliver such a powerful and wildly successful application that has been adopted by so many users and PBX distros.

I hope this topic has been of value, please post your comments or questions. I’ll be happy to address them. Next week, I’ll cover ... hmm, I’m not sure. Why don’t you post your comments and make some suggestions of what you want to hear.

Until next week! -philippe