/
Installing FreePBX 12 on Ubuntu Server 14.04 LTS

Installing FreePBX 12 on Ubuntu Server 14.04 LTS



 

 

Initial System Setup

When installing the machine, at package selection make sure you pick - at least - OpenSSH Server, and 'LAMP Packages'.  This installs the base packages required.

ubuntu-14.04-software-selection.png

 

Configure your root password.

sudo passwd root

Switch to the Root User

Please  note: THIS IS IMPORTANT!  You must run the entire process as root. Attempting to use 'sudo' later on will not work. Please don't ignore this. You must run this command to switch to an interactive root shell.

sudo -i

Update Your System

apt-get update && apt-get upgrade -y 

Install Required Dependencies

apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server\   mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox\   libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3\   libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev uuid uuid-dev\   libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev\   libspandsp-dev libmyodbc   

Reboot server

reboot

Install Dependencies for Google Voice (if required)

You may skip this section if you do not require Google Voice support.

Install iksemel

cd /usr/src wget https://iksemel.googlecode.com/files/iksemel-1.4.tar.gz tar xf iksemel-1.4.tar.gz cd iksemel-* ./configure make make install

Install and Configure Asterisk

Download Asterisk source files.

cd /usr/src wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-12-current.tar.gz git clone https://github.com/akheron/jansson.git git clone https://github.com/asterisk/pjproject.git

Compile and install DAHDI.

If you don't have any physical hardware you don't need to run these commands

cd /usr/src tar xvfz dahdi-linux-complete-current.tar.gz cd dahdi-linux-complete-* make all make install make config

Compile and install LIBPRI.

If you don't have any physical hardware you don't need to run these commands

cd /usr/src tar xvfz libpri-current.tar.gz cd libpri-* make make install

 

Compile and install pjproject

cd /usr/src/pjproject ./configure --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr make dep make make install

Compile and Install jansson

cd /usr/src/jansson autoreconf -i ./configure make make install

Compile and install Asterisk

cd /usr/src tar xvfz asterisk-12-current.tar.gz cd asterisk-* ./configure contrib/scripts/get_mp3_source.sh make menuselect

You will be prompted at the point to pick which modules to build. Most of them will be enabled, but if you want to have MP3 support, you need to manually turn on 'format_mp3' on the first page.

ubuntu-14.04-enable-mp3.png

 

After selecting 'Save & Exit' you can then continue

make make install make config ldconfig

 

Install Asterisk-Extra-Sounds

Note that this installs the (8khz) 'wav' soundfiles. If you're planning on running G722 (High Definition 'Wideband') audio, you also want to download the 722 codec pack, which is the second part. If you're not planning on using Wideband, you can skip that part.

cd /var/lib/asterisk/sounds wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz tar xfz asterisk-extra-sounds-en-wav-current.tar.gz rm -f asterisk-extra-sounds-en-wav-current.tar.gz # Wideband Audio download wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz tar xfz asterisk-extra-sounds-en-g722-current.tar.gz rm -f asterisk-extra-sounds-en-g722-current.tar.gz

Install and Configure FreePBX

Download and extract FreePBX.

wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-12.0-latest.tgz tar vxfz freepbx-12-latest.tgz cd freepbx

Now create the Asterisk user and set ownership permissions.

useradd -m asterisk chown asterisk. /var/run/asterisk chown -R asterisk. /etc/asterisk chown -R asterisk. /var/{lib,log,spool}/asterisk chown -R asterisk. /usr/lib/asterisk rm -rf /var/www/html

A few small modifications to Apache.

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

Configure ODBC

Edit /etc/odbcinst.ini and add the following. Note that this command assumes you are installing to a new machine, and that the file is empty. If this is not a freshly installed machine, please manually verify the contents of the file, rather than just copying and pasting the lines below. The 'EOF' does no go in the file, it simply signals to the 'cat' command that you have finished pasting.

cat >> /etc/odbcinst.ini << EOF [MySQL] Description = ODBC for MySQL Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so FileUsage = 1    EOF

You may need to verify these paths, if you're not on a x86_64 machine. You can use the command `find / -name libmyodbc.so` to verify the location

Edit or create /etc/odbc.ini and add the following section. Note that, again, this command assumes you are installing to a new machine, and the file is empty. Please manually verify the contents of the files if this is not the case.

cat >> /etc/odbc.ini << EOF [MySQL-asteriskcdrdb] Description=MySQL connection to 'asteriskcdrdb' database driver=MySQL server=localhost database=asteriskcdrdb Port=3306 Socket=/var/run/mysqld/mysqld.sock option=3    EOF

Prepare MySQL

You now need to generate a secure password for FreePBX to use to talk to MySQL.

export ASTERISK_DB_PW=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 - | cut -c2-18`

That will generate a quasi-random 16 character long password, which should be secure enough for most things.  If you had set the MySQL 'root' password to be something when you were installing the machine, you will need to add a -pyourpassword flag to the following lines

Configure Asterisk database in MYSQL. 

mysqladmin -u root create asterisk mysqladmin -u root create asteriskcdrdb

Set permissions on MYSQL database.

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.

./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, one last mod and start FreePBX.

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

Start FreePBX

Navigate: 

Now FreePBX is installed, it will be available via Apache. Open up your web browser and visit:

    http://Address.Of.FreePBX.Server/admin

Return to Documentation Home I Return to Sangoma Support