Tips: VoIP, PBX, Telephony

PBX with Ubuntu, Asterisk, and HylaFax

If you are anything like us, you would rather Ubuntu be your base OS distribution but like, or need, the latest and greatest software features of Asterisk. This is why I put this little HOWTO together on how to install Asterisk 11.8. I’ve tried to use as many as prepackaged requirement as possible that would work for us. Then also make things even easier for you with FreePBX web based GUI. After we got this up and running I did not like the fax options I had and wanted something more robust. IAXmodem with Hylafax did the trick.

Install Ubuntu 12.04 LTS server 64bit

First install a base Ubuntu 12.04 64bit LTS and just add ssh so you can login remotely. I’m guessing this will work with the 32bit also, but we are using 64bit here.

Then reboot and login to your new install.

Upgrade the distribution

sudo -i
apt-get update
apt-get dist-upgrade

reboot again if needed.

shutdown -r now

Install prerequisites

Note: This worked on Ubuntu 12.04 LTS. I know package names have changed on 14.04 but they give you plenty of hints to make the correct changes.

sudo apt-get install build-essential libncurses-dev \
libz-dev libssl-dev libxml2-dev libsqlite3-dev \
libspeex-dev libspeexdsp-dev libogg-dev libusb-dev \
libvorbis-dev libasound2-dev portaudio19-dev uuid-dev \
unixodbc-dev libsqlite0-dev libmysqlclient15-dev \
libgmime-2.6-dev liblua5.1-0-dev libopenh323-dev \
libgtk2.0-dev libmysqlclient-dev libradiusclient-ng-dev \
freetds-dev libiksemel-dev libcorosync-dev libnewt-dev \
libical-dev libspandsp-dev libjack-dev libresample-dev \
libsrtp-dev libgsm1-dev libedit-dev libldap-dev php5-curl \
openssh-server apache2 mysql-server mysql-client php5 \
php5-cli php5-mysql php-pear php-db php5-gd curl mpg123 \
sqlite3 libsqlite3-dev pkg-config automake autoconf \
libss7-dev libsdl-image1.2-dev doxygen libtool libxml2-dev \
libbluetooth-dev libneon27-dev binutils-dev libpopt-dev \
libpri-dev libnewt-dev libc-client-dev libsnmp-dev git \
libvpb-dev libcurl4-openssl-dev bison uuid subversion \
libpq-dev lua5.1 sox flex

Manual Installs

dahdi

Ubuntu’s dahdi did not install for me so I manually installed.

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
make all
make install
make config (optional)
Asterisk – The PBX
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
tar zxvf aterisk-11*.tar.gz
cd asterisk-11
./configure
contrib/scripts/get_mp3_source.sh
make menuselect
make
make install
make config
make progdocs

 

FreePBX – The Web GUI

cd /usr/src
wget http://mirror.freepbx.org/freepbx-2.11.0.tar.gz
tar zxvf freepbx-2.11.0.tar.gz

adduser asterisk --disabled-password --no-create-home --gecos "Asterisk User"
chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/{lib,log,spool}/asterisk
chown -R asterisk. /usr/lib/asterisk
mkdir /var/www/html
chown -R asterisk. /var/www/

 

php modifications

Edit php.ini

vi /etc/php5/apache2/php.ini

find – upload_max_filesize and make it 120M

upload_max_filesize = 120M

 

apache modifications

apache config

vi /etc/apache2/envvars

and change

export APACHE_RUN_USER=asterisk
export APACHE_RUN_GROUP=asterisk

Get owner fixed

chown -R asterisk. /var/lock/apache2

Restart the apache service

service apache2 restart

mysql

mysqladmin -u root create asterisk -p
mysqladmin -u root create asteriskcdrdb -p
cd /usr/src/freepbx-2.11.0
mysql -u root asterisk -p < SQL/newinstall.sql
mysql -u root asteriskcdrdb -p < SQL/cdr_mysql_table.sql

Make sure you change ‘amp109’ to what you configure in $asterisk_pass = “amp109” in install_amp

mysql -u root -p -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'amp109';"
mysql -u root -p -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'amp109';"
mysql -u root -p -e "flush privileges;"

 

export ASTERISK_DB_PW=amp109
./install_amp --username=asteriskuser --password=$ASTERISK_DB_PW --webroot /var/www
amportal a ma installall
amportal a reload
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
amportal start
ln -s /var/www/html/admin /var/www/admin
ln -s /var/www/html/recordings /var/www/recordings

Now you are ready to configure your PBX with the FreePBX web interface http://yourserver/html

HylaFax setup will be in another post. Hint we found the most stable way to do fax over VoIP was with HylaFax and IAXmodem. Don’t believe all the post all over the Internet that say VoIP can not do fax transmissions. We have fewer problems with this setup than we had with the analog modem setup.