Pessoal alguem teria um script de instalação automatica para a2billing para postar ai ?
Pessoal alguem teria um script de instalação automatica para a2billing para postar ai ?
Última edição por provelink; 03-02-2010 às 22:48.
http://tlig.com.br/forum/viewtopic.php?f=3&t=2
#!/bin/sh
# Instalacao de Script para a2billing versao 1.4 em portugues
# Copyright (C) <2009> <Luciano Fortuna> [email protected]
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, o
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
# GNU Affero General Public License for more details.
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
clear
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "PERIGO PERIGO PERIGO PERIGO PERIGO PERIGO PERIGO PERIGO PERIGO PERIGO PERIGO"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "Este script assume que voce nao mudou o nome de usuario root padrao para o MySQL"
echo "Se voce alterou sua senha, pressione CTRL-C para sair"
echo "Em seguida, altere a senha de root do MySQL no script para se adequar a esta instalação."
echo " "
echo "Se uma copia anterior do A2Billing ja estar instalado, entao voce deve desinstalar antes"
echo "Este script ira modifica-lo, ou modifique a sua instalacao antes de executa-lo."
echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
read -p "Pressione enter para continuar ou ctrl-C para sair"
#Change passw0rd below for your MySQL root password if you have changed it from the default.
MYSQLROOTPASSWORD=password
echo "*************************************************************"
echo "Instalando A2Billing - Download de arquivos pela Internet"
echo ""
echo " Por Favor, seja paciente"
echo ""
echo "CUIDADO, execute este script uma unica vez - caso contrario voce tera"
echo "entradas duplas na cron e extensoes-a2billing.conf"
echo "*************************************************************"
mkdir /usr/src/a2billing
mkdir /var/www/html/a2billing
cd /usr/src/a2billing
wget http://www.asterisk2billing.org/down...g_1.4.1.tar.gz
tar zxfv A2Billing_1.4.1.tar.gz
cd /usr/src/a2billing/DataBase/mysql-5.x/
echo "GRANT ALL PRIVILEGES ON *.* TO 'a2billinguser'@'localhost' IDENTIFIED BY 'a2billing' WITH GRANT OPTION;" | mysql -p$MYSQLROOTPASSWORD
mysqladmin create mya2billing -u a2billinguser -pa2billing
echo ""
echo "Instalando Banco de Dados A2Billing"
echo "Answer the questions appropriately with reference to /etc/a2billing.conf"
echo "-----------------------------"
echo ""
echo "Digite abaixo o nome do banco de dados que esta dentro do parentese (mya2billing):"
read dbname
echo "Digite o nome do Hostname de seu servidor, ou coloque (localhost):"
read hostname
echo "Digite o nome do usuario do Banco de Dados (a2billinguser):"
read username
echo "Digite a senha do usuario do Banco de Dados (a2billing):"
read password
echo mysql --user=$username --password=$password --host=$hostname $dbname
cat a2billing-schema-v1.4.0.sql UPDATE-a2billing-v1.4.0-to-v1.4.1.sql | mysql --user=$username --password=$password --host=$hostname $dbname
# cat a2billing-mysql-schema-v1.3.0.sql UPDATE-a2billing-v1.3.0-to-v1.3.1.sql UPDATE-a2billing-v1.3.3-to-v1.3.4.sql UPDATE-a2billing-v1.3.4-to-v1.4.0.sql a2billing-prefix-table-v1.4.0.sql UPDATE-a2billing-v1.4.0-to-v1.4.1.sql | mysql --user=$username --password=$password --host=$hostname $dbname
#Install some dependencies
yum -y install perl-DBD-Pg
cd /usr/src/a2billing
mv AGI/a2billing.php /var/lib/asterisk/agi-bin/.
cp -r common/lib /var/lib/asterisk/agi-bin
mv ./admin/ /var/www/html/a2billing/admin
mv ./customer/ /var/www/html/a2billing/customer
mv ./agent/ /var/www/html/a2billing/agent
mv ./common/ /var/www/html/a2billing/common
mv ./Cronjobs/ /var/lib/asterisk/agi-bin/lib/Cronjobs
mv a2billing.conf /etc/a2billing.conf
#Set up sounds
cd /usr/src/a2billing/addons/sounds
#Use this line for RPM based systems as Fedora, CentOS, etc
ast_sound=/var/lib/asterisk/sounds
#Use this line for Debian based systems
#ast_sound=/usr/share/asterisk/sounds
lang=en
echo
echo Instalando arquivos de audio do A2Billing : "$lang"
echo --------------------------------------------------
echo creating relevant folders : $ast_sound/$lang
echo creating relevant folders : $ast_sound/$lang/digits
mkdir $ast_sound/$lang
mkdir $ast_sound/$lang/digits
echo Copy $lang files in the right folder ...
cp ./$lang/* $ast_sound/$lang/
cp ./global/* $ast_sound/$lang/
lang=es
echo
echo Instalando arquivos de audio do A2Billing : "$lang"
echo ---------------------------------------------------
echo creating relevant folders : $ast_sound/$lang
echo creating relevant folders : $ast_sound/$lang/digits
mkdir $ast_sound/$lang
mkdir $ast_sound/$lang/digits
echo Copy $lang files in the right folder ...
cp ./$lang/* $ast_sound/$lang/
cp ./global/* $ast_sound/$lang/
lang=fr
echo
echo Instalando arquivos de audio do A2Billing : "$lang"
echo ---------------------------------------------------
echo creating relevant folders : $ast_sound/$lang
echo creating relevant folders : $ast_sound/$lang/digits
mkdir $ast_sound/$lang
mkdir $ast_sound/$lang/digits
echo Copy $lang files in the right folder ..
cp ./$lang/* $ast_sound/$lang/
cp ./global/* $ast_sound/$lang/
lang=br
echo
echo Instalando arquivos de audio do A2Billing : "$lang"
echo ---------------------------------------------------
echo creating relevant folders : $ast_sound/$lang
echo creating relevant folders : $ast_sound/$lang/digits
mkdir $ast_sound/$lang
mkdir $ast_sound/$lang/digits
echo Copy $lang files in the right folder ...
cp ./$lang/* $ast_sound/$lang/
cp ./global/* $ast_sound/$lang/
lang=ru
echo
echo Instalando arquivos de audio do A2Billing : "$lang"
echo ---------------------------------------------------
echo creating relevant folders : $ast_sound/$lang
echo creating relevant folders : $ast_sound/$lang/digits
mkdir $ast_sound/$lang
mkdir $ast_sound/$lang/digits
echo Copy $lang files in the right folder ...
cp ./$lang/* $ast_sound/$lang/
echo Copy $lang digits files in the right folder ...
cp ./$lang/digits/* $ast_sound/$lang/digits/
cd /etc/asterisk/
touch additional_a2billing_iax.conf
touch additional_a2billing_sip.conf
touch extensions_a2billing.conf
touch iax_custom.conf
#set ownership and permissions
chown -R asterisk:asterisk /var/www/html
chown -R asterisk:asterisk /etc/asterisk
chown -R asterisk:asterisk /var/lib/asterisk/
chown -R asterisk:asterisk /var/www/html/a2billing/
chown -R asterisk:asterisk /var/lib/asterisk/sounds/
chown asterisk:asterisk /var/lib/asterisk/agi-bin/a2billing.php
chmod +x /var/lib/asterisk/agi-bin/a2billing.php
chmod 666 /etc/asterisk/additional_a2billing_iax.conf
chmod 666 /etc/asterisk/additional_a2billing_sip.conf
chmod 666 /etc/asterisk/extensions_a2billing.conf
chmod 666 /etc/a2billing.conf
#Fix the permissions of the templates_c folder in each of the UI
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
chown -R asterisk:asterisk /var/www/html/a2billing/admin/templates_c
chown -R asterisk:asterisk /var/www/html/a2billing/customer/templates_c
chown -R asterisk:asterisk /var/www/html/a2billing/agent/templates_c
#ensure all log files exist so we can set their permissions accordingly
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/cront_a2b_check_account.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
echo "
#include additional_a2billing_sip.conf
" >> /etc/asterisk/sip_custom.conf
echo "
#include additional_a2billing_iax.conf
" >> /etc/asterisk/iax_custom.conf
echo "
#include extensions_a2billing.conf
" >> /etc/asterisk/extensions_custom.conf
echo '
[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,DeadAGI(a2billing.php|${OUT_${DIAL_TRUNK}:8})
exten => _X.,n,Hangup()
' >> /etc/asterisk/extensions_custom.conf
#Create manager_custom.conf
echo "
[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
" >> /etc/asterisk/manager_custom.conf
.
.
.
Obs: junte o código com a parte 2 ou faça download do link.
http://tlig.com.br/forum/viewtopic.php?f=3&t=2
#Adicionando entrada de contexto para uso do A2Billing
echo "
[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-cid-callback]
exten => _X.,1,deadAGI(a2billing.php|1|cid-callback|34) ;last #parameter is the callback area code
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
[a2billing-did]
exten => _X.,1,deadAGI(a2billing.php|1|did)
exten => _X.,2,Hangup
[a2billing-voucher]
exten => _X.,1,deadAGI(a2billing.php|1|voucher)
exten => _X.,n,Hangup
[custom-a2billing-did]
exten => _X.,1,deadAGI(a2billing.php|1|did)
exten => _X.,2,Hangup
[custom-a2billing]
exten => _X.,1,deadAGI(a2billing.php|1)
exten => _X.,n,Hangup
" >> /etc/asterisk/extensions_a2billing.conf
#Add some custom destinations to FreePBX
RESULT=`/usr/bin/mysql -uroot -p$MYSQLROOTPASSWORD <<SQL
use asterisk
INSERT INTO custom_destinations
(custom_dest, description, notes)
VALUES ('custom-a2billing,${EXTEN},1', 'A2Billing', '');
INSERT INTO custom_destinations
(custom_dest, description, notes)
VALUES ('custom-a2billing-did,${EXTEN},1', 'A2Billing-DID', '');
quit
SQL`
#set up crontabs for currency updates invoices and billing.
echo '0 1 * * * php /var/lib/asterisk/agi-bin/lib/Cronjobs/currencies_update_yahoo.php
0 6 1 * * php /var/lib/asterisk/agi-bin/lib/Cronjobs/a2billing_subscription_fee.php
0 12 * * * php /var/lib/asterisk/agi-bin/lib/Cronjobs/a2billing_archive_data_cront.php
1 * * * * php /var/lib/asterisk/agi-bin/lib/Cronjobs/a2billing_notify_account.php
0 6 * * * php /var/lib/asterisk/agi-bin/lib/Cronjobs/a2billing_check_account.php
0 0 * * * php /var/lib/asterisk/agi-bin/lib/Cronjobs/a2billing_bill_diduse.php
20 0 * * * php /var/lib/asterisk/agi-bin/lib/Cronjobs/a2billing_batch_process.php
0 10 21 * * php /var/lib/asterisk/agi-bin/lib/Cronjobs/a2billing_autorefill.php
0 7 * * * php /var/lib/asterisk/agi-bin/lib/Cronjobs/a2billing_invoice_cront.php
*/5 * * * * php /var/lib/asterisk/agi-bin/lib/Cronjobs/a2billing_batch_autodialer.php
0 * * * * php /var/lib/asterisk/agi-bin/lib/Cronjobs/a2billing_alarm.php
' >> /var/spool/cron/asterisk
#Not required for PIAF, port already open
#Create fw rule to allow paypal to work
#iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
#save them
#service iptables save
#Set up callback
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "Now Installing Callback"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "Pressione enter para continuar"
read any
LOAD_LOC=/usr/src/a2billing
yum -y install python-setuptools.noarch
yum -y install MySQL-python
easy_install sqlalchemy
cd $LOAD_LOC/CallBack/callback-daemon-py
cp callback_daemon/a2b-callback-daemon.rc /etc/init.d/a2b-callback-daemon
chmod +x /etc/init.d/a2b-callback-daemon
cp dist/callback_daemon-1.0.prod-r1528.tar.gz /tmp
cd /tmp
tar xvfz callback_daemon-1.0.prod-r1528.tar.gz
cd callback_daemon-1.0.prod-r1528
python setup.py build
python setup.py bdist_egg
easy_install dist/callback_daemon-1.0.prod_r1528-py2.4.egg
chkconfig --add a2b-callback-daemon
service a2b-callback-daemon start
chkconfig a2b-callback-daemon on
echo ""
echo ""
echo ""
echo ""
echo ""
echo "*******************************************************************"
echo "A2Billing Instalado com Sucesso"
echo "-------------------------------------------------"
echo ""
echo "Por Favor agora Reboot seu Servidor"
echo ""
echo "*******************************************************************"
echo ""
echo "Usuario padrao admin : root"
echo "A senha padrao de root no admin :changepassword"
echo "Nao se esqueca de configurar /etc/a2billing.conf"
echo "*******************************************************************"