Thursday, November 24, 2011

A2Billing 1.6.0 Stable install script

#!/bin/sh

DATETAG=`date +%Y%m%d%H%k%M%S`

echo "This is the Ubuntu A2Billing setup script"
echo ""

# Step1: Removing A2billing Old files

rm -f -R /var/www/html/a2billing/
rm -f -R /var/www/html/customer/
rm -f -R /var/lib/asterisk/agi-bin/a2billing.php
rm -f -R /var/lib/asterisk/agi-bin/libs_a2billing/
rm -f -R /var/lib/asterisk/agi-bin/lib/
rm -f -R /etc/asterisk/additional_a2billing_iax.conf
rm -f -R /etc/asterisk/additional_a2billing_sip.conf
rm -f /etc/asterisk/a2billing.conf
rm -f /etc/a2billing.conf
rm -f -R /var/www/html/agent/
rm -f -R /var/www/html/common/
rm -f -R /usr/src/a2billing/

# Drop the old database (if it exists)
mysqladmin drop mya2billing -u root -pxxxxx


# Step2: A2billing installation
cd /usr/src
mkdir a2billing
cd a2billing
wget http://www.asterisk2billing.org/downloads/A2Billing_1.6.0.tar.gz
tar -xzf A2Billing_1.6.0.tar.gz
chown -R root:root /usr/src/a2billing


mysql -u root -pxxxxx < /usr/src/a2billing/DataBase/mysql-5.x/a2billing-createdb-user.sql
mysql mya2billing -u root -pxxxxx < /usr/src/a2billing/DataBase/mysql-5.x/a2billing-schema-v1.4.0.sql

mysql mya2billing -u root -pxxxxx </usr/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.0-to-v1.4.1.sql
mysql mya2billing -u root -pxxxxx </usr/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.1-to-v1.4.2.sql
mysql mya2billing -u root -pxxxxx </usr/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.2-to-v1.4.3.sql
mysql mya2billing -u root -pxxxx </usr/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.3-to-v1.4.4.sql
mysql mya2billing -u root -pxxxxx </usr/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.4-to-v1.4.4.1.sql
mysql mya2billing -u root -pxxxxx </usr/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.4.1-to-v1.4.5.sql
mysql mya2billing -u root -pxxxxx </usr/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.5-to-v1.5.0.sql
mysql mya2billing -u root -pxxxxx </usr/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.5.0-to-v1.5.1.sql
mysql mya2billing -u root -pxxxxx </usr/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.5.1-to-v1.6.0.sql

# Step3: A2billing web interfaces installation

cp -rf /usr/src/a2billing/customer /var/www/html/a2customer
chmod 777 /var/www/html/a2customer/templates_c
cp -rf /usr/src/a2billing/agent /var/www/html
chmod 777 /var/www/html/agent/templates_c
cp -rf /usr/src/a2billing/admin /var/www/html/a2billing
chmod 777 /var/www/html/a2billing/templates_c
cp -Rf /usr/src/a2billing/common /var/www/html

cp /usr/src/a2billing/AGI/a2billing.php /var/lib/asterisk/agi-bin/
cp -rf /usr/src/a2billing/common/lib /var/lib/asterisk/agi-bin/
chmod +x /var/lib/asterisk/agi-bin/a2billing.php
chown -R asterisk:asterisk /var/lib/asterisk/agi-bin

# Step4: A2billing configuration files
cp /usr/src/a2billing/a2billing.conf /etc/asterisk
chown asterisk:asterisk /etc/asterisk/a2billing.conf
ln -sf /etc/asterisk/a2billing.conf /etc/a2billing.conf

sed -i "s/\(port *= *\)\(.*\)/\13306/" /etc/asterisk/a2billing.conf
sed -i "s/\(user *= *\)\(.*\)/\1a2billinguser/" /etc/asterisk/a2billing.conf
sed -i "s/\(password *= *\)\(.*\)/\1a2billing/" /etc/asterisk/a2billing.conf
sed -i "s/\(dbname *= *\)\(.*\)/\1mya2billing/" /etc/asterisk/a2billing.conf


mkdir -p /var/lib/asterisk/mohmp3/acc_1
mkdir -p /var/lib/asterisk/mohmp3/acc_2
mkdir -p /var/lib/asterisk/mohmp3/acc_3
mkdir -p /var/lib/asterisk/mohmp3/acc_4
mkdir -p /var/lib/asterisk/mohmp3/acc_5
mkdir -p /var/lib/asterisk/mohmp3/acc_6
mkdir -p /var/lib/asterisk/mohmp3/acc_7
mkdir -p /var/lib/asterisk/mohmp3/acc_8
mkdir -p /var/lib/asterisk/mohmp3/acc_9
mkdir -p /var/lib/asterisk/mohmp3/acc_10
chmod 777 /var/lib/asterisk/mohmp3/acc_*
chown -R asterisk:asterisk /var/lib/asterisk/mohmp3/

# A2billing Extra sounds
cd /usr/src/a2billing/addons/sounds
./install_a2b_sounds.sh

# Step6: Asterisk files
cd /etc/asterisk/
touch additional_a2billing_iax.conf
touch additional_a2billing_sip.conf
touch extensions_a2billing.conf

echo "#include additional_a2billing_sip.conf" >> /etc/asterisk/sip_custom.conf
echo "#include additional_a2billing_iax.conf" >> /etc/asterisk/iax_custom.conf
echo -e >> /etc/asterisk/extensions_custom.conf
echo "#include extensions_a2billing.conf" >> /etc/asterisk/extensions_custom.conf

# Step7: A2billing file permissions
chmod 666 /etc/asterisk/additional_a2billing_iax.conf
chmod 666 /etc/asterisk/additional_a2billing_sip.conf
chmod 666 /etc/asterisk/extensions_a2billing.conf
chown -R asterisk:asterisk /etc/asterisk/
chown -R asterisk:asterisk /var/www/html/common
chown -R asterisk:asterisk /var/www/html/a2billing
chown -R asterisk:asterisk /var/www/html/a2customer
chown -R root:root /var/www/agent
chown -R asterisk:asterisk /var/lib/asterisk/


# Cronjobs

echo "
# Automatically added for A2Billing
0 * * * * php /usr/src/a2billing/Cronjobs/a2billing_alarm.php
0 12 * * * php /usr/src/a2billing/Cronjobs/a2billing_archive_data_cront.php
0 10 21 * * php /usr/src/a2billing/Cronjobs/a2billing_autorefill.php     
#Batch process at 00:20 each day                                               
20 0 * * * php /usr/src/a2billing/Cronjobs/a2billing_batch_process.php   
#Bill DID usage at 00:00 each day                                              
0 0 * * * php /usr/src/a2billing/Cronjobs/a2billing_bill_diduse.php      
#Remind users of low balance every day at 06:00                                
0 6 * * * php /usr/src/a2billing/Cronjobs/a2billing_check_account.php    
#Generate Invoices at 7am everyday                                             
#0 7 * * * php /usr/src/a2billing/Cronjobs/a2billing_invoice2_cront.php   
#0 7 * * * php /usr/src/a2billing/Cronjobs/a2billing_invoice_cront.php    
#Check if balance below preset value, and email user if so.                    
1 * * * * php /usr/src/a2billing/Cronjobs/a2billing_notify_account.php   
#Charge subscriptions at 06:05 on the 1st of each month                        
0 6 1 * * php /usr/src/a2billing/Cronjobs/a2billing_subscription_fee.php 
#Update currencies at 01:00 each day                                           
0 1 * * * php /usr/src/a2billing/Cronjobs/currencies_update_yahoo.php    
" >> /var/spool/cron/asterisk                                                  

# Create Log Files
# Log files and Permissions

mkdir -p  /var/log/a2billing

touch /var/log/asterisk/a2billing-daemon-callback.log
touch /var/log/a2billing/a2billing-daemon-callback.log       
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_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/api_ecommerce_request.log
touch /var/log/a2billing/api_callback_request.log
touch /var/log/a2billing/a2billing_agi.log

chown asterisk:asterisk /var/log/asterisk/a2billing-daemon-callback.log
chown -R asterisk:asterisk /var/log/a2billing

No comments:

Post a Comment