FreePBX 2.10 sneak peak: IVR’s



As in any pbx, IVR’s have always been an integral component of FreePBX. For the better and for the extremely annoying, companies have been filtering inbound calls with IVR’s for just about forever. While we can’t change people’s mentality (on both sides of the call) we CAN attempt to provide the best posible experience for those fortunate enough to be using FreePBX.

In FreePBX 2.10, we have rebuilt and rewritten almost every single line of code in IVR’s. In addition, there are many framework changes in place to provide a more comfortable experience over all. Here are some quick stats from the svn log so far:

[root@server admin]# svn diff -r12198:head|diffstat
assets/js/jquery.hotkeys.js | 99 +
assets/js/script.legacy.js | 20
bootstrap.php | 45
common/mainstyle.css | 5 | 140 +-
helpers/Email.php | 2062 ++++++++++++++++++++++++++++++
helpers/form_helper.php | 1056 +++++++++++++++
helpers/freepbx_helpers.php | 7
i18n/amp.pot | 68
libraries/ampuser.class.php | 78 -
libraries/bootstrap-utility.functions.php | 76 -
libraries/components.class.php | 62
libraries/featurecodes.class.php | 84 -
libraries/featurecodes.functions.php | 84 +
libraries/legacy.functions.php | 60
libraries/utility.functions.php | 162 ++
libraries/view.functions.php | 1
17 files changed, 3793 insertions(+), 316 deletions(-)

While those aren’t all IVR related, all these changes are designed to provide you with better FreePBX experience. Pretty nice! Thats for the stats, now for the IVR changes. The first thing you will notice is a cleaner welcome screen. We’ve removed the clutter when you first hit the IVR page, most people didn’t read it or know what to do with out it, anyway:

[url=][img][/img][/url] [url=][img][/img][/url]

Just one simple button and your in! On the IVR edit page, there have always been some quirks that bothered me. Here is the old page:


Why did every IVR start off with the name “Unnamed”. I mean, isnt that like an an oxymoron?! What is the i-dest/t-dest thingy? When are the “Messages” played? And did you ever try to add entires to an IVR and see the WHOLE PAGE REFRESH?! And wait until you see the code that generated all this…


Here are the changes we’ve made:
[*]We’ve streamlined the user experience to be more inline with other FreePBX modules (take Directory for example, notice it has a similar “feel”).
[*]Unlike in the old module your IVR doesn’t get saved even before you make you create it (hence IVR’s were always named). This also allows the gui to load faster.
[*]We’ve added a description fields, where you can save an explanation and/or notes about this IVR.
[*]We’ve added finer control over invalid and timeout destinations. Now you can set a recording to be played when the i or t extensions are hit (i.e. when the user presses something invalid or if the the user enters nothing) before the IVR loops back to the beginning, in addition to the recording to be played right before transferring the call to the actual destination. Or you can disable the i or t destinations completely.
[*]You can add entires with a simple click – no page refresh! Add as many as you need, and delete them intuitively.
[*]We’ve moved part of the Direct Dial setting out of the IVR module and in to the Directory module (where it belongs)
[*]We now hook in to Queues and delete the IVR Break Out Menu if you delete the IVR
[*]When looking at the IVR page, you can collapse any individual section to allow you to focus on another with less clutter in the way
[*]We’ve included new sound files that more accurately reflect the message you want to present to your users. Obviously, you can override them with your own should you chose to do so.
[*]We have plenty of under the hood changes, not the least of which include using the fancy new HTML5 Webforms validation instead of the old clunky javascript errors
[*]An extremely clean code base using a (poor-mans version of) MVC design to make bugfixes and future additions as paneless as posible.
[*]A leaner dialplan for quicker call execution when posible.
[*]HOOKS!!! There are already some interesting 3rd party modules in the works that can easily hook in to IVR to bring some very nice and demanded additions. You can create your own modules as well and have them hook in to IVR to extend the module.

So, where is the new module? Its in the 2.10 branch, currently in development. While we don’t recommend it yet for production, feel free to download it to a test/development server and take it for a spin. Otherwise, just keep tight and wait for the official release of 2.10 – the new module will be included by default and your old IVRs will all be migrated over automatically.

On a final note, I wanted to point out this work was generously sponsored by my wonderful company and driving force behind FreePBX: [url=]Schmooze Com. Inc.[/url]. From a turnkey premise PBX to a carrier-grade white label hosted solution, Schmooze is the leading innovator in the market. Visit or call today. Thank you!

Share this Blogpost

Start the Discussion

Sign up for our Newsletter

Scroll to Top