FreePbx

FreePBX(Private Branch Exchange) is a web-based open source GUI (graphical user interface) that controls and manages Asterisk (PBX), an open source communication server. FreePBX is authorized under the GNU General Public License (GPL), an open source license. FreePBX can be installed manually or as part of the pre-configured FreePBX Distro that includes the system OS, Asterisk, FreePBX GUI and assorted dependencies.

Free PBX based on asterisk, Opensource has developed fully packed solution with custom panel where user and extension and applicaiton are managed. And trixbox is auto start CD which install all these thing into you system automatically. It can support the on a single PC P4 2.0GHz 1U servers for $800 price will able to support atleast 150-200 user where all user are not making simultaneously call, it can support 50-70 calls, it is not adivcable to have single high end server ruther having multiple such system as it will impact lesser to you infrastructure then having one very big m/c which fails.

Key Feature:

  • Add or change extension and voicemail accounts in seconds
  • Native support of SIP, IAX, and ZAP clients
  • Supports all Asterisk supported trunk technologies
  • Reduce long distance costs with LCR
  • Route incoming calls based on time-of-day
  • Create interactive Digital Receptionist (IVR) menus
  • Upload custom on-hold music (MOH)
  • Search company directory, based on first or last name
  • Save audio recordings of calls
  • View call detail reporting with asterisk-stat
  • View extension and trunk status with Flash Operator Panel
  • View conversation recordings with Asterisk Recording Interface (ARI)

Install and Configure FreePBX

Download and extract FreePBX

1
2
3
4
cd /usr/src
// set download path(url) of freepbx file 
wget download_path/freepbx-12.0-latest.tgz
tar vxfz freepbx-12-latest.tgz

Set ownership permissions

1
2
3
4
5
6
7
chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/{lib,log,spool}/asterisk
chown -R asterisk. /usr/lib/asterisk
chown -R asterisk. /usr/lib64/asterisk
mkdir /var/www/html
chown -R asterisk. /var/www/

A small modifications to Apache

1
2
3
4
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_orig
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf
service httpd restart

Configure Asterisk database in MYSQL

1
2
3
4
cd /usr/src/freepbx
export ASTERISK_DB_PW=amp109
mysqladmin -u root create asterisk 
mysqladmin -u root create asteriskcdrdb

Set permissions on MYSQL database

1
2
3
mysql -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
mysql -u root -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
mysql -u root -e "flush privileges;"

Restart Asterisk and install FreePBX

1
2
3
4
5
6
7
8
cd /usr/src/freepbx
./start_asterisk start
./install_amp --installdb --username=asteriskuser --password=${ASTERISK_DB_PW}
amportal chown
amportal a ma installall
amportal a reload
amportal a ma refreshsignatures
amportal chown

Finally, start FreePBX

1
2
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
amportal restart