On its own, the core FreePBX installation is just a framework. Every function performed by FreePBX, from inbound routing to voicemail, is provided by a module that plugs into this framework. FreePBX provides more than fifty modules, each providing a specific set of functions. When administering a FreePBX system, Apache serves as a web interface for each module. The modules store their configuration in a database, which the FreePBX framework processes and then writes out to the Asterisk configuration files. The configuration files are read by Asterisk, making the configuration from the FreePBX modules live. This process is shown in the following figure:
Everything in FreePBX is a module, including the base components—Core Framework, Localizations, Asterisk Recording Interface, and Flash Operator Panel. This modularized structure is how new features are added to the system, as well as how updates are installed.
Splitting of functionality into modules also...