asterisk2billing.org
http://forum.asterisk2billing.org/

install script
http://forum.asterisk2billing.org/viewtopic.php?f=33&t=7350
Page 1 of 1

Author:  niranjan_lk [ Sun Mar 21, 2010 11:53 pm ]
Post subject:  install script

*assume all default passwords
*copy this to a file and make it a executable
* vi installa2billing.sh
*chown 755 installa2billing.sh
* run file
************--------------install a2biling in trixbox2.8-----------------------
mkdir /usr/local/src/a2billing
cd /usr/local/src/a2billing
yum -y install perl-DBD-Pg subversion
svn co --username guest --password guest http://svn.a2billing.net/svn/asterisk2billing/trunk/ /usr/local/src/a2billing
cp /usr/local/src/a2billing/a2billing.conf /etc/a2billing.conf
sed -i '/port/s/port =/port = 3306/g' /etc/a2billing.conf
sed -i '/user =/s/user = a2billing_dbuser/user = a2billinguser/g' /etc/a2billing.conf
sed -i '/password =/s/password = a2billing_dbpassword/password = a2billing/g' /etc/a2billing.conf
sed -i '/dbname =/s/dbname = a2billing_dbname/dbname = mya2billing/g' /etc/a2billing.conf

chmod 775 /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
ln -s /usr/local/src/a2billing/AGI/a2billing.php /var/lib/asterisk/agi-bin/a2billing.php
chown asterisk:asterisk /var/lib/asterisk/agi-bin/a2billing.php
chmod +x /var/lib/asterisk/agi-bin/a2billing.php
cd /usr/local/src/a2billing/addons/sounds
./install_a2b_sounds.sh
chown -R asterisk:asterisk /var/lib/asterisk/

touch /etc/asterisk/manager_custom.conf
echo [myasterisk] >> /etc/asterisk/manager_custom.conf
echo secret = mycode >> /etc/asterisk/manager_custom.conf
echo deny=0.0.0.0/0.0.0.0 >> /etc/asterisk/manager_custom.conf
echo permit=127.0.0.1/255.255.255.0 >> /etc/asterisk/manager_custom.conf
echo read = system,call,log,verbose,command,agent,user >> /etc/asterisk/manager_custom.conf
echo write = system,call,log,verbose,command,agent,user >> /etc/asterisk/manager_custom.conf

mkdir /var/www/html/a2billing
ln -s /usr/local/src/a2billing/common /var/www/html/a2billing/common
ln -s /usr/local/src/a2billing/admin /var/www/html/a2billing/admin
ln -s /usr/local/src/a2billing/agent /var/www/html/a2billing/agent
ln -s /usr/local/src/a2billing/customer /var/www/html/a2billing/customer
chown -R asterisk:asterisk /var/www/html/a2billing/
chown -R asterisk:asterisk /usr/local/src/a2billing/common
chown -R asterisk:asterisk /usr/local/src/a2billing/admin
chown -R asterisk:asterisk /usr/local/src/a2billing/customer
chown -R asterisk:asterisk /usr/local/src/a2billing/agent

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


mkdir /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
cp /usr/local/src/a2billing/addons/Doc/extensions_a2billing_1_6.conf /etc/asterisk/extensions_a2billing_1_6.conf
echo \#include extensions_a2billing_1_6.conf >> /etc/asterisk/extensions_custom.conf

sed -i '/define ("PHP_QUICK_PROFILER", true);/s/define ("PHP_QUICK_PROFILER", true);/define ("PHP_QUICK_PROFILER", false);/g' /var/www/html/a2billing/common/lib/admin.defines.php
sed -i '/define ("PHP_QUICK_PROFILER", true);/s/define ("PHP_QUICK_PROFILER", true);/define ("PHP_QUICK_PROFILER", false);/g' /var/www/html/a2billing/common/lib/agent.defines.php
sed -i '/define ("PHP_QUICK_PROFILER", true);/s/define ("PHP_QUICK_PROFILER", true);/define ("PHP_QUICK_PROFILER", false);/g' /var/www/html/a2billing/common/lib/customer.defines.php


mysql -uroot -ppassw0rd < /usr/local/src/a2billing/DataBase/mysql-5.x/a2billing-createdb-user.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/a2billing-schema-v1.4.0.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.0-to-v1.4.1.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.1-to-v1.4.2.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.2-to-v1.4.3.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.3-to-v1.4.4.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.4-to-v1.4.4.1.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.4.1-to-v1.4.5.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.5-to-v1.5.0.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.5.0-to-v1.5.1.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.5.1-to-v1.6.0.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.6.0-to-v1.6.1.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.6.1-to-v1.6.2.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.6.2-to-v1.7.0.sql


# a2billing realtime setup
echo "
sipusers => mysql,mya2billing,cc_sip_buddies
sippeers => mysql,mya2billing,cc_sip_buddies
iaxusers => mysql,mya2billing,cc_iax_buddies
iaxpeers => mysql,mya2billing,cc_iax_buddies
" >> /etc/asterisk/extconfig.conf

sed -i '/from-sip-external/s/$/\ninclude => a2billing-did/' /var/www/html/admin/modules/core/etc/extensions.conf

sed -i '/exten => _.,1,NoOp(Received incoming SIP connection from unknown peer to ${EXTEN})/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => _.,n,Set(DID=${IF/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => _.,n,Goto(s,1)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => s,1,GotoIf($\["${ALLOW_SIP_ANON}"="yes"/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => s,n,Set(TIMEOUT(absolute)=15)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => s,n,Answer/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => s,n,Wait(2)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => s,n,Playback(ss-noservice)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => s,n,Playtones(congestion)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => s,n,Congestion(5)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => h,1,NoOp(Hangup)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => i,1,NoOp(Invalid)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => t,1,NoOp(Timeout)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf

amportal restart

Author:  abakhiet [ Mon Mar 22, 2010 12:31 am ]
Post subject:  Re: install script

thanks man

Author:  flatpack [ Fri Apr 02, 2010 5:05 pm ]
Post subject:  Re: install script

have you tested it yet?
abakhiet wrote:
thanks man

Author:  abakhiet [ Fri Apr 02, 2010 7:14 pm ]
Post subject:  Re: install script

no, i don't :D
but i fell i must say something to encoyrage this man %-)

Author:  manugmedia [ Fri Apr 02, 2010 7:47 pm ]
Post subject:  Re: install script

Quote:
have you tested it yet?


hahah, nice one flatpack. that avatar is cool.
I don't understand why you could use install script, i like getting under the bonnet and see the whole engine.

Rgds
Eamonn

Author:  flatpack [ Sun Apr 04, 2010 8:07 pm ]
Post subject:  Re: install script

i m under the bonnet but not going to invent wheel again....
already spending lots of time on billing and its customization.


manugmedia wrote:
Quote:
have you tested it yet?


hahah, nice one flatpack. that avatar is cool.
I don't understand why you could use install script, i like getting under the bonnet and see the whole engine.

Rgds
Eamonn

Author:  cjav [ Thu May 13, 2010 10:44 pm ]
Post subject:  Re: install script

I'm testing your script, but on Centos 5.4, so there is some adapting to do, so far I have two questions, one is why use a2billing-schema-v1.4.0.sql and then apply all UPDATE* files when I think you could use a2billing-mysql-schema-v1.7.0.sql and then I guess you don't need to apply the updates, btw there is a UPDATE-a2billing-v1.7.0-to-v1.7.1.sql file but it fail to apply with this error:
Code:
ERROR 1054 (42S22) at line 38: Unknown column 'destination' in 'cc_did'


The other question I guess is related to the fact that I'm not using Trixbox, could you tell me what is the "a2billing realtime setup"?, cause I do have /etc/asterisk/extconfig.conf but no rest of the files on that section, I guess those files are from the FreePBX interface that I'm not planing to use for now. Do I want/need "a2billing realtime setup" on a Centos install?

Thanks for putting all this together, I let you know how it went for me on a Centos machine and I also will publish the changes I made to the script, mainly installation of asterisk, mysql and other software that a default Centos install won't have.

Carlos

niranjan_lk wrote:
mysql -uroot -ppassw0rd < /usr/local/src/a2billing/DataBase/mysql-5.x/a2billing-createdb-user.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/a2billing-schema-v1.4.0.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.0-to-v1.4.1.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.1-to-v1.4.2.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.2-to-v1.4.3.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.3-to-v1.4.4.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.4-to-v1.4.4.1.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.4.1-to-v1.4.5.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.4.5-to-v1.5.0.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.5.0-to-v1.5.1.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.5.1-to-v1.6.0.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.6.0-to-v1.6.1.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.6.1-to-v1.6.2.sql
mysql -u root -ppassw0rd mya2billing < /usr/local/src/a2billing/DataBase/mysql-5.x/UPDATE-a2billing-v1.6.2-to-v1.7.0.sql


# a2billing realtime setup
echo "
sipusers => mysql,mya2billing,cc_sip_buddies
sippeers => mysql,mya2billing,cc_sip_buddies
iaxusers => mysql,mya2billing,cc_iax_buddies
iaxpeers => mysql,mya2billing,cc_iax_buddies
" >> /etc/asterisk/extconfig.conf

sed -i '/from-sip-external/s/$/\ninclude => a2billing-did/' /var/www/html/admin/modules/core/etc/extensions.conf

sed -i '/exten => _.,1,NoOp(Received incoming SIP connection from unknown peer to ${EXTEN})/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => _.,n,Set(DID=${IF/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => _.,n,Goto(s,1)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => s,1,GotoIf($\["${ALLOW_SIP_ANON}"="yes"/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => s,n,Set(TIMEOUT(absolute)=15)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => s,n,Answer/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => s,n,Wait(2)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => s,n,Playback(ss-noservice)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => s,n,Playtones(congestion)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => s,n,Congestion(5)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => h,1,NoOp(Hangup)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => i,1,NoOp(Invalid)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf
sed -i '/exten => t,1,NoOp(Timeout)/s/exten =>/#exten =>/g' /var/www/html/admin/modules/core/etc/extensions.conf

amportal restart

Author:  bruce [ Fri May 14, 2010 4:54 am ]
Post subject:  Re: install script

I second the issue with update of mysql from 1.7.0 to 1.7.1 with error:

Code:
ERROR 1054 (42S22) at line 38: Unknown column 'destination' in 'cc_did'


Also, wanted to pose my own question regarding realtime:
- Can A2Billing use realtime and FreePBX use .conf files for SIP peers? I just hate it when "sip show peers" shows both the PBX extensions and A2Billing extensions at the same time. Plus there could be many A2B SIP peers which won't fit on one page and I never want to display them.

Thanks

Author:  jroper [ Fri May 14, 2010 7:58 am ]
Post subject:  Re: install script

Hi

Yes, Asterisk can use both sip/iax.conf files and asterisk realtime, although when you so sip show peers, it will show all that are registered.

Joe

Author:  rboy22007 [ Mon May 31, 2010 2:03 pm ]
Post subject:  Re: install script

Hi...

Is it necessary to install realtime setup for prepaid call system?
i have tried installing the realtime setup and i get the following error in the log:

[May 31 14:46:04] ERROR[2964] res_config_mysql.c: MySQL RealTime: Failed to connect database server asterisk on /tmp/mysql.sock (err 2002). Check debug for more info.

and yes the script works..

thanks.

Author:  jroper [ Mon May 31, 2010 2:07 pm ]
Post subject:  Re: install script

Hi

Check you have extconfig.conf correctly configured, and you have configured res_mysql.conf, and it should all just work.

Joe

Author:  netizen [ Thu Jul 15, 2010 11:17 am ]
Post subject:  Re: install script

May I ask what the following code is for?

-------------
cp /usr/local/src/a2billing/addons/Doc/extensions_a2billing_1_6.conf /etc/asterisk/extensions_a2billing_1_6.conf
echo \#include extensions_a2billing_1_6.conf >> /etc/asterisk/extensions_custom.conf

sed -i '/define ("PHP_QUICK_PROFILER", true);/s/define ("PHP_QUICK_PROFILER", true);/define ("PHP_QUICK_PROFILER", false);/g' /var/www/html/a2billing/common/lib/admin.defines.php
sed -i '/define ("PHP_QUICK_PROFILER", true);/s/define ("PHP_QUICK_PROFILER", true);/define ("PHP_QUICK_PROFILER", false);/g' /var/www/html/a2billing/common/lib/agent.defines.php
sed -i '/define ("PHP_QUICK_PROFILER", true);/s/define ("PHP_QUICK_PROFILER", true);/define ("PHP_QUICK_PROFILER", false);/g' /var/www/html/a2billing/common/lib/customer.defines.php
-------------

Thank you,
Netizen

Page 1 of 1 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/