FreePBX Module System

The module system is designed to be simple, powerful, and easy to use existing code with. It only imposes a minimal API, with just a few requirements to make it work. See ApiModules for more information. There is also a ModuleTutorial.

Modules will be as follows:

  • Core - consists of stuff absolutely required to get everything working:
    • Administrators (who can access the Web Interface)
    • Users
    • Devices
    • Trunks
    • Outbound Routes
    • Inbound Routes (DIDs and Inbound, combined)
    • Music-on-hold
    • General Settings
  • Conferences
  • Ring Groups
  • Queues
  • IVR (Digital receptionist)
  • Recordings
  • Time Conditions

The Module System will also allow for 3rd party modules to be dropped into the system. 3rd Party Modules can supply their own translations - see Module i18n.

Remaining issues with the Module System:

  • Upload & Extract - the Module Admin page should have an Upload form, where a module (a .zip) can be uploaded and automatically installed. Ultimately, the ability to browse an online repository here at freepbx.org from the admin would be nice.
  • Executable Scripts - some modules may require that scripts be executed on the system. There are some things to consider:
    • Executables stored in ModuleSubdirectories should be protected from web access
    • Scripts that need to run when Applying Changes to the system can probably link into the POST_RELOAD feature in amportal.conf
    • Scripts that need to run persistently can perhaps be integrated into the sbin/amportal? script