=== FreePBX 2. 9 ===
The 2.9 Feature Set is under evaluation and as tickets are reviewed from the current Cut Line they will be moved into this milestone. Not all tickets listed under the milestone are guaranteed to make it into this release.
=== Supported Asterisk Version ===
Our current statistics are showing less than 5% of the installed base of 2.5 - 2.8 systems are using Asterisk 1.2. As a result, this release will not officially support Asterisk 1.2. We will not take out support but we will consider the features set of 1.4+ when making decisions for changes and additions.
- Asterisk 1.2 not supported
- Asterisk 1.4 Supported and the mainstream release (based on installed base statistics)
- Asterisk 1.6.2 Supported (see notes on 1.6.0 and 1.6.1)
- Asterisk 1.8 Supported
We also support 1.6.0 and 1.6.1, however, FreePBX may make certain assumptions about the existence of functionality in presenting various configuration options and sometimes in the generation of dialplan. When doing such, the support may assume 1.6.2 if running off of the "1.6" branch and if there are issues reported, we may choose to address them by requesting an upgrade to the 1.6.2 branch if running within 1.6.0 or 1.6.1 and the reported issues are in fact available with 1.6.2. As a general rule, the two main targets for Asterisk support in FreePBX are 1.4 and 1.8, as 1.6.X has been generally considered a bit of a 'disaster' by the general Asterisk community and as such, very hard to support and track given the number of variations between the three.
=== Architectural Enhancements ===
This version has introduce several significant architectural changes intended to modernize the Framework infrastructure and work drive the produce to a more supportable infrastructure and also one more easy to program to and accessible to both standard FreePBX modules as well as outside applications that need access to FreePBX. Examples of outside applications can simply be CLI based versions of functionality such as the already existing module_admin tool that allows full CLI access to the Module Admin functionality in the GUI (and a few more things beyond that one). These major enhancements include:
- Re-architected to bootstrap the full FreePBX environment with the inclusion of a single freepbx.conf file which is technically a 7 line PHP file that includes your database credentials and a path to the bootstrap.php application.
- Re-architected the amportal.conf settings. These settings have been traditionally used to fine tune many behaviors of FreePBX with a text based configuration file. All the configuration settings have been moved to a freepbx_conf class within FreePBX (meaning they live in the SQL database). This has resulted in an Advanced Settings page in core where these can be examined and changed, and also gives the program the opportunity to automatically make some changes when it detects the need for this.
- Linked the CSS and Images used in the FreePBX GUI branding and styling into the new Advanced Settings parameters such that almost all aspects of styling, logos and branding links can be redesigned. Only the fine print licensing and Copyright at the very bottom of the page must still remain.
- Consolidated some disjoint and rarely used FreePBX logging facilities into a single freepbx_log() function that we will start to use more extensively going forward. We also tied in existing messaging and the notification system into this logging facility so that quite a bit of logging information is already available immediately including:
- installation info (all the messages that get spit out also get logged)
- upgrade information (all the messaging you get during an upgrade get logged
- Notification subsystem in the Dashboard (all the information that gets updated there gets logged)
- Module Admin Repositories have been restructured away from the current Standard and Extended repository. Part of the design change means that you should no longer get phantom new modules available when switching between the repos. It also means that once you have loaded a module, you will be notified of any updates available for it even if you are not checking the repository it came from anymore. The new repositories include
- Standard - What we see as the most commonly used set of modules
- Extended - Other supported modules that are less commonly used.
- Unsupported - Modules available online but not supported by the FreePBX team, though often supported by the author
- Commercial - A future category reserved for third party modules that may be available for purchase. (There are such modules today, but no facility to distribute them)
- Support has been added for multiple language sound files in the FreePBX module structure. We will look forward to getting sound files for other languages contributed and added to the various modules that supply some of their own sounds.
These represent the major changes that have been implemented. There are quite a few other changes including some directory structure changes, facilities in Modules to better control and provide assets (CSS, js, image files) while avoiding name space clashes with other modules, and other areas. We have tried very hard to maintain compatibility with outside applications and third party modules that we do not have control over and in general, everything should continue to run without change.
=== Features & Functionality ===
There has been quite a bit of feature work done in this Milestone and the work is still un finished. The following highlights many of the changes that have been done or are planned to be done in this milestone. As always, some features may ultimately be cut and moved to the next milestone. As always, this is not a complete list as there are too many changes to track every one without a detailed analysis of the checkin log.
- Endpoint Management Functionality - due to its very nature, this is and will continue to be an ongoing project as phones and demand for supported phones continue to grow. Andrew Nagy is heading this up and for the most part, has done almost all the work to make this module a reality. We will be looking for feedback as this tool gets m ore widely exposed to help improve on it's capabilities and and support for different phones and other endpoints.
- Add DAHDi Configuration Module
- Extension Features:
- Extension Destinations for BUSY, NOANSWER and CHANUNAVAIL along with CID prepends for each case
- Ability to have any phone configured to auto answer (intercom style) for all internal calls while ringing like normal for external calls. An advanced setting also exists to override each phone's setting and put the entire PBX in this mode. (This depends on properly phone support for auto-answer and proper configuration such that it would otherwise work with the Paging and Intercom module.
- Separate Call Forward Timer. The current PBX behavior will ring the CF, CFU and CFB destinations for the same amount of time as configured to ring the line before going to voicemail (assuming there is voicemail associated with the extension). It is now possible to set this value independently or set it such that it will ring the Forwarding number forever as many other PBXs do. (If not changed, it will continue to use the standard ring timer value).
- Outbound call concurrency limits settable per extension. This allows you to control the number of simultaneous outbound calls any give extension can make. (This can be used as a throttling fail safe on extensions that are accessible from outside the PBX, in the event that credentials are stolen and the extension is hijacked for fraudulent calling, this would limit how many concurrent calls they could do. Of course strong passwords and other measures should be the primary defense).
- Optional Diversion headers (using the new Advanced Settings controls). This allows for Call Diversion information to be automatically generated for all forwarded calls as a result of Call Forwarding, Follow-Me, Ringgroups, Queues, Misc Destinations or any other mechanism that can take a call that originated from the outside and resulted in a new call being placed out a trunk.
- Search Extension Number ability added into the Print Extensions Module allowing large systems the ability to search for specific numbers, partial numbers or patterns. Also added are links to the configuration of every number listed on the Print Extensions page for quick access.
- Automatic Destinations generated for all Feature Codes that have a usable destination. In the past it was necessary to make a specific Misc Destination just to use a Feature Code (such as Voicemail Access) as a destination. Now these are automatically generated under the Destination category of Feature Codes.
- Support for app_confbridge in Meetme, for systems that don't have timing devices such as Dahdi cards or dahdidummy drivers. (With reduced conferencing functionality due to the limitations of app_confbridge).
- Call Confirmation ability added to Queues, such that external off PBX numbers can be forced to confirm the Queue call prior to the queue passing on the customer to the answered line. (This will also force confirmation on for any Follow-me that is pursued). The queue can also override the call confirmation message with one specified by the queue, even if ending up in someone's follow-me that has their own message configured.
- Feature Code associated with every Time Condition, that can be used to override the current time condition state and then reset itself once the current time period is over. (Or if put in sticky mode, it will stay until manually reset). These feature codes are also BLF enabled and will always reflect the current state in the BLF (off if in normal time mode, on if in false time mode).
- Third 'force' mode added to paging groups. Currently a busy phone can be skipped or the call can be forced sent to all phones. The latter behavior results in some phones automatically putting the current caller on hold and auto answering the new call. The third mode will use !ChanSpy which allows Asterisk to simply insert the paging stream into one of the channels of the current call, such that the PBX extensions will hear the paging in their ear, but the party they are talking to will not hear it.
- Chan gtalk and jabber added to the Asterisk Info module
- Merging of the contributed module vmadmin functionality into the Voicemail Module to provide significantly increase Voicemail GUI configuration ability and move away from the manual editing of the vm_general.inc and vm_email.inc files.
- Added required support in core to facilitate the mISDN unsupported module which will be available online for downloading.