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
functions.inc.php | 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=http://1.bp.blogspot.com/-VwpGDdWB4Hk/ThlzC6MVHdI/AAAAAAAApww/Ejv7Oo09f1c/s320/old.png][img]http://1.bp.blogspot.com/-VwpGDdWB4Hk/ThlzC6MVHdI/AAAAAAAApww/Ejv7Oo09f1c/s320/old.png[/img][/url] [url=http://3.bp.blogspot.com/-t6OolCRM9hQ/ThlzB5HYUvI/AAAAAAAApws/SNrbBGzgWKI/s320/new.png][img]http://3.bp.blogspot.com/-t6OolCRM9hQ/ThlzB5HYUvI/AAAAAAAApws/SNrbBGzgWKI/s320/new.png[/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:

[center][url=http://1.bp.blogspot.com/-jsxFLYlVjw4/Thl2KVkEkLI/AAAAAAAApw0/_WtYbHWrJzs/s1600/ivr2.old.png][img=317×320]http://1.bp.blogspot.com/-jsxFLYlVjw4/Thl2KVkEkLI/AAAAAAAApw0/_WtYbHWrJzs/s1600/ivr2.old.png[/img][/url][/center]

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…

[center][url=http://2.bp.blogspot.com/-j5B7W1SC0CE/Thl205TNlwI/AAAAAAAApw4/aQWUkRsdXzA/s640/ivr2.new.png][img=317×320]http://2.bp.blogspot.com/-j5B7W1SC0CE/Thl205TNlwI/AAAAAAAApw4/aQWUkRsdXzA/s640/ivr2.new.png[/img][/url][/center]

Here are the changes we’ve made:
[list] [*]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
[url=http://3.bp.blogspot.com/-_VU8YzY4ZlE/Thl54e26CyI/AAAAAAAApw8/-S-wIMpPGyg/s1600/Screen+shot+2011-07-10+at+1.07.09+PM.png][img=320×80]http://3.bp.blogspot.com/-_VU8YzY4ZlE/Thl54e26CyI/AAAAAAAApw8/-S-wIMpPGyg/s1600/Screen+shot+2011-07-10+at+1.07.09+PM.png[/img][/url] [*]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.
[/list]

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=http://www.schmoozecom.com]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!

FaxPro Module

It has now been a little over a month since Tony Lewis announced the release of the new FreePBX Market Place. We have had an excellent response from the FreePBX community on the Professional Modules that have been released thus far. With that said it is apparent that the FaxPro module has stirred up the most interest. I wanted to put this blog out to answer the most common questions I have been getting and explain a little more about the module itself.

Here are some of the most frequently asked questions on FaxPro.

[b]Q. What is the FaxPro module?[/b] A. The Fax Pro module is a reliable, robust inbound/outbound faxing server. You simply enable faxing for any user on the system; then you point a phone number to specific fax user and let the FaxPro module answer the fax call.

[b]Q. Does the FaxPro module work with T.38?[/b] A. T.38 is handled by asterisk behind the scenes and has nothing to do with the FaxPro module. As long as your system is configured properly you can utilize both inbound and outbound t.38.

[b]Q. Can I use FaxPro with my Trixbox / Elastix / Brand X deployment?[/b] A. No. The FaxPro module can only be used with the FreePBX Distro.

[b]Q. I have a standard Asterisk server, can I use the FaxPro module?[/b] A. No. Again the FaxPro module can only be used with the FreePBX Distro.

[b]Q. How is outbound faxing handled?[/b] A. Outbound faxing is done through a web interface on your FreePBX Distro server. Simply enter the phone number you are faxing to and upload a PDF you would like to fax.

[b]Q. I have a custom asterisk deployment. Can you work with me to implement a faxing solution?[/b] A. We are always happy to discuss the scope of your project to determine if there is an opportunity for us to help. Please contact us.

[b]FaxPro Features[/b]
    [b]
  • Individual inbound Fax to Email account for unlimited users.
  • [/b]
    • This allows all of your users to have inbound faxes delivered directly to there inboxes. No need to stand by a fax machine to wait for an incoming fax.
    [b]
  • Outbound Faxes from PDF’s.
  • [/b]
    • Outbound faxing made easy! Instead of walking across the office to a fax machine simply select the PDF that you want to send. This makes sending faxes quick and easy!
    [b]
  • Simple web interface to manage inbound and outbound faxes.
  • [/b]
    • We have made viewing and managing faxes simple with a straight forward web interface.
    [b]
  • Have all inbound and outbound faxes stored on the server for easy viewing and archiving.
  • [/b]
    • Access your Faxes from anywhere! Great feature for reviewing a quote you sent last month, or checking your inbound faxes when away from your office computer.
    [b]
  • Create company wide fax coversheets that allow easy customization for each user.
  • [/b]
    • Allow easy customization of Cover Sheets for every user!

Here are some screenshots of the FaxPro Module.

[img]http://images.freepbxdistro.org/blog/faxoptions.JPG[/img] [img]http://images.freepbxdistro.org/blog/faxadd.JPG[/img] [img]http://images.freepbxdistro.org/blog/faxsend.JPG[/img]

To view pricing or purchase FaxPro please [url=http://www.freepbxdistro.org/signup.php?view=register]Register[/url] for a Free Account or [url=https://portal.freepbxdistro.org]Login[/url] to the FreePBX Market Place.