FreePBX 2.10 Beta – Lots of Credit to the team!

There’s lots of exciting stuff and for those of you who follow the activity going on in the trac timeline then you should be well aware of how busy things have been and how much activity has been going on by the team over at Inc., who have contributed the bulk of all the super great work to this next and very exciting 2.10 release! On the Schmooze side mbrevda has been going nuts with all sorts of great contributions though they are not the only ones as mickecarlsson has been keeping quite busy himself and tm1000 (Andy) continues to plug forward on his continuous effort to keep the endpoint manager module up to date and moving forward!

For starters, a hats off to all of these guys who have been carrying so much of the load these last few months. With all that said, the [url=/freepbx-distro]FreePBX Distro[/url] work has been going strong as well which again is a major contribution by Schmoozecom and driven by tonyclewis with lots and lots of background help from GameGamer43 (Bryan) who all to often sits silently in the background.

Ok … enough of the credits, I just want to make sure that all of you keep in mind that this project is successful because it is very much a community effort whose direction and results are a direct product of those who get involved and help make it happen!

So what has been going on? Well let me warn you that when you load the 2.10 beta be prepared for a lot of great things and some really big changes on the “look and feel” front. Let me also precede this by saying WE WANT TO HEAR YOUR FEEDBACK! This is not a “done deal” but we need to hear from you now to affect change, not 3 months after final release! (and if you do scream then, we are going to point you right back to this blog post!)

Upon loading the beta you are going to find that the whole GUI has gone though a MAJOR facelift. Kudos to some awesome work by mbrevda whose efforts started back in 2.9 to make this a reality and here we are today with a MUCH NEEDED modernization of the interface. With that said we are well aware that this sort of change may not suite everyone and further more, with a large community like we have, there is probably NO single solution that will make everyone happy. So let me talk you through this a little bit, here is a screen shot to get a taste:

First you will notice that the left navigation bar is gone and in its place is a series of top navigations with a handful of categories that now store all the GUI displays. No more tool vs. setup tab and those clunky top menu tabs as we had before! At this point I know that some of you are probably THRILLED for the refreshing new look and feel of the GUI while others of you DO NOT LIKE IT and want something closer to what we already had. As such, I want to make it VERY CLEAR that this is NOT A DONE DEAL! The re-architecting that mbrevda has done has lent itself to allow for different GUI layouts and although we have started with the proposed layout, we are not adverse to providing more than one layout if a significant portion of the community tells us it is really needed. Please keep in mind that we are looking for REAL feedback! Let’s keep the drama out of it as we have just stated this is not a done deal, and instead have some real community discussion to determine if the resources are better spent on more new and exciting phone features vs. developing and supporting a second layout more similar to the “left navigation bar” format in 2.9 and earlier releases!

In the meantime, we realize that this new layout most certainly has rough edges and we are very much looking for feedback to further improve it whether color shading suggestions or more fundamental. Another place we expect we will NEVER satisfy everyone is the menu layout on top. That includes both the names that we have currently chosen, and what modules go into which of those buckets. Trust me when I say it’s not a done deal because within the development team we are very much at odds with some of the tab names and what should go where. So … with that said, please speak up but I would request that you try to do it in a format that we can digest. Have some great ideas? – propose a full solution. Want to have a discussion? – kick off a thread with your ideas on the forums. There is time to change this so let’s make sure your input is heard!

So … despite the “eye candy” what else has happened on this release. Some of the major changes include a completely rewritten, template driven and extremely flexible backup module that dedicated many months of mbrevda’s time to create. Trying to describe the level of flexibility you have with this would be a pointless effort, go load up 2.10 and have a look. For those of you who love to add your own stuff and install various projects from around the web, you will be thrilled that you can now tell FreePBX about those so they not only get backed up but also restored with this module!

As if the Backup module was not enough, mbrevda largely rewrote the IVR module which was in bad need of some serious improvements despite its outwards appearance that made it look like it was in decent shape. The interaction and understanding of it should also be more straight forward. Yet another major component that was falling apart from the inside out was the CDR reporting engine that originally came from another project and was barely maintainable depending on outdated and no longer maintained libraries that we packaged with FreePBX. So thanks to the wonderful world of open source and the great efforts on mickcarlsson’s part for digging up a new engine that we were able to turn into a full fledge module and provide much of the needed CDR reporting functionality that is important to most users! Last to mention is the call recording capabilities of FreePBX which have been plagued by ambiguity and lack of ability to control what would be recorded and what would not. We’ve re-architected the controls that determine what to record and what not at both the extension level as well as higher levels such as ring groups, queues, conferences, etc. We’ve also replaced the builti-in automon capability (on-demand recording) provided by Asterisk with our own implementation of on-demand call recording so that we can make more attempts at controlling and honoring settings when a call gets recorded and not. So all an all, we should be well on our way to a more deterministic call recording capability!

What next? Well first of all I guarantee you that there will be bugs to flush out and feedback to listen to so that we can take this beta and really clean it up and drive it to a real release! We NEED YOUR help to start testing and providing feedback whether it be isolating the bugs or helping with the guidance on the changes that we asked you about above! The easiest way to get started will be to pull beta version with the complete FreePBX Distro that will install everything for you! Details are on this forum post.

However, for those of you wanting to get your hands dirtier or using other Distro’s out there, you can load up the tarball and upgrade as you always have. Which ever way you do it, come help us shape this release to something that is a joint effort between your feedback and those of us and you who can contribute coding, patches, testing, etc. to drive this to completion!

Philippe – On behalf of the FreePBX and Team!

Appointment Reminder Module

We are currently looking for 2-3 beta testers to try out the new Appointment Reminder module for the FreePBX Distro. This is a professional module and is only availiable for the FreePBX Distro. Testers will recieve a free beta copy of the module.

What is it?
The Appointment Reminder module for the FreePBX Distro is a unique way to automate appointment confirmations, cancellations and reschedules. By simply specifing numbers and names to be called the PBX will automatically call at specified times and allow recipients to confirm / cancel / reschedule appointments. The module gives you the flexibility to control all details of the calls from rate limiting to retry attempts and days ahead to notify of an appointment. You have the ability to simply load a CSV list of numbers to call, or even add numbers and names manually. On the fly modifications can be made to any Appointment Reminder list to allow for total flexibility.

Let’s take a look at an example
You work for a Doctors Office. Currently you have a full time staff member who spends half of every work day on the phone calling patients to remind them of there upcoming apppointments. You realize that this is inefficient and would like to automate the process. To achieve your automation goal we will utilize the Appointment Reminder module in FreePBX Distro. We will setup our Appointment Reminder to call patients two days in advance of there scheduled appointment and get a confirmation from them. If the reminder is unable to reach the patient it will call again to attempt to remind them. We will also allow the recipient to cancel the appointment or reschedule it directly from the Appointment Reminder call.

Here is the setup
First we will launch the Appointment Reminder module. This module can be found under the Modules / System Administration section. Once you have opened the Appointment Reminder module you will see a screen similar to the following image. Note: Each item is an Appointment Reminder that has already been setup. The first time you launch this module your’s will be blank.


The first item that we need to set is the Maximum Calls. This is the total number of concurrent calls that will go out at once. To avoid overloading your call capacity it is suggested to set this to a lower number. In our example we will be setting it to ONE concurrent call.

Next we want to create our new Appointment Reminder. From the right hand navigation menu select the Add A Reminder option.


You will now be taken to the setup screen. This will allow you to specify the options for your Appointment Reminder. For our example here are the settings that we have used.


  • Name – This is the unique name for our Appointment Reminder. We have entered Dr Office Demo.
  • Enabled – We have set this to YES. That means that the Appointment Reminder will run as scheduled. Note: You can easily disable an Appointment Reminder by simply toggling this option to NO.
  • Daily Start Time – Here we set the Time of day that we want the Appointment Reminder to start. We have set our’s to 9am.
  • Daily End Time – This is the time of day we want our Appointment Reminder to stop. We have set this examples to 4pm.
  • Max Advance Notice – This is the field that we will use to select how many days ahead of the scheduled appointment we would like to place a reminder call. We have selected 2 days.
  • Retry Count – Here we can tell the Appointment Reminder how many times to retry a recipient if it is unable to reach them. In our example we have set this retry count to two.
  • Retry Delay – We can use this field to specify how long between a failed attempt to retry and reach that recipient. We have set our retry delay to 3 hours. Note that if the 3 hour retry land’s after the appointment reminders daily endtime the reminder will be attempted again the following day.
  • TTS Engine – This is the text to speech engine used. Unless you are an advanced use this should be set to the default of flite.
  • Fixed Caller ID – This is the phone number that the call should appear to come from. For our example we are using the Doctor’s Office main number for easy identification by the recipients.
  • Caller ID Name – This is the name that should be used for internal reminders.
  • Outbound CID Mode – We can set this to Fixed to use what we have specified or default to use the system default.

Now we need to setup our Call Flow Options. Here are the settings that we used for our example.


  • Initial Greeting – This is the first message played to the recipient. You can record a custom greeting if you would like or use the default however be sure to include a message similar to the following: “This is an Appointment Reminder….”. We have elected to use the default.
  • Say Name – Select whether you would like the recipients name to be said. If selected it will use Text To Speech to read the name of the person associated with the reminder. We have set this to yes.
  • Date Announcement – We have elected to use the default announcement which says: “You have an appointment scheduled on…”.
  • Say Appointment Date – This is selected to enable or disable the Date announcement from the previous step. We have selected Yes.
  • Instructions – You can use default or custom instructions for the recipient. We have elected the default which say: “To confirm this appointment press ONE, to cancel press TWO, to request you appointment be rescheduled press THREE”. You can record a custom message to be played here, however it must follow the outline listed above.
  • Customer Service Extension – This is the destination a recipient is sent to if they select ZERO for customer service. We have routed our demo to our operators extension.
  • Rechedule Behavior – This is what happens if the recipient selects THREE to have there appointment rescheduled. We can elect to either have the call transfered or simply log the action for a call back. We have selected Transfer.
  • Rechedule Extension – This is only used if the Reschedule Behavior in the previous step is set to Transfer. We have our example being re-routed to a queue that contains our scheduling staff.

Daily Report is an automated report sent everyday with the results of your Appointment Reminder. This will show you what appointments have been a success and which have been rescheduled etc.

  • Daily Report Completion Emails – These are the email addresses that will be sent the daily report. In our example we have specified the office manager.
  • Email From – This is the email address that the report will appear to come from.
  • Attach As – You can select either a CSV or Plain Text file.

We will now click Save to save our new Appointment Reminder.

Manage Recipients
We are now automatically taken to the recipients section. This is where we will specify the recipients of the Appointment Reminder. The first thing you will notice at the top is the bulk upload tool. This is a great way to upload multiple recipients quickly.

First we we need to create our CSV file. We use excel or some other editor to create our file in this format.


Once saved as a CSV we will select Choose File and then select our newly created CSV. Once it is selected we can choose our action which will be the default of appending to an existing list, since our list is blank this new data will be all that is there.


We can now select Upload. If we created our CSV properly we will now see the following data populate under the Recipient List section.


We have properly formated our CSV and we see that all the names, numbers and appointment data is correct! However we now remember that we forgot to add one recipient to our list. We can easily add that recipient in the NEW field.


Simply click save after inputting the additional recipient’s information.


We can see that the recipient has been added to our list!

The Appointment Reminder module is the latest new Professional module that will be availiable for the FreePBX Distro. I welcome your feedback in the comments section.