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. Ulitmately, 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 persitantly can perhaps be integrated into the sbin/amportal? script
