A Bright Future for FreePBX

Over 4 years ago, FreePBX, then known as AMP, started a course to disrupt the traditional PBX market by changing the game on the existing black box telephone industry. In this short time the Open Source process has been able to surpass what has taken the industry decades to accomplish. With millions of downloads, an installed base counted in the hundreds of thousands, and almost every successful Open Source PBX distribution basing itself off of FreePBX, our project has clearly proven itself as a leader in this telephony revolution!

I am very happy with the great community we have fostered and without whom we could never have come this far. This community has stuck with us and continued to grow stronger despite the challenges our project has seen such as frivolous forks of our work for none of the good reasons that sometimes require such actions.

I have remained focused on driving stability into our project while expanding its ever growing feature set and encouraging the growth of the development community and feel we have been very successful in these endeavors. I always strive to lead this project with the community’s best interest in mind and today’s announcement is precisely for that.

Part of assuring the success of FreePBX is to make sure that we continue to have strong leadership, community participation and a thriving eco-system of users and partners. I would like to announce a new partnership that will help the project tremendously. I have joined forces with Bandwidth.com as their Open Source Community Director, where we will be devoting significant resources and effort to expand the scope of FreePBX while protecting its charter to make sure it remains open and strong.

There are a number of reasons why I chose Bandwidth.com, which I trust you will see play out in the coming weeks, months and years. Bandwidth.com is a high quality VoIP and Data Service Provider interested in assuring the FreePBX project continues its success. They sell VoIP and Data services, not PBX software – they want that to be free. Bandwidth.com has done some exciting pioneering work with FreeSWITCH and we are very excited to see how that work can live along side FreePBX as it has the potential to bring together some very vibrant communities to all of our benefit. We are currently digging through the various Open Source licensing options so that we can release these contributions to the community.

Bandwidth.com has already made an important move to help protect our project several months ago when the FreePBX trademark (which I never owned or controlled) was being shopped around to parties that did not have this project’s best interest in mind. Bandwidth.com preemptively purchased the trademark, with my knowledge, in order to assure FreePBX was not jeopardized.

This is a culmination of months of discussions and it is one I have not taken alone. Several key developers and contributors to the FreePBX project have acted as advisers during this process to make sure I am taking us down the right course. I feel very energized that this is the beginning of something great. As we continue the project’s success we will strive to grow the participation of the eco-system that surrounds FreePBX which includes other Open Source projects and industrial partners who are all key to our continued growth!

Please join me in welcoming Bandwidth.com and keep an eye on what’s to come!

– On Behalf of the FreePBX Team!


One Day of Lost Data on Trac

For those of you who keep a close eye on the development site you will notice that some data has just been deleted. I unfortunately corrupted the database in error trying to remove some profanities in some ticket comments. I restored it to the last snapshot that was taken which is about 3/4 of a day old. There should be nothing major lost.

This means that any new tickets or ticket updates that were submitted will be gone, as well as any wiki changes that may have been placed on the development site today. There were 3 new tickets filed from two users who have both been contacted and should be resubmitting those tickets shortly. Any comments on existing tickets will have been lost.

My apologies for any inconveniences that this may have caused, please re-enter any important ticket information that you may find missing. (Luckily, it appeared to have been a fairly quiet day). The corruption will not have effected anything on the main website.


Restricting outbound calls in FreePBX (blacklist)

Perhaps one of the most requested features in FreePBX is the ability to configure calling permissions. While this is a complex and costly request from a development point of view, there are some simple techniques which can be used to provide some level of outbound call control. It is said that well written software can be used in a way totally different to what its author intended. Some of the current FreePBX modules can be ‘exploited’ to provide just such functionality. You may also want to have a look at the custom contexts module, however that is (still) considered a ‘contributed’ module, and isn’t supported by FreePBX.

Typically, there are two types of outbound call control that you will want to implement:

  1. Call all numbers except these (blacklist)
  2. Block all number except these (whitelist)

For both blacklists and white lists, there are (at least) two methods to block/allow calls. For this article, we will focus on blacklisting numbers. Merriam-Webster defines a blacklist as "a list … who are disapproved of". While only one method described here is actually a "list", both serve he same purpose: to restrict outbound calls. Which one you should use depends on your needs – and the length of our list.

If you only need to block one number you could set up a Misc Application with a destination of Hangup. To do this, click on Misc Applications from the module tool bar on the left hand side of the FreePBX window (if you don’t see the module, you will need to install it by clicking Module Admin -> Check for updates online -> Misc Application -> Download and Install -> Process (top or bottom of the page) ). Once the module page opens, you have the option to enter a new Misc Application. Enter a description in the Description box and the number that you wish to block in the Feature Code box. Now select a Hangup (or Busy) from the Terminate Call destinations option.Hit submit, click the orange bar, and reload FreePBX. Try to call the blocked number – your phone should disconnect the call (or play a busy signal).

You can take this a step further by sending the call to an announcement explaining that (and why) the call is barred, and then going to Hangup.
While this method is good if you want to block one specific mother (your wife/girlfriend from calling her mother?) what do you do if you want to block a whole list of numbers? (Premium rate numbers come to mind here). This can be accomplished quite simply as well (seems everything is simple when using FreePBX!).
First click on Trunks, and click Add Custom Trunk. In the dialstring add BARRED and click Submit. Next, click on outbound routes. Use standard dial rules to create dial rules for all your blocked numbers – list them one at a time or use dial patterns. You should probably call this Outbound Route BARRED (enter it in the Route name box). In the Trunk Sequence, select BARRED. Now click submit.

Here comes an important step: using the arrows under the route BARRED, move the route to the top of the list. Now click submit, click the orange bar, and reload FreePBX. Your calls should now be blocked. Once again, should you need to play a specific message or explanation, you can get fancy by sending the custom trunk to a specific destination or even a custom context.

Check back here soon for the next installment of this topic: Restricting outbound calls in FreePBX (whitelist)

update: Philippe has pointed out that best practice would be to always have an EMERGENCY route, and keep that as your first route. You would then place your BARRED route in second place. Click here to find out how you can hear more best practices.
Moshe Brevda, FreePBX Development Team
lazytt – FreePBX forums
hi365 – IRC

Found this tip useful? Don’t forget to donate by click the donate button!