2.11.0
 * Add ability for modules to function even if user is not authenticated (r15240)
 * Add varsub() that can do variable substitution on a string with an amp_conf 
 	var (r15233)
 * Add ability for index.php to be replaced if index_custom.php exists in 
 	webroot
 * Update copyright nice to reflect new owner (r15128, r15149, r15216)
 * Update login page with more options; add obe page; redirect hits to webroot
 	to new login/landing page (r15078, r15095, r15115)
 * Add ext_while() (r15077)
 * Add ext_park() (r15075)
 * Add ability for more framework level elements to be branded (r15000)
 * Update ext_queue() to include latest asterisk options (r14697)
 * Add client side detection of already-used extensions
 * Add ability to add a single destination without navigating away from current 
 	page (r14506, r14507, r14508, r14517, r14520)
 * Add awareness for security fixes in Module Admin (r14403)
 * Fix Module Admin modal box not showing status untill completed (r14396)
 * Move notification of module updates to Module Admin (r14395)
 * Added isEmail() to js lib (r14500)
 * Add ability for better Select types in Advanced Settings (r14386)
 * Moved call recording settings from General to Advanced Settings (r14374)
 * Add trunk ring timer advanced setting TRUNK_RING_TIMER (r14370)
 * Add gui helper fpbx_form_input_check() that creates a textbox which can be 
 	shown/hidden by a checkbox (r14369)
 * Hide "Monitor Trunk Failures" in Trunks by default (r14354)

2.9.0 (Highlights)

 * see overview and full list of tickets available at:
   http://www.freepbx.org/trac/milestone/2.9

2.8.0 (Highlights)

 * see overview and full list of tickets available at:
   http://www.freepbx.org/trac/milestone/2.8

2.7.0 (Highlights)

 * FAX module changes to support FFA and change the way FAX detection works
 * Different CID Options for Follow-Me Module
 * Different CID Options for Ring Group Module
 * Some enhanced functionality in Queues and improved dynamic agent abilities
   * Setting Penalties for Dynamic Agents
   * Restricting a queue to only specific dynamic agents
   * Advanced mode to specify static devices vs. extensions
 * Some improvements to Backup
   * per backup set FTP and SCP options for remote storage of backup sets
   * per session additional directories to backup (and restore if needed)
 * Language option for incoming routes
 * Increased handling of HANGUPCAUSE codes
 * Outbound Route Specific CIDs
 * Force Trunk CIDs and remove CNAM option on trunks
 * CF Unconditional add support for DEVSTATE
   * per device hints created with BLF support
   * toggle option created designed to work with BLF
   * BEEPONLY support added to minimize messages played
 * Advanced Outbound Route Selection
   * allows routes to be chosen based on dialed number and CID/extension number or pattern
 * Add MoH Class choice for Conferences
 * Allow MoH directory to be specified in amportal.conf
 * Add ability for Module Admin to reinstall the same version or and ''older'' version (with many caveats)
 * Move all of ''recordingcheck'' AGI script into dialplan
 * Add optional and experimental ''macro-dial-one'' that can be used to replace ''macro-dial'' for single 
   extension only dialing (no ringgroups, followme, etc.). Requires special setup, see: #4068.

2.6
- Added Extended Repository to allow more contributed modules not part of main
  project, some extended modules include:
  - Bulk Extension Add/Delete/Edit
  - Voicemail Admin
  - Set CID
  - Route Permissions

- Moved the following modules to the extended repository:
  - Customer DB
  - Inventroy DB
  - Gabcast

- Added new modules:
  - Asterisk SIP Settings
  - Asterisk IAX Settings
  - Outbound Route Messages
  - Phone Restart
  - Weak Password Checks (back ported to 2.5 also) 

- Several Enhancements to Queue Module

- Enhancements to Print Extensions

- Performance Enhancements to Paging (helps large page groups)

- Added Virtual Extension support

- Added Pinless Dialing exception to Extension/User GUI

- More improvemenmts to Directed Call Pickup for Asterisk 1.4+ systems

- New version of mindTerm (used in Java SSH module); has new licensing 
  options (and restrictions). See 
  http://www.appgate.com/index/products/mindterm/ for more info.

- Added fields for Publisher and License in module.xml

- Added ability to put dependencies on PHP versions and PHP components in
  module.xml

- Changed database mode passwords form clear text to encrypted passwords

- Changed internal schema of trunks to add proper sql tables

- Eliminated dialparties.agi accessing AMI when EXTENSION_STATE() is avail

2.5.1
- Biggest changes from 2.5.0 to 2.5.1 were many loose ends to handle localization
  translations through out the code.

- Added support to recognize Asterisk Business Edition versions and work properly
  as if they were 1.2 or 1.4.

2.5.0 Added in final
- When using database mode there is a new option to allow a non-admin user to Add
  extensions or devices. By default they can not add which means users who previously
  existed will need to have the additional permission added to them if you want them
  to be able to add extensions or devices. They can still edit existing ones.

2.5.0 Added in rc2

- Add queue weights setting and autfill setting per queue. Set persistentmember=yes
  in queues general section to apply to all queues.

- Added ability in IVR to have voicemail system return calls to the IVR after leaving
  or checking messages as well as returning to the IVR if line is busy (and user has
  not voicemail)

- Added option to incoming routes allowing a CID only route to take priority over a
  DID only route. This means that the CID route will route the call for calls that
  come to that DID with the specified CID. Default behavior would always route the
  call to the DID only route based on how Asterisk sorts routes.

- Split the framework "module" into framework, fw_fop and fw_ari so that FOP and
  ARI updates could be split from other framework updates in order to allow people
  with highly customized FOP and ARI changes to pull framework updates easier.

- Added Streaming categories to MoH in addition to downloaded files

2.5.0	Added before rc1
 WARNING: The separation of directdid and other incoming routes has been removed.
 this has resulted in the obsoletion of the following API call:

	function core_directdid_list()
	function core_users_directdid_get($directdid="")

 These API calls will now always return empty arrays. You should use the
 core_did_list() and core_did_get() function calls in their place. See the source
 code for specifics about these calls.

 WARNING: MoH has been changed to convert MP3 into WAV format using mpg123 and
 sox. If you do not have one or both of these installed you should install them.
 You can revert to the previous behavior by setting: AMPMPG123=false in the
 amportal.conf file.

 WARNING: If testing with sqlite3 prior to rc2, you will have to change the field
 size for the globals table as there is no conversion script in the upgrades directory
 since sqlite3 is a pain to do such schema changes and there is no existing installed
 base to convert.

 AMPORTAL CONF NEW SETTINGS:

 USEDEVSTATE = true|false 
 DEFAULT VALUE: false
 If this is set, it assumes that you are running Asterisk 1.4 or higher and want 
 to take advantage of the func_devstate.c backport available from Asterisk 1.6 
 which allows custom hints to be created to support BLF for server side feature 
 codes such as daynight, followme, etc.

 MODULEADMINWGET=true|false 
 DEFAULT VALUE: false
 Module Admin normally tries to get its online information through direct file 
 open calls to URLs that go back to the freepbx.org server. If it fails, typically 
 because of content filters in firewalls that don't like the way PHP formats the 
 requests, the code will fall back and try a wget to pull the information.  This 
 will often solve the problem. However, in such environemnts there can be a 
 significant timeout before the failed file open calls to the URLs return and 
 there are often 2-3 of these that occur. Setting this value will force FreePBX 
 to avoid the attempt to open the URL and go straight to the wget calls.

 AMPDISABLELOG=true|false 
 DEFAULT VALUE: true
 Whether or not to invoke the freepbx log facility

 AMPSYSLOGLEVEL=LOG_EMERG|LOG_ALERT|LOG_CRIT|LOG_ERR|LOG_WARNING|LOG_NOTICE|
                LOG_INFO|LOG_DEBUG|LOG_SQL|SQL 
 DEFAULT VALUE: LOG_ERR
 Where to log if enabled, SQL, LOG_SQL logs to old MySQL table, others are passed 
 to syslog system to determine where to log

 AMPENABLEDEVELDEBUG=true|false 
 DEFAULT VALUE: false
 Whether or not to include log messages marked as 'devel-debug' in the log system

 AMPMPG123=true|false 
 DEFAULT VALUE: true
 When set to false, the old MoH behavior is adopted where MP3 files can be loaded 
 and WAV files converted to MP3 The new default behavior assumes you have mpg123 
 loaded as well as sox and will convert MP3 files to WAV. This is highly recommended 
 as MP3 files heavily tax the system and can cause instability on a busy phone system.

 AMPVMUMASK
 DEFAULT VALUE: 077
 Allows setting a umask for Asterisk to control the voicemail file permissions

 Special Case configuration variables for the CDR reports to pull data from remote
 databases:

 CDRDBHOST: hostname of db server if not the same as AMPDBHOST
 CDRDBPORT: Port number for db host 
 CDRDBUSER: username to connect to db with if its not the same as AMPDBUSER
 CDRDBPASS: password for connecting to db if its not the same as AMPDBPASS
 CDRDBNAME: name of database used for cdr records
 CDRDBTYPE: mysql or postgres mysql is default
 CDRDBTABLENAME: Name of the table in the db where the cdr is stored cdr is default 

 DASHBOARD_STATS_UPDATE_TIME=integer_seconds
 DEFAULT VALUE: 6
 DASHBOARD_INFO_UPDATE_TIME=integer_seconds
 DEFAULT VALUE: 20
 These can be used to change the refresh rate of the System Status Panel. Most of
 the stats are updated based on the STATS interval but a few items are checked
 less frequently (such as Astersisk Uptime) based on the INFO value

 ZAP2DAHDICOMPAT=true|false
 DEFAULT VALUE: false
 If set to true, FreePBX will check if you have chan_dadhi installed. If so, it will
 automatically use all your ZAP configuration settings (devices and trunks) and
 silently convert them, under the covers, to DAHDI so no changes are needed. The
 GUI will continue to refer to these as ZAP but it will use the proper DAHDI channels.
 This will also keep Zap Channel DIDs working.


 HIGHLIGHTS:
 A detailed list of changes is available on the 2.5 Mileston:

 http://freepbx.org/trac/milestone/2.5

 Where you can review the summmary as well as the link to all tickets associated
 with this Milestone.

- New module queueprio that allows priorities to be assigned to callers that will
  effect their position in any queue they drop into.

- New module dundicheck, allows the extension registry to detect duplicate
  extension conflicts between DUNDi branch systems. Also provides a simple lookup
  for extensions on the configured cluster.

- Timecondition module changed with the addition of Time Groups to allow multiple
  times to be considered in a single timecondition. The timegroups are abstracted
  and available for other modules to take advantage of in the future. This was
  a merge of the timegroups module in the contributed modules directory.

- Day/Night Mode module modified to hook into Time Conditions and allow any Time
  Condtion to be directly linked to the stated of a Day/Night mode feature code.
  This avoids the need for adding a Day/Night mode module into the call flow and
  allows a single Day/Night mode module to change multiple Time Conditions at once.

- Direct DIDs have been merged with incoming routes. Any incoming route that goes
  to an extension/user will appear under that user. New directdids can be added
  on the user screen but all detailed configuration of that did must be configured
  on its corresponding incoming route page. Conenient links are introduced to
  navigate between a user/extension and the incoming routes quickly. Filters have
  also been introduced on the incoming routes page to see directdids only, all but
  direct dids only, or unassigned dids (with no destinations). Unassigned dids are
  not generated in the dialplan. (So if there is a catchall defined they will end
  there instead of a hangup because of the lack of a destination.

- Users page (only viewable in devicesandusers mode) now has links to each fixed
  device as well as each adhoc device who's default user is this user. And the
  Device page has a direct link back to the fixed or default user if specified.

- Introduced the optional usage of BLF on many feature codes. This requires the
  inclusion of the Asterisk function func_devstate.c which is backported from
  Asterisk 1.6 but available on Asterisk 1.4 and has been stable for a long time.
  By setting the value "USEDEVSTATE=true" in amportal.conf, the dialplan will be
  generated to take advantage of this. This allows functions like DND, Day/Night,
  Follow-Me, Meetme and others to have BLF settings so phone buttons can recognize
  the states.

- Follow-Me feature code added to enable/disable Follow-Me as is available in 
  the FreePBX GUI or ARI.

- Caller screening configurable per user for external calls, requiring a caller 
  to announce themselves and then providing the called user the option of 
  listening to who the announced caller is and choosing whether or not to take 
  the call, with options to send to voicemail, or other alternatives.

- System Recordings has been enhanced so that recordings can have a dedicated
  feature code assigned to them that allows them to re-record the specific recording.
  Recordings that use built-in recordings or that are constructed from multiple
  concatenated recording segments can not have a feature code created. This allows
  a customer to easily modify a recording that may be associated with an IVR (or
  anything else) without having to do anything with the GUI.

- Queues have been modified with an optional filter to control what dynamic agent
  callback numbers are acceptable to be entered when a user logs in. This is done
  through the introduction of an optioal REGEX filter for each queue. This can
  allow a queue to be limited to a range of extensions, block external numbers, or
  any other filtering that can be expressed through a regex expression to test
  the validity of the entered agent number.
  Also added a CID prepend option to add the Queue Wait time for a caller to be
  presneted to the agent when ringing their phone.

- Delete and Add icons have been added to many of the links on most modules that use
  links instead of buttons for these actions.

- Optional Module Admin configuration file has been added, freepbx_module_admin.conf,
  that allows any module to be filtered out of the Module Admin GUI.

- Module Admin Changelog displays have added auto-generated links to referenced
  tickets or changesets.

- Module Admin has been modified to fall back to using wget if it can't reach the
  online server through direct file read commands that sometimes get blocked by
  firewall content filters.

- Optional Feature Codes configuration file has been added, freepbx_featurecodes.conf,
  that allows the default values normally hardcoded by each module to be specified.
  These default values can still be overridden in the Feature Code panel as usual.

- We have tried to introduce logical 'tabindex' settings to all the pages so that
  tabbing through a form logically progresses through the fields as one might hope.

- Paging & Intercom control beep and more

- Skip Busy Agents feature has been added to Ring Groups (was on Queues), as well
  as Ignore CF Settings, allowing a Ring Group to ignore and block any agent's CF
  settings (CF, CFU, CFB) whether they are server or device side settings.

- Added VmX Locater GUI to FreePBX so admin and user can make changes, also enabled
  0 option even with VmX disabled so it can be used by admin to redirect 0 out on
  voicemail without requiring VmX to the user.

- IVR enhanced to allow the annoucement message to be changed in the event of a
  timeout or ivalid extension chosen.

- Throughout the modules all references to system recordings by a module are done so
  with an id so that recording changes are reflected with a relad.

- Sqlite3 support has been added.

2.4.1
 Mainly a maintenance release that is all available through the Framework update, the
 bugs addressed are listed below as per the Framework Changelog. The biggest change
 is with FOP that had included the newest version of FOP in order to accomdate the
 incompatability with Flash Player 9.0.124.0 and higher.

 2.4.0.1: #2843, #2701, #2818, #2784, #2604, #2766, #2798, #2809, #2799, #2685, #2676
 2.4.1.0: #2862, #2855, #2782 FOP update to make flash player 9.0.124.0 and newer happy

2.4.0

  WARNING: changes were made to some of the core_did_XXXX() API calls that could effect
  any custom applications that were depending on these.

  WARNING: changes were made to context ordering wrt to ext-did-catchall and
  from-did-direct. Previously, if you had not ext-did-catchall you might be in a
  situation where you were reveiving direct DID calls to your extensions even though
  not configured since there was no catchall route. If you then made a catchall route
  you would suddenly stop receiving those calls and would have to add the dids in a
  route or as a direct did. With this change, it is now deterministic but the behavior
  of an existing system could change (they could suddenly start receiving DIDs). This
  can be easily corrected though by intercepting those DIDs with an inbound route (with
  pattern matching if need be).

- Implementation of a distributed Extension and Destination Registry through callbacks
  in all modules and supporting APIs in framework. The Extension Registry provides the
  needed information and APIs to detect and allow a module to block the creation of an
  extension number that is used elsewhere. The Destination Registry provides a
  mechanism for a module to detrmine if any of it's entities are being used as a
  destination by other modules so it can provide warnings or feedback about the impact
  of deleting such entities. Both registries are checked when reloading a configuration
  and any inegrity issues are supplied to the notification panel. All supported modules
  should be instrumented to use these once updated.

- Addition of Custom Applications Module. Provides a place to register custom extension
  numbers as well as custom destinations that are to be used in FreePBX. Replaces the
  old Custom Destinations choice that was available in each module.

- Moved vmblast form contributed modules to supported module after significant changes
  and fixes as it never worked form the original contributor. Add additional features
  to it and added a default vmblast group option to be used with extensions/user add
  and edit.

- Custom destinations will no longer show up under the destination selections unless there
  is already one configured or an unknown destination is detected (which are one and the
  same). To use a custom destination in FreePBX, it will have to be registered with this
  module to appear as a choice to other modules. (Similar to adding a destination to the
  Misc Dests module).

- Module admin changed so that 'problem' modules that have dependency issues will not
  block other modules from being downloaded and/or installed. A warning is still generated
  but the action is allowed to proceed with any modules that have all their dependencies
  met.

- Removed Channel Routing from 'Inbound Routes.' Added 'Zap Channel DIDs' to core modules
  to assign DIDs to Zap Channels which can then use 'Inbound Routes' to route them with
  all the same flexibility that is there today and without some of the issues that the
  previous Channel routing implementation provided. Existing Channel routes will be
  converted and entries inserted into the 'Zap Channel DIDs' tables.

- Ringgroups, Queues and Follow-Me have been enhanced with a Quick Pick utilitlity that
  allows extensions to be added into the the ring list.

- Several changes and enhancements have been made to improve the usability of Users/Devices
  mode particularyly around Adhoc devices. Some highlights:
  - Default user information is retained and the device returned to that user upon a logout
  - Editing devices in FreePBX will no longer erase current logged in device information
  - Hints are initially generated properly for Adhoc devices
  - Hints are dynamically added/deleted as part of the logon/logoff process
  - There are still issues if reloading from the CLI. A script and some instructions will
    be supplied on ways to address this until a more permanent solution can be determined.

- Pulled some agi scripts and macro calls out of dialout-trunk / dialout-enum into the outbound 
  route code so they would only be called once when the call sequence has to try multiple
  trunks.

- Added reload option to CLI module_admin to peform same task as the reload bar.

- Added support in macro-user-callerid to support per-user/extension language changes.

- Significant changes within Paging & Intercom Module for 2.4 version of Module. Highlights:
  - Intercom works properly when User is logged into multiple devices and will intercom them all
  - Explicit Allow and Deny options to control who can/can't intercom you
  - AstDB flag that can be set for a specific extension to block it from intercoming anyone
  - designate a group as default for add/edit at extension/device creation/edit time
  - Significant improvments in Auto-Answer ability for more phone support:
    - Defaults pulled from database which can be changed by an advanced user
    - Defaults can be overode for specific phone useragents based on information in
      database, for advanced users and to allow new phones to be supported once details
      are reported to the FreePBX team.
    - Abilility to trigger custom macros for phones based on useragent info or on a per-device
      basis with information stored in AstDB for that device, for advanced users.

- Queues Module has been updated to remove its dependency from the old legacy extensions table
  and the current queues table is replaced with queues_config and queues_details table.

- Queues and the SIP, IAX2 and ZAP conf file generation has been replaced with proper queues_conf
  and core_conf classes

- Added partial support for DUNDi via a DUNDi trunk, dundi.conf configuration is still manual

- Support Asterisk 1.6 to the extent that it can be supported as it is in beta at the time of
  2.4 release. But we will try to keep on top of 1.6 issues.

- Misc other bug fixes and some feature requests that can be obtained through the SVN log.

2.3.1

- Module Admin previously exploded new module tarball updates ontop of the existing earlier
  versions. It has been changed to replace the entire module directory with the new tarball
  contents. Removed files as well as any other files in the directory will be removed.
- #2335 Module Admin can now be disabled in database mode.
- module_admin (cli version) has new reload option (same as pressing orange bar)
- FOPRUN now defaults to true in amportal.conf for new installs
- retrieve_conf will look for and include a script called retrieve_conf_post_custom if found
  in AMPLOCALBIN which must be defined in amportal.conf. This can be used for custom actions
  and configuration upon reloads after dialpans and conf files have been generated.
- macro-dialout-trunk has been enhanced with a call to macro-dialout-trunk-predial-hook that
  can be used to make custom changes (e.g. add SIP header information) or even bypass the trunk
  if a macro is defined by the user.
- #2412 fixed by r5096 was creating javascript validation in several modules to fail
- apply_conf.sh improved to handle all password formats and manager user login name changes

2.3.0

- Final release is almost all bug fixes, see change logs in framework
- Changed several categories
- Linked Help tab into online freepbx.org help system

Added in Beta2:
- WARNING:
 amportal has been changed to call freepbx_engine so that the framework can update that
 script if necessary. fop_start, fop_stop and fop_restart has also been added to freepbx_engine
 as new commands. If you are upgrading through install_amp then you will receive all these
 changes. If you were beta testing during Beta1 and were upgraded through the Framework updgade
  you will have to manually update the amportal script that lives under /usr/sbin normally, 
  or run an install_amp upgrade. You can do this by changing to root and copying the file from
  amp_conf/sbin/amportal to /usr/sbin/amportal or where ever your AMPBIN directory is located.
- WARNING:
  ARI split out into several modules. There may be some old ARI modules that are left over since 
  the install script does not to delete the previous modules if they are still there. You can
  look in the install directory under amp_conf/htdocs/recordings/modules to see what gets packaged
  with the install. You can safetly remove any modules not listed there from the install
  directory, typically /var/www/html/recordings/modules is where they would be.
- New Dashboard Index page - shows notifications from the system and vital system statistics
- New Logos and styling
- FOP 0.27 upgrade
- Added CID prefix and description to inbound routes
- Added CW enable/disable to core extensions/users
- Segregated ARI into multiple ARI modules and added CW and DND.
- Removed followme destinations, and changed Core destinations to Extensions, Voicemail and
  Terminate Call. Extensions will go to followme if enabled and present consistent with normal
  dialing behavior. Voicemail can choose busy or unavail. Terminate call included the Hangup and
  related core destinations.
- New notification framework added to allow all notifications and errors to be consolidated
  and used by different systems like the dashboard.
- New crontab manager added to allow modules to install crontab type entries run by the manager.
  Checks hourly and modules can indicate how frequently they want something run. Initially created for
  online update checking.
- Automatic Online Update checks with notification through the dashboard or email.
- Framework updates modified to handle full upgrades using the same upgrades directory to
  apply schema changes. Shared by install_amp.
- FOP upgrading added to Framework
- New FOPRUN variable in amportal.conf, if set to false, FOP won't be started by default
- Added support in amportal.conf for AMPMANAGERPROXY, to use if running with a astmanproxy style proxy
- libfreepbx.install.php split out from install_amp to consolidate common functions needed by framework
- version array removed from install_amp upgrade script, it will now derive the version from the last
  upgrade direcotry and use the upgrade directories to run though the installs.
- added 'hidden' make-links-devel flag to install_amp, to install with symbolic links if running
  out of an svn tree
- retrieve_conf instrumented to provide notifications to the dashboard on failures
- fixed several dependency logic bugs in the online module infastructure
- improved the amportal.conf parser and modified retrieve_conf to use the main parser

Added in Beta1:

- To Get Full Details - look at the SVN logs of changes since the previous
  release. These are only higlights.
- WARNING:
  Removed Follow-Me destinations and changed how 'Core Extension' destinations
  work. This has been an area of confusion and inconsistency. Under all calling
  conditions, if you call someone and they have an enabled Follow-Me, that is
  where the call goes. If not, it goes to their extension. Now the Core destination
  of an extension works the same way. There is no longer a Follow-Me destination
  to choose from. All settings should be migrated automatically.
- WARNING:
  Changed default behavior of Call Waiting state when extensions are created. It is
  now enabled by default (r4175) and you must set ENABLECW=no to keep the preivous
  behavior
- MOVED CORE MODULES to the module repository, meaning they can now be updated online
  like other modules.
- ADDED Framework Module, which provides a facility to update all the rest of FreePBX
  through the Online Module Admin System
- VmX Locater and its intergration with FollowMe. This is a new feature that allows
  each VoiceMail extension to have the option of having a 'personal' IVR so the caller
  can have choices like call them on their cell, optionally try their Follow-Me (which
  can otherwise be disabled), etc. You check the box down with Voicemail and then
  the user controls the rest from the ARI.
- Added enable/disable of Follow-Me without having to delete. In disabled mode, VmX
  can still send calls to Follow-Me.
- ARI control of Follow-Me, VmX Locater, all CF modes, and a handful of other
  ARI bugs addressed. (ARI is still in EOL mode - but since no user portal is ready
  yet, it still servers as a user interface).
- Inbound MoH classes based on DID routing or Direct DID routing.
- Outbound MoH clases based on the outbound route selected.
- New ring strategies for FollowMe and Ringgroups (ringallv2, firstavalable, firstonphone)
- Per-Extension Ring Times to override the global setting in General
- Sipname alias (that can be non-numeric) to provide user friendly sip dialing
  information if you accept annonymous sip calls.
- Internal calling CID Number Masquerading, to allow your internal extension appear
  as a different number when making internal calls. (For example, a support team can
  all masquerade with the number of a queue so that people who call them back call the
  queue instead of their personal extension.
- CWINUSEBUSY=yes/no in amportal.conf, to have calls to an occupied multi-line phone (or
  CW enabled phone) end up in the voicemail busy greeting instead of the unavailable
  greeting.
- Asterisk 1.4 support
- Sqlite3 support (deprecate sqlite2)
- Day/Night Control Module
- Recording Module with playback ability
- Re-Introduced bad-number context, to play friendly message if a bad number is dialed. Added
  from-internal-xfer as TRANSFER_CONTEXT in global variables. This keeps the previous error
  of transfering a user to a bad number and dropping the transfered user into the bad-number
  context.

2.2.3
- #2025 fix bug that blocks the editing of an extension that has a directdid
  with an alert box saying the directdid is already in use.
- #1747 add South Africa indications.
- changed from auto-symlink to auto-copy of agi-bin scripts packaged with a
  module. The symlinks create issues on some systems. To keep the coying from
  overwriting files in the real agi-bin, make them read only permission to
  astersik.
- Fixed several module version dependency checking bugs
- #1841: don't strip '+' from directdid
- added unique unidentifiable tracking id for online system auditing

2.2.2
- To Get Full Details - look at the SVN logs of changes since the previous
  release. These are only higlights.
- WARNING:
  merge ext-did and ext-did-direct all into ext-did context, and create
  new context, ext-did-cacthall when creating an ANY/ANY route. The inclusion
  of ext-did-catchall is in the extensions.conf file so if any customizations
  have been done, make sure this is included.
  The purpose of this change allows directdids specified with the extension
  to properly co-exist with those create with inbound routing. In addition,
  error checking has been added to keep the same did from being used two places.
  However, you can use a did on an extension as a directdid, and then included
  the same did+CID info on inbound routing and that is legal, and will now work
  properly instead of being ignored as was the case in the past.
- WARNING:
  sip.conf file changes that MUST be adopted. The inclusion of sip_registrations.conf
  and sip_registrations_custom.conf have been added to sip.conf. In the past the
  registrations were put at the very top of sip_additional.conf which made it really
  easy to break things if you put a custom sip context into sip_custom.conf.
- javascript warning when users try to use the 'r' option in the
  "Asterisk Outbound Dial command options" of the "General" tab.
- allow the '=' character on the right side of an assignment in the trunk specification
  section. This was a common error propblem if a secret included an '=' sign, for
  instance. There are other settings that require '=' there also.
- fix bug in ringgroups and followme when DND was enabled on the first extension of a
  ringgoup, the others would not be tried. This behavior is correct if the ring
  strategy includes the '-prim' postfix but was doing it to all strategies.
- Added Israel and India Indications to General tab
- Added MailBoxExists and WaitExten asterisk commands to extensions.class.php to enable
  some bug fixes requiring those commands forthcoming to the IVR and Voicemail modules.

2.2.1
- Fix ENUM lookup bug in 2.2.0 - r3546
- Convert MP3 MOH files to SLN (Asterisk Native) format - r3548
- module_install() now returns true for already installed modules - r3569
- Allow null and blank values to be put into astdb - r3576
- don't propogate dnd behavior and not ring other phones if this was not
  a prim mode strategy - r3580
- Apply fix for #1361 (patch #1667), mailbox field not being propogated in in
  deviceanduser mode. - r3584
- Fix typo in extensions.conf, when pushing '0' for oper and not having an
  opereration extension defined, would pass a bad Dial string. - r3585
- added warning on save of trunk if user context left blank and user details
  filled in that details will not be saved #1666 - r3631
- limit rnav width #1647 
  fixed panel displaying extensions over 9999 as trunks - ticket #1710 
  List device technology on page when editing Ticket #1711 
  fixed trunks stripping AMP: which removed ANY occurance of the letters 
  A,M,P,: from the beginning of all trunks, also unified the display on 
  the routing page - partially noted in #1713 
  CFB when dialparties.agi decides not to - offhook, user hits ignore/reject,
  etc. - patch #1681 - (Backport from trunk) r3643 naftali5
- now module_admin works even for "broken" modules, running from every 
  directory  - r3678
- do not display warnings about password when not using mysql/pgsql - r3679 
- make the cdr page links a bit nicer - r3689
- fix typo in sip.conf - r3691
- keep rtone from being set in queues_additional.conf #1635 - r3697
- fix queues retrieve conf bug part of #1659 - r3744

2.2
- IMPORTANT CHANGE - Asterisk 'transfer' featurecode is now defaulted to '##', rather than '#'. 
  This was changed to avoid issues with sending a '#' to an externally called party. Note
  that this is a SIGNIFICANT CHANGE, and you should be aware of it.
- Fixed trunk 'locking' (Never Override CallerID) checkbox to work properly. This allows a
  trunk to restrict outbound CallerID settings to those of the trunk or defined in an
  extensions outboundcid settings. WARNING: THIS WILL BREAK 2.2.0rc1 WORKAROUNDS. The logic
  was reversed, you had to check the box in rc1 to get it to allow such foreign callerid's.
  That was a bug (#1501). By fixing the logic, the behavior is now opposite and you may
  need to go back to your trunks and change it.

2.2
- New Modules: phpagiconf, printextensions, customerdb, inventorydb, announcement, blacklist,
  cidlookup, customerdb, dictate, inventorydb, parking, pbdirectory, phonebook, printextensions,
  speeddials, ZoIP
- New option in amportal.conf for remote backups (as well as significant backup fixes)
- Changed Call Recordings to user MixMontior, better performance and more reliable.
- Fixed prefix lookup to use localcallingguide.com XML interface
- Fix potential security hole in CALLERID(name) and CALLERID(num) (see r2076)
- Redo front end with the new look, Thanks to Steven Fischer for the template
- Using new redirect() call, so the back button on the web browser is usable again
- New module management, including progress of downloads
- Added ability to 'lock' a trunk to only use a specified CID ('KEEPCID' patches)
- Add support for Hebrew (RTL) text formatting
- dialparties.agi now written in PHP
- Went rummaging around through the old sourceforge forums and found some patches
  that had been lost in the move 
- FOP now using the latest version, .26
- Huge number (200+) of minor bug fixes
- Policy change with relation to releases. There is now a 'base' and a 'withmodules'
  package. The 'withmodules' pack is useful for machine that don't have easy internet
   access, and contains all the modules currently available at the time of the release. 
  This is also useful for new installations, too.
- Changed default '#' and '*' features (transfer and disconnect) to '##' and 
  '**'. Note, bugs in asterisk prior to 1.2.13 cause this to misbehave.

*KNOWN ISSUES*

CID Lookup and Pinsets (both modules that hook into Inbound Routes) do not display their changes immediately. After
you change a CID or Pinset, click on the route _again_ - the changes will then be displayed. This is due to how the
old module hooks were being processed, and isn't easily fixable. 

2.1.1
- Rob Thomas (xrobau@gmail.com) takes over stewardship of FreePBX project from Coalescent Systems
- Clean up harmless warnings in recordingcheck (r1927 and r1940)
- SIP Anonymous wasn't working when language was not set to 'en' (r1932)
- Fixed unfortunate loop when more than 10 trunks defined (r1942)
- Voicemail changes weren't immediately visible (r1945)
- Various fixes to clean up parser errors in extensions.conf, and rewrite of a couple of macros (r1949, r1950, r1953, r1957)
- Various minor text cleanups (r1960, r1962)
- Show fatal error message when cannot read /etc/amportal.conf file (r1971)
- Add simple script for A@H users to restore their non-standard modules (r1972)

2.1

- Modules not packacked with FreePBX
- Included interface used to download/install/upgrade modules
- Inbound Routing based on (analog) zap channel (ie: no DID available)
- Russian and Portuguese 
- ModuleHooks system allows modules to interact with eachother
- dialparties completely re-written in PHP - eliminating dep for asterisk-perl
- General Option to allow unauthenticated SIP calls into the system
- Define different "Dial()" options for outbound calls
- Direct DID->Extension config
- New modules, including FeatureCodes, Callback, PinSets, and others

2.0

- AMP is now "FreePBX"
- New module system allows for drop-in functionality
- Requires Asterisk 1.2.x
- All previous AMP functionality ported to new module system
- Added Modules: Conferences, Time Conditions, Asterisk CLI, Online Support 
- GUI improvements
- FOP .24
- ARI 00.08.03 - now with AJAX!
- Outbound Routes can now use an Authenticate Password File
- Queue Static Agents can have penalties applied
- Using native music on hold support - no more mpg123!!
- Default is to use FreePBX database authentication.  New installs create a new user.
- Initial sqlite support!
- Much improved form validation for all modules
- Inbound routes can set ALERT_INFO variable for SIP devices
- Ability to force Emergency Caller ID for devices using an Emergency Outbound Route.

1.10.010

- Tested with Asterisk 1.2 (beta)
- Tested with PHP 5
- Removed all the sound files from AMP archive, instead depend on asterisk-sounds
- Ability to execute a script after applying changes in the AMP interface
  (see amportal.conf in source archive)
- Allow accountcode for IAX devices (again)
- Show custom extensions in FOP
- Allow mailbox setting for device to be set manually (for shared mailboxes)
- HINT extensions are now created for both FIXED and ADHOC devices
- Display AMP version in footer
- Support for remote mysql database
- ARI upgrade adds i18n and user settings
- Remove Play Next option from voicemail options and default to
  play next when deleting or saving voicemails
- Lots'o'bug fixes

1.10.009

- Asterisk Recording Interface (ARI).  ARI is a php interface to Voicemail and monitor recordings. (written by littlejohnconsulting.com)
- Queues can now play a "welcome" message to callers upon joining.
- DID Routes re-written as Inbound Routing.  This allows for DID specific fax emails and call answering options.
- RingGroups now use strategies: Ring All (default), Hunt, Memory Hunt
- Optional separation of Devices and Users (AMPEXTENSIONS option added to amportal.conf).  Devices are endpoints (ie: phones), and can be Fixed to a user, or Adhoc.  Users are extensions, with options like voicemail.  A user can log in to Adhoc devices by dialing *11, and log-off by dialing *12.
- Custom device technology support
- HINT priorities for FIXED devices
- Interface translated to French, German, Italian, Spanish
- FOP .21
- FOP button layout can now be sorted by last name or extension number

1.10.008

- Backup/Restore (schedule and restore backups)
- Extension Call Recording (inbound and outbound calls)
- Queue Call Recording (inbound to agents)
- Custom Trunks (use any Asterisk supported technology as a trunk)
- Remote Agents (join a Queue from any endpoint on a trunk)
- Outbound Route Password (require a password for certain outbound patterns)
- i18n (web interface can now be translated)
- ZAP trunk channels no longer hard-coded in retrieve_op_conf_from_mysql.pl
- *<exten> dials direct to voicemail()

1.10.007

- Added cvs2cl generated ChangeLog (see this for all changes and bug fixes)
- Added AMP Users (multi-department, multi-tenant)
- Added incremental upgrade script (install_amp)
- Use /etc/amportal.conf to tweak AMP to your environement (MySql credentials, web root, ip address, etc).  Apply changes with apply_conf.sh
- New Outbound Routes page to control trunks used for outbound calls based on dial patterns
- LCR using Outbound Routes
- Trunks page redone to support routing, adds dial rules to modify numbers per-trunk before dialing
- ENUM Trunks
- Queues support added
- Support for ZAP extensions
- More voicemail options added
- New AGI-based directory application to support both first and last name lookups and return to operator
- provide customization points for all AMP generated extension contexts.
- Upgrade to Flash Operator Panel 0.20
- Upgrade Asterisk-Stat to v2.0


1.10.006

- Use extensions_custom.conf for customizations.  Sample included.
- Add option to define outbound CallerID on trunks
- Add option to define outbound CallerID for extensions
- Create extensions without voicemail and directory
- Web voicemail (vmail.cgi) will automatically log in users linking from email notication. NOTE: see the new vm_email.inc.template for new URL format
- Add Call-Forward on Busy application (enable: *90<destination>, disable: *91)
- Upgrade FOP to 0.19.  AMP now writes out op_buttons_additional.conf
- Include AMP version on admin welcome page
- Rework extensions admin
- Add 'allow','disallow' settings for SIP and IAX extensions
- Add 'pickupgroup','callgroup' settings for SIP extensions
- Digital Receptionist voice menus can now be named
- Allow custom goto for Call Groups
- Digital Receptionist wizard check for proper format on custom goto
- Fixed bug which limited AMP to 10 Digital Receptionist menus
- Default outbound numbers now dial via a macro
- Increase verbosity of mysql connection errors
- Fixed upload wav for Ditial Receptionist
- Fix Trunks admin so that it writes FOP config

1.10.005

- Add "Advanced Edit" qualify= option for NEWLY created extensions
- Add support for custom applications in Digital Receptionist admin
- Prevent creation of multiple DIALOUTIDS variables in Trunks admin
- Allow for long 'register' sting in Trunks admin (for new installs only)
- Don't allow an extension number to be changed in Extension admin (force delete/re-create extension)
- Fix counter bug in Digital Receptionist admin

1.10.004

- Added Call Group CID Name prefixing
- Renamed parking.conf to features.conf
- Added condition to dialparties.agi that prevents potential pinning of the CPU
- Allow Digital Receptionist voice recordings to be uploaded in AMP admin
- Added new AMP logo
- Added AMP process control script "amportal"
- Write meetme configuration for IAX and SIP extensions
- Added IAX2 and SIP trunking
- Added "DID Routing"

1.10.003

- Added support for IAX clients
- Upgraded to FOP 0.17
