How to setup Asterisk 1.8.7.1 on CentOS 6 i386 with FreePBX, Hylafax, Avantfax, IAXModem, and A2billing
Asterisk 1.8.7.1, FreePBX 2.8.1, HylaFAX 6.0.5, AvantFAX 3.3.3, IAXModem 1.2.0, A2Billing 1.9.4
If you have any questions or comments please leave a comment or contact me directly email jeffkingsley007 [at]gmail dot com or call 256782280084
DEMO LINES
A2Billing Working Example, US Calling ONLY
Access# 413-206-9861
PIN# 4320101553
IAXModem Fax over IP, Receive Line Only
Fax# 413-455-0155
Asterisk Incoming Line, Live Line
Access# 413-285-3050
#CentOS 6 Asterisk 1.8.8.0 PHP 5.3.2
http://mirror.centos.org/centos-6/6/os/i386
External Links icon
#Install New Kernel < 4GB Ram
yum -y install kernel kernel-devel kernel-headers system-config*
Install New Kernel > 4GB Ram
yum -y install kernel-PAE kernel-PAE-devel system-config*
reboot
#Firewall & Network Settings
setup
#Install Asterisk Dependencies
yum install -y make nano mgetty mgetty-voice cups-lpd perl-DBD-Pg subversion wget python python-devel glibc glibc-devel gcc gcc-c++ flex screen sox libxml2-devel libxml2 yum-utils ncurses-devel subversion libtiff libtiff-devel libusb-devel bison bison-devel ncurses ntp zlib zlib-devel openssl openssl-devel gnutls-devel httpd bind ghostscript-devel speex-devel libogg-devel libvorbis-devel curl-devel unixODBC-devel libtool-ltdl-devel net-snmp-devel bzip2-devel newt-devel lm_sensors-devel openldap-devel postgresql-devel gtk+-devel libtermcap termcap webalizer expect sendmail-cf ImageMagick ImageMagick-devel ghostscript libtiff netpbm-progs libungif cups lpr psutils libc-client dovecot java-1.6.0-openjdk java-1.6.0-openjdk-devel php php-devel php-common php-mysql php-pdo php-soap php-xml php-xmlrpc php-mbstring php-gd php-pear php-process php-imap mysql mysql-devel mysql-server php-mysql mysql-libs libmysqlclient15 mysql-connector-odbc memcached php-pecl-memcache php-adodb
#Ghostscript Fonts Fix
cd /usr/src
wget http://ghostscript.googlecode.com/files/ghostscript-fonts-std-8.11.tar.gz
External Links icon
tar zxf ghostscript-fonts-std-8.11.tar.gz
mv fonts/ /usr/share/ghostscript/
nano /usr/share/ghostscript/8.70/Resource/Init/Fontmap.GS
#REPLACE LINE 92
/Courier-Bold (n022004l.pfa) ;
#Add Asterisk User
useradd -c "Asterisk PBX" -d /var/lib/asterisk asterisk
#Install Webmin Development
cd /usr/src
wget http://download.webmin.com/devel/rpm/webmin-1.571-1.noarch.rpm
External Links icon
wget http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarc...
External Links icon
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
External Links icon
rpm -ivh webmin-1.571-1.noarch.rpm
rpm -ivh epel-release-6-5.noarch.rpm
rpm -ivh remi-release-6.rpm
reboot
cd /usr/src
wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6...
External Links icon
sh setuptools-0.6c11-py2.6.egg
#Install libpri
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.1...
External Links icon
tar zxf libpri-1.4.12.tar.gz
cd libpri-1.4.12
make && make install
#Install DAHDI
cd ..
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/releases/dahdi-l...
External Links icon
tar zxf dahdi-linux-2.5.0.2.tar.gz
cd dahdi-linux-2.5.0.2
make && make install
cd ..
wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/releases/dahdi-t...
External Links icon
tar zxf dahdi-tools-2.5.0.2.tar.gz
cd dahdi-tools-2.5.0.2
./configure && make && make install && make config
#Setup Asterisk directories and startup files
mkdir -p /var/lib/digium/licenses/
chown asterisk /var/lib/php/session/
mkdir -p /etc/udev/permissions.d/
/sbin/udevd
chkconfig --add dahdi
/etc/init.d/dahdi start
chkconfig --add httpd
/etc/init.d/httpd start
chkconfig --add named
/etc/init.d/named start
chkconfig --add mysqld
/etc/init.d/mysqld start
#Install more Dependencies for Asterisk
cd ..
wget http://asterisk.gnuinter.net/files/asterisk-perl-1.01.tar.gz
External Links icon
tar zxf asterisk-perl-1.01.tar.gz
cd asterisk-perl-1.01
perl Makefile.PL
make all
make install
cd ..
wget http://mpg123.de/download/mpg123-1.13.4.tar.bz2
External Links icon
tar jxf mpg123-1.13.4.tar.bz2
cd mpg123-1.13.4
./configure && make && make install
cd ..
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.1.tar.gz
External Links icon
tar zxf lame-3.99.1.tar.gz
cd lame-3.99.1
./configure && make && make install
cd ..
wget http://iksemel.googlecode.com/files/iksemel-1.4.tar.gz
External Links icon
tar zxf iksemel-1.4.tar.gz
cd iksemel-1.4
./configure && make && make install
echo "/usr/local/lib" > /etc/ld.so.conf.d/iksemel.conf
ldconfig
#Install Secure RTP Communications
cd ..
wget http://downloads.sourceforge.net/project/srtp/srtp/1.4.4/srtp-1.4.4.tgz
External Links icon
tar zxf srtp-1.4.4.tgz
cd srtp
./configure && make && make install
#Install Fax Capability
cd ..
wget http://soft-switch.org/downloads/spandsp/spandsp-0.0.6pre18.tgz
External Links icon
tar zxf spandsp-0.0.6pre18.tgz
cd spandsp-0.0.6
./configure --prefix=/usr && make && make install
cd ..
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1...
External Links icon
tar zxf asterisk-1.8.7.1.tar.gz
cd asterisk-1.8.7.1
contrib/scripts/get_mp3_source.sh
./configure
make menuconfig
#### app_mysql, app_saycountpl, cdr_mysql, format_mp3, res_config_mysql, res_srtp
make && make install
#Install g729 Codec
#For Server
cd /usr/lib/asterisk/modules
cat /proc/cpuinfo
wget -O codec_g723.so http://asterisk.hosting.lv/bin/codec_g723-ast18-gcc4-glibc-core2.so
External Links icon
wget -O codec_g729.so http://asterisk.hosting.lv/bin/codec_g729-ast18-gcc4-glibc-core2.so
External Links icon
chmod +x codec_g723.so
chmod +x codec_g729.so
#Install FreePBX
cd /usr/src
wget http://mirror.freepbx.org/freepbx-2.8.1.tar.gz
tar zxf freepbx-2.8.1.tar.gz
cd freepbx-2.8.1
mysqladmin create asterisk
mysqladmin create asteriskcdrdb
mysql asterisk < SQL/newinstall.sql
mysql asteriskcdrdb < SQL/cdr_mysql_table.sql
mysql
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asterisk@localhost
Email links icon
IDENTIFIED BY 'changepassword';
GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost
Email links icon
IDENTIFIED BY 'changepassword';
flush privileges;
\q
pear channel-update pear.php.net
pear install DB MDB2 MDB2#mysql
mkdir -p /var/lib/asterisk/run
#Fix Asterisk Music On Hold
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
#Install FreePBX
cd /usr/src/freepbx-2.8.1
./install_amp
setenforce 0
#Username asterisk Password changepassword
#Change httpd apache user to asterisk
chmod 777 /etc/amportal.conf
cd /var/lib/asterisk
chown -R asterisk:asterisk *
chmod -R 777 *
cd /var/www/html
chown -R asterisk:asterisk *
chmod -R 777 *
chown -R asterisk:asterisk /var/lib/php/session
chown -R asterisk:asterisk /var/spool/asterisk/*
#Edit Asterisk IAX2 Settings Add Other Options in FreePBX
calltokenoptional = 0.0.0.0/0.0.0.0
maxcallnumbers = 16382
requirecalltoken = no
#Asterisk Settings for a2billing
nano /etc/asterisk/cdr_mysql.conf
[global]
hostname = localhost
dbname=asteriskcdrdb
password = changepassword
user = asterisk
userfield=1
loguniqueid=yes
;port=3306
;sock=/tmp/mysql.sock
nano /etc/asterisk/res_mysql.conf
[a2billing]
dbhost = localhost
dbname = a2billing
dbuser = root
dbpass =
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock
#A2Billing Installation
cd /usr/src
mkdir a2billing
cd a2billing
wget --no-check-certificate https://github.com/Star2Billing/a2billing/tarball/v1-current
External Links icon
tar zxf v1-current
cd Star2Billing-a2billing-*
mv * ..
cd ..
rm -rf Star2Billing-a2billing-*
ln -s /usr/src/a2billing/a2billing.conf /etc/a2billing.conf
chmod 777 /etc/asterisk
touch /etc/asterisk/additional_a2billing_iax.conf
touch /etc/asterisk/additional_a2billing_sip.conf
echo \#include additional_a2billing_sip.conf >> /etc/asterisk/sip_custom.conf
echo \#include additional_a2billing_iax.conf >> /etc/asterisk/iax_custom.conf
chown asterisk:asterisk /etc/asterisk/additional_a2billing_iax.conf
chown asterisk:asterisk /etc/asterisk/additional_a2billing_iax.conf
cd addons/sounds/
./install_a2b_sounds.sh
ln -s /usr/src/a2billing/AGI/a2billing.php /var/lib/asterisk/agi-bin/a2billing.php
ln -s /usr/src/a2billing/AGI/lib/ /var/lib/asterisk/agi-bin/
chmod +x /var/lib/asterisk/agi-bin/a2billing.php
ln -s /usr/src/a2billing/customer/ /var/www/html/billing
ln -s /usr/src/a2billing/admin/ /var/www/html/billing
ln -s /usr/src/a2billing/agent/ /var/www/html/billing
ln -s /usr/src/a2billing/common/ /var/www/html/billing
chmod 777 /var/www/html/billing/admin/templates_c/
chmod 777 /var/www/html/billing/agent/templates_c/
chmod 777 /var/www/html/billing/templates_c/
nano /etc/asterisk/manager.conf
[myasterisk] ;FOR a2billing
secret = mycode
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user
#Install Database for A2Billing
cd /usr/src/a2billing/DataBase/mysql-5.x
mysqladmin create a2billing
mysql
GRANT ALL PRIVILEGES ON a2billing.* TO a2billing@localhost
Email links icon
IDENTIFIED BY 'changepassword';
flush privileges;
\q
./install-db.sh
#USE a2billing/changepassword
#Secure MySQL
nano /etc/my.cnf
[mysqld]
bind-address = 127.0.0.1
nano /etc/asterisk/extensions_custom.conf
[a2billing]
; Set by Network staff for manual assignment
exten => _X.,1,AGI(a2billing.php,1)
exten => _X.,n,Wait()
exten => _X.,n,Hangup()
[a2billing-cc]
; Used by Calling Card Platform for incoming calls
exten => _X.,1,AGI(a2billing.php,2)
exten => _X.,n,Wait()
exten => _X.,n,Hangup()
[a2billing-passthrough]
; Set by website signup for automatic assignment
exten => _X.,1,AGI(a2billing.php,3)
exten => _X.,n,Wait()
exten => _X.,n,Hangup()
[a2billing-did]
; This is where inbound DID calls are pointed to if you plan to be a DID service provider
exten => _X.,1,AGI(a2billing.php,1,did)
exten => _x,1,Hangup()
[macro-dialout-trunk-predial-hook]
exten => s,1,GotoIf($["${OUT_${DIAL_TRUNK}:4:4}" = "A2B/"]?custom-freepbx-a2billing,${OUTNUM},1:2)
exten => s,2,MacroExit
[custom-freepbx-a2billing]
exten => _X.,1,AGI(a2billing.php|${OUT_${DIAL_TRUNK}:8})
exten => _X.,n,Hangup()
mkdir /var/run/a2billing
#Crontab
crontab -e
i
# update the currency
0 6 * * * php /usr/src/a2billing/Cronjobs/currencies_update_yahoo.php
# monthly services subscription
0 6 1 * * php /usr/src/a2billing/Cronjobs/a2billing_subscription_fee.php
# check account of users
0 * * * * php /usr/src/a2billing/Cronjobs/a2billing_notify_account.php
# did billing
0 2 * * * php /usr/src/a2billing/Cronjobs/a2billing_bill_diduse.php
# recurring service.
0 12 * * * php /usr/src/a2billing/Cronjobs/a2billing_batch_process.php
# generate invoices and for each user.
0 6 * * * php /usr/src/a2billing/Cronjobs/a2billing_batch_billing.php
# autodialer
*/5 * * * * php /usr/src/a2billing/Cronjobs/a2billing_batch_autodialer.php
# manage alarms
0 * * * * php /usr/src/a2billing/Cronjobs/a2billing_alarm.php
esc
:wq!
mkdir -p /var/lib/a2billing/script
touch /var/log/asterisk/a2billing-daemon-callback.log
touch /var/log/a2billing-daemon-callback.log
touch /var/log/cront_a2b_alarm.log
touch /var/log/cront_a2b_autorefill.log
touch /var/log/cront_a2b_batch_process.log
touch /var/log/cront_a2b_bill_diduse.log
touch /var/log/cront_a2b_subscription_fee.log
touch /var/log/cront_a2b_currency_update.log
touch /var/log/cront_a2b_invoice.log
touch /var/log/a2billing_paypal.log
touch /var/log/a2billing_epayment.log
touch /var/log/api_ecommerce_request.log
touch /var/log/api_callback_request.log
touch /var/log/a2billing_agi.log
LOAD_LOC=/usr/src/a2billing
easy_install sqlalchemy
cd $LOAD_LOC/CallBack/callback-daemon-py/
cp $LOAD_LOC/CallBack/callback-daemon-py/build/lib/callback_daemon/a2b-callback-daemon.rc /etc/init.d/a2b-callback-daemon
chmod +x /etc/init.d/a2b-callback-daemon
python setup.py build
python setup.py bdist_egg
easy_install dist/callback_daemon-1.0.prod-py2.6.egg
chkconfig --add a2b-callback-daemon
service a2b-callback-daemon start
chkconfig a2b-callback-daemon on
#FreePBX Custom Destinations in /etc/asterisk/extensions_custom.conf
Custom Destination: a2billing,${EXTEN},1
Description: a2billing
Custom Destination: a2billing-callback,${EXTEN},1
Description: a2billing-callback
Custom Destination: a2billing-cid-callback,${EXTEN},1
Description: a2billing-cid-callback
Custom Destination: a2billing-did,${EXTEN},1
Description: a2billing-did
Custom Destination: a2billing-sip,${EXTEN},1
Description: a2billing-sip
Custom Destination: a2billing-cc,${EXTEN},1
Description: a2billing-cc
Custom Destination: a2billing-passthrough,${EXTEN},1
Description: a2billing-passthrough
#Install Tesseract
cd /usr/src
wget http://www.leptonica.com/source/leptonica-1.68.tar.gz
External Links icon
tar zxf leptonica-1.68.tar.gz
cd leptonica-1.68
./configure && make && make install
cd ..
wget http://tesseract-ocr.googlecode.com/files/tesseract-3.00.tar.gz
External Links icon
tar zxf tesseract-3.00.tar.gz
cd tesseract-3.00
./configure && make && make install
#Install IAXModem
cd /usr/src
wget http://downloads.sourceforge.net/project/iaxmodem/iaxmodem/iaxmodem-1.2....
External Links icon
tar zxf iaxmodem-1.2.0.tar.gz
cd iaxmodem-1.2.0
./configure
./build static
mkdir -p /etc/iaxmodem
mkdir -p /var/log/iaxmodem
cp iaxmodem /usr/local/sbin/
nano /etc/iaxmodem/ttyIAX1
device /dev/ttyIAX1
owner uucp:uucp
mode 660
port 4570
refresh 300
server 127.0.0.1
peername 111
secret 111password
codec ulaw
cidname Fax
cidnumber 4132853050
nojitterbuffer
#Install Hylafax
cd ..
wget ftp://ftp.hylafax.org/source/hylafax-6.0.5.tar.gz
tar zxf hylafax-6.0.5.tar.gz
cd hylafax-6.0.5
./configure
make
make install
faxsetup
service hylafax restart
nano /var/spool/hylafax/etc/config.ttyIAX1
CountryCode: 1
AreaCode: 413
FAXNumber: 1.413.285.3050
LongDistancePrefix: 1
InternationalPrefix: 011
DialStringRules: "etc/dialrules"
ServerTracing: 1
SessionTracing: 1
RecvFileMode: 0600
LogFileMode: 0600
DeviceMode: 0600
RingsBeforeAnswer: 1
SpeakerVolume: off
GettyArgs: "-h %l dx_%s"
LocalIdentifier: "WTN"
TagLineFont: etc/lutRS18.pcf
TagLineFormat: "From %%l|%c|Page %%P of %%T"
MaxRecvPages: 200
JobReqNoCarrier: 180
JobReqNoAnswer: 180
FaxRcvdCmd: bin/faxrcvd.php
DynamicConfig: bin/dynconf.php
NotifyCmd: bin/notify.php
ModemType: Class1 # use this to supply a hint
ModemResetCmds: "ATH1\nAT+VCID=1" # enables CallID display
ModemReadyCmds: ATH0
Class1AdaptRecvCmd: AT+FAR=1
Class1TMConnectDelay: 400 # counteract quick CONNECT response
Class1RMQueryCmd: "!24,48,72,96" # V.17 fast-train recv doesn't work well
Class1TMQueryCmd: "!24,48,72,96" # V.17 fast-train recv doesn't work well
CallIDPattern: "NMBR="
CallIDPattern: "NAME="
CallIDPattern: "ANID="
CallIDPattern: "NDID="
cd /var/spool/hylafax/etc
chown uucp:uucp config.ttyIAX1
#Edit HylaFAX Verticle Resolution
nano /usr/local/lib/fax/hyla.conf
JobFmt: "%-5j %1a %15o %-15.15e %5P %5D %5i %7z %.25s"
RcvFmt: "%7o %-10t %-25s %-20f %5p %1z %-40e"
PageSize: na-let
VRes: 196
#ASTERISK MANAGER/DB PASSWORD
faxadduser -a changepassword asterisk
faxdeluser localhost
faxdeluser 127.0.0.1
echo 127.0.0.1 >> /var/spool/hylafax/etc/hosts.hfaxd
nano /etc/init/faxgetty1.conf
start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5
stop on runlevel 0
stop on runlevel 1
stop on runlevel 6
respawn
exec /usr/local/sbin/faxgetty ttyIAX1
nano /etc/init/faxgetty2.conf
start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5
stop on runlevel 0
stop on runlevel 1
stop on runlevel 6
respawn
exec /usr/local/sbin/faxgetty ttyIAX2
nano /etc/init/iaxmodem1.conf
start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5
stop on runlevel 0
stop on runlevel 1
stop on runlevel 6
respawn
exec /usr/local/sbin/iaxmodem ttyIAX1
nano /etc/init/iaxmodem2.conf
start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5
stop on runlevel 0
stop on runlevel 1
stop on runlevel 6
respawn
exec /usr/local/sbin/iaxmodem ttyIAX2
nano /etc/rc.local
/usr/local/sbin/amportal start
initctl start faxgetty1
initctl start faxgetty2
initctl start faxgetty3
initctl start faxgetty4
initctl start iaxmodem1
initctl start iaxmodem2
initctl start iaxmodem3
initctl start iaxmodem4
#Install AvantFAX
cd /usr/src
wget http://downloads.sourceforge.net/project/avantfax/avantfax-3.3.3.tgz
External Links icon
tar zxf avantfax-3.3.3.tgz
cd avantfax-3.3.3
chown -R asterisk:asterisk *
cd avantfax
ln -s /usr/src/avantfax-3.3.3/avantfax /var/www/html/fax
chown -R asterisk:asterisk /var/www/html/fax
chmod -R 0770 /var/www/html/fax/tmp /var/www/html/fax/faxes
chown -R asterisk:uucp /var/www/html/fax/tmp /var/www/html/fax/faxes
chown -R asterisk:asterisk /var/lib/php/session
mv /usr/local/bin/faxcover /usr/local/bin/faxcover.old
ln -s /var/www/html/fax/includes/faxcover.php /usr/local/bin/faxcover
ln -s /var/www/html/fax/includes/faxrcvd.php /var/spool/hylafax/bin/faxrcvd.php
ln -s /var/www/html/fax/includes/dynconf.php /var/spool/hylafax/bin/dynconf.php
ln -s /var/www/html/fax/includes/notify.php /var/spool/hylafax/bin/notify.php
pear install --alldeps Mail Net_SMTP Mail_mime MDB2_driver_mysql pear/Auth_SASL
cd ..
mysql < create_user.sql
mysql avantfax < create_tables.sql
nano /etc/cron.d/avantfax
# runs once an hour to update the phone book
0 * * * * /var/www/html/fax/public_html/includes/phb.php
# runs once a day to remove old files
0 0 * * * /var/www/html/fax/public_html/includes/avantfaxcron.php -t 2
cp /var/www/html/fax/includes/local_config-example.php /var/www/html/fax/includes/local_config.php
#Edit local_config.php
nano /var/www/html/fax/includes/local_config.php
#Time Server
time-b.timefreq.bldrdoc.gov
#FREEPBX
Custom Trunk
A2B local/$OUTNUM$@a2billing/n
8622466682 local/$OUTNUM$@8622466682
Google gtalk/8622466682/+$OUTNUM$@voice.google.com
Sip Trunk Free Toll-Free Calling
TollFree voiper.ipkall.com (10 digit) proxy.ideasip.com (11 digit)
Comments
Post a Comment