A2billing 1.9.4 Installation on Centos 6 !

Installation was tested using below given applications :
CentOS Linux v6
Asterisk v1.8
A2Billing v1.9.4
First update your system :
#yum update
Install additional required packages:
#yum -y install php-mcrypt perl-DBD-Pg
 
Change php folder permission:
#chown -R asterisk:asterisk /var/lib/php/session
 
Add php timezone:
#nano +639 /etc/php.iniUncomment date.timezone =
Use your area time zone from here:  your timezone from this link
 Restart apache for the changes to take effect
#service httpd restart
 
Get a2billing source
cd /usr/src
wget –no-check-certificate https://github.com/Star2Billing/a2billing/tarball/v1-current
Un-zip a2billing source:
#tar zxvf Star2Billing-a2billing-v1-current-*.tar.gz
Rename the directory:
#mv Star2Billing-a2billing-*  a2billing
Prepare MySQL database for a2billing:
cd /usr/src/a2billing
(a2billing is our renamed directory)
If you did not create a mysql root password during the asterisk install you should create it now.
mysqladmin -u root password ‘myrootpass’  (or any password)
Use this password for below commands :
#mysql -u root -p < DataBase/mysql-5.x/a2billing-createdb-user.sql
Which will create:
Database name: mya2billing
Database user: a2billinguser
Database user password: mya2bpass (or any)
Now run script to create tables and insert some basic configuration data
#cd /usr/src/a2billing/DataBase/mysql-5.x
./install-db.sh
Answer questions as follows:
Enter Database Name: mya2billing
Enter Hostname: localhost
Enter UserName: root
Enter Password: ‘myrootpass’
Now check that the database and 97+ tables have been created:
#mysql -u root -p mya2billing
>show tables;

+—————————+
| Tables_in_mya2billing     |
+—————————+
| cc_agent                  |
| cc_agent_commission       |
.
.
.
.
.
| cc_version                |
| cc_voucher                |
+—————————+
97 rows in set (0.00 sec)
>exit
cp /usr/src/a2billing/a2billing.conf /etc/
nano /etc/a2billing.conf
Make sure the following parameters are set as shown.
[database]
hostname = localhost
port = 3306
user = a2billinguser
password = mya2bpass
dbname = mya2billing
dbtype = mysql
Create files and set permissions
Only required if not using Asterisk Realtime.  #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 -Rf asterisk:asterisk /etc/asterisk/additional_a2billing_iax.conf
#chown -Rf asterisk:asterisk /etc/asterisk/additional_a2billing_sip.conf
Run sound installation script :
#cd /usr/src/a2billing/addons/sounds
./install_a2b_sounds.sh
#chown -R asterisk:asterisk /var/lib/asterisk/sounds/
Add following settings to /etc/asterisk/manager.conf
[myasterisk]
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
Set up a2billing web folder:
#mkdir /var/www/html/a2billing
#cp -Rf /usr/src/a2billing/admin /var/www/html/a2billing/admin
#cp -Rf /usr/src/a2billing/agent /var/www/html/a2billing/agent
#cp -Rf /usr/src/a2billing/customer /var/www/html/a2billing/customer
#cp -Rf /usr/src/a2billing/common /var/www/html/a2billing/common
#chown -R asterisk:asterisk /var/www/html/a2billing
#chmod 755 /var/www/html/a2billing/admin/templates_c
#chmod 755 /var/www/html/a2billing/customer/templates_c
#chmod 755 /var/www/html/a2billing/agent/templates_c
 
Set up AGI:
#mkdir /var/lib/asterisk/agi-bin
#cd /usr/src/a2billing/AGI               
#cp a2billing.php /var/lib/asterisk/agi-bin/
#chown -R asterisk:asterisk /var/lib/asterisk/agi-bin
#chmod 755 /var/lib/asterisk/agi-bin/a2billing.php
#ln -s /var/www/html/a2billing/common/lib /var/lib/asterisk/agi-bin/lib
 
Add the following extensions to /etc/asterisk/extensions.conf. : 
*********************************************************************
[a2billing]
exten => _X.,1,Answer
exten => _X.,n,Wait(1)
exten => _X.,n,deadAGI(a2billing.php,1)
exten => _X.,n,Hangup
 
[a2billing-callback]
exten => _X.,1,deadAGI(a2billing.php,1,callback)
exten => _X.,n,Hangup
 
[a2billing-all-callback]
exten => _X.,1,deadAGI(a2billing.php,1,all-callback,34) ;last parameter is the callback area code
exten => _X.,n,Hangup
 
 ***********************************************************************
Copy cron files to some permanent location such as /usr/local :
#mkdir -p /usr/local/a2billing
#cp -R /usr/src/a2billing/Cronjobs /usr/local/a2billing/
#ln -sf /var/www/html/a2billing/common/lib /usr/local/a2billing/Cronjobs/lib
#chown -R asterisk:asterisk /usr/local/a2billing
 
Add the cron jobs to /var/spool/cron/asterisk :
 
# update the currency table
0 6 * * * php /usr/local/a2billing/Cronjobs/currencies_update_yahoo.php
# manage the monthly services subscription
0 6 1 * * php /usr/local/a2billing/Cronjobs/a2billing_subscription_fee.php
# To check account of each Users and send an email if the balance is less than the user have choice.
0 * * * * php /usr/local/a2billing/Cronjobs/a2billing_notify_account.php
# this script will browse all the DID that are reserve and check if the customer need to pay for it.
# bill them or warn them per email to know if they want to pay in order to keep their DIDs.
0 2 * * * php /usr/local/a2billing/Cronjobs/a2billing_bill_diduse.php
# This script will take care of the recurring service.
0 12 * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_process.php
# To generate invoices and for each user.
0 6 * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_billing.php
# to proceed the autodialer
*/5 * * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_autodialer.php
# manage alarms
0 * * * * php /usr/local/a2billing/Cronjobs/a2billing_alarm.php
# manage archive
0 12 * * * php /usr/local/a2billing/Cronjobs/a2billing_archive_data_cront.php
#autorefill
0 10 21 * * php /usr/local/a2billing/Cronjobs/a2billing_autorefill.php
15 * * * * php /usr/local/a2billing/Cronjobs/a2billing_batch_cache.php
 
Add log files:
 
#mkdir -p /var/log/a2billing
touch /var/log/a2billing/cront_a2b_alarm.log
touch /var/log/a2billing/cront_a2b_autorefill.log
touch /var/log/a2billing/cront_a2b_batch_process.log
touch /var/log/a2billing/cront_a2b_archive_data.log   
touch /var/log/a2billing/cront_a2b_bill_diduse.log   
touch /var/log/a2billing/cront_a2b_subscription_fee.log   
touch /var/log/a2billing/cront_a2b_currency_update.log   
touch /var/log/a2billing/cront_a2b_invoice.log   
touch /var/log/a2billing/cront_a2b_check_account.log   
touch /var/log/a2billing/a2billing_paypal.log
touch /var/log/a2billing/a2billing_epayment.log
touch /var/log/a2billing/a2billing_api_ecommerce_request.log
touch /var/log/a2billing/a2billing_api_callback_request.log
touch /var/log/a2billing/a2billing_api_card.log
touch /var/log/a2billing/a2billing_agi.log
#chown -R asterisk:asterisk /var/log/a2billing
 
Log into the webpage
http://<ip-addr>/a2billing/admin
 
user: root 
pass: changepassword
 
Change password
 
After installation required some necessary setting : 
Go into System settings>Global list. Change a2billing ver  “1_6″
Go into System settings>Global search for “realtime”.  Change that setting to “no”.
 
Now restart asterisk:
#asterisk -r
# CLI>core reload
 
####################################################################
   ################################################################
          ##########################################################
                                                 *****************************************

Comments

Popular posts from this blog

PHPMixBill V5 mikrotik Billing Solutions

How to install Asterisk and A2billing on Ubuntu Server 12.04LTS

odbcinst: SQLGetPrivateProfileString failed with