|
FreePBX is a dynamic software package that uses the power of Linux, Apache, MySQL, and PHP to bring form to the function of Asterisk. Before we dive into the heart of administering a FreePBX system, we have a few steps to complete in order to install and configure these frameworks. Though going from a fresh Linux install to a working Asterisk and FreePBX phone server is a relatively straightforward process, it is advisable to be careful. The steps in this tutorial form the foundation of your server and their successful completion is critical to the stability of your Asterisk and FreePBX installations.
While every deployment is going to be different and have different requirements, the steps in this tutorial will provide installation instructions for CentOS 5.2 and Ubuntu Server 8.10.
Contents [[url=]show[/url]]
| Installing FreePBX on CentOS 5.2The Community Enterprise Operating System (CentOS) is a secure, stable OS based on Red Hat Enterprise Linux. CentOS is a popular choice for Asterisk/FreePBX systems. CentOS 5.2 should be installed with the following packages selected:
* Applications
Editors
Text-based Internet
* Development
Development Libraries
Development Tools
* Servers
DNS
Mail Server
MySQL Database Server
Server Configuration Tools
Web Server
* Base System
Administration Tools
Base
All of the other groups and packages should be unchecked during installation, as they are not required and may have an impact on the performance. SELinux should also be disabled during CentOS installation.
Once you have a clean CentOS 5.2 install to work from, the prerequisite packages can be installed.
Prerequisite packagesFreePBX requires several prerequisite packages for being installed and functioning properly. Most prerequisite packages are not included in standard Linux distribution installations, but all of them should be available in your distribution's package management system.
The first important step is to update your system, ensuring that all security updates are installed and that all the installed packages are at their latest version. To update all the installed packages on CentOS 5.2, log in as root and type the following command into the system console:
yum update -y
The system will proceed to download and install any packages that have been updated since the release of your operating system. Depending on how many updates are required and the speed of your Internet connection, this process can take anywhere from a few minutes to several hours.
Once the system is fully up to date, it is a good idea to reboot so that the updated services can restart, and newer kernels can be booted. In order to reboot, type the following into the console:
shutdown -r now
Now that the system is up to date, the required prerequisite libraries and packages can be installed. As long as the correct base packages were selected during the installation of CentOS, FreePBX will only require the following additional packages:
Package
| Purpose
| LibTIFF development headers
| Used for dynamic generation of images (such as call usage graphs)
| PHP GD library
| As with LibTIFF, the GD libraries are used by PHP to dynamically generate images
| PHP MySQL library
| Allows FreePBX to read and write to its MySQL database backend
| Kernel or SMP kernel development headers
| Used to allow DAHDI to build its modules against the running kernel
| Audio file development headers
| Allows FreePBX to transcode recordings and music-on-hold files when they are uploaded
| MySQL development headers
| These headers are required when building applications that use MySQL databases (FreePBX is based on a MySQL database backend)
| To install the required prerequisite packages for CentOS 5.2, log in as root and type the following:
yum install libtiff-devel php-gd php-mysql php-pear kernel-devel kernel-smp-devel audiofile-devel mysql-devel -y
Note that all of the above is a single yum command, and should be typed as if it was written on a single line.[/table]Now that all of the prerequisite packages are installed, we can install Asterisk. First, switch to the /usr/src directory by typing the following into the console:
| cd /usr/src
| Install Asterisk from sourceMany Linux distributions provide Asterisk and its dependent libraries in their package management systems. It is recommended that Asterisk, Asterisk-Addons, LibPRI, and Zaptel should always be compiled and installed from source. This avoids improperly built or outdated installations.[table] |
A core Asterisk installation consists of four components Asterisk, Asterisk-Addons, DAHDI, and LibPRI:
- "Asterisk" is the main Asterisk routing engine
- Asterisk-Addons component contains commonly used Asterisk applications (such as the application that writes CDR records to a MySQL database, which FreePBX uses)
- DAHDIis the Digium Asterisk Hardware Device Interface package, which allows Asterisk to communicate with additional telephony hardware devices (such as analog trunk cards)
- The LibPRI package enables Asterisk to interface with PRI, BRI, and QSIG trunks
Type the following into the console to download the source code for Asterisk, Asterisk-Addons, DAHDI, and LibPRI:
wget http://downloads.digium.com/pub/ ... -1.4-current.tar.gz
wget http://downloads.digium.com/pub/ ... -1.4-current.tar.gz
wget http://downloads.digium.com/pub/ ... lete-current.tar.gz
wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz
Extract the source code:
tar zxf asterisk-1.4-current.tar.gz
tar zxf asterisk-addons-1.4-current.tar.gz
tar zxf dahdi-linux-complete-current.tar.gz
tar zxf libpri-1.4-current.tar.gz
Compile and install the DAHDI telephony hardware interface modules:
cd dahdi-linux-complete-2.*
make all
make install
make config
Compile and install Asterisk with the following commands:
cd ../asterisk-1.4.*
./configure
make install
make samples
Compile and install the Asterisk-Addons modules
(contains the application that FreePBX uses to write call
detail records to the MySQL database):
cd ../asterisk-addons-1.4.*
./configure
make install
Compile and install the LibPRI modules for PRI, BRI, and QSIG interface support:
cd ../libpri-1.4.*
make
make install
|
|