Lab1 3-Instalacion A2billing
Lab1 3-Instalacion A2billing
Instalacion de Maria DB
yum install mariadb mariadb-server mariadb-devel -y
ODBC
yum install unixODBC unixODBC-devel mysql-connector-odbc libtool-ltdl-devel -y
Finalmente reiniciar
reboot
1.2.- Instalación de ASTERISK
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
tar -zxvf asterisk-13-current.tar.gz
cd asterisk-13.*
./configure --libdir=/usr/lib64
make menuselect
Agregar:
Add-ons
res_config_mysql
make
make install
make samples
make config
Configurar el servicio
mysql -u root -p
create user 'asterisk'@'localhost' identified by '123456';
create database asterisk;
create database asteriskcdr;
GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY
'123456';
GRANT ALL PRIVILEGES ON asteriskcdr.* TO asterisk@localhost IDENTIFIED BY
'123456';
flush privileges;
vim cdr.sql
vim /etc/odbc.ini
[asteriskcdr]
Driver = MySQL
Description = MySQL Connector for Asterisk
Server = localhost
Port = 3306
Database = asteriskcdr
username = asterisk
password = 123456
Option =3
Socket = /var/lib/mysql/mysql.sock
vim /etc/asterisk/res_odbc.conf
[asteriskcdr]
enabled=yes
dsn=asteriskcdr
username=asterisk
password=123456
pooling=no
limit=1
pre-connect=yes
share_connections=yes
sanitysql=select 1
isolation=repeatable_read
vim /etc/asterisk/cdr_odbc.conf
[global]
dsn=asteriskcdr
loguniqueid=yes
table=cdr
dispositionstring=yes
usegmtime=no
hrtime=yes
vim /etc/asterisk/cdr_adaptive_odbc.conf
[asteriskcdr]
connection=asteriskcdr
table=cdr
alias start=calldate
Instalación de dependencias
yum install php php-gd php-mysql php-process httpd mod_ssl php-cli php-soap php-xml
php-mcrypt -y
Configurar el servicio
vim /etc/httpd/conf.d/ssl.conf
Configuración de PHP.ini
vim /etc/php.ini
date.timezone = America/Bogota
upload_max_filesize = 8M
error_reporting = E_ALL & ~E_NOTICE
Descarga de a2billing
cd /usr/local/src
wget https://github.com/Star2Billing/a2billing/archive/v2.2.0.tar.gz
tar -xf v2.2.0.tar.gz
mv a2billing-2.2.0 a2billing
cd a2billing
Configuración de Composer
vim composer.lock
mysql -p
create database a2billing;
GRANT ALL PRIVILEGES ON a2billing.* TO 'a2user'@'localhost' IDENTIFIED BY
'654321';
flush privileges;
quit;
Ejecutar el script de creación de tablas
cd DataBase/mysql-5.x/
./install-db.sh
Enter Database Name :
a2billing
Enter Hostname :
localhost
Enter UserName :
root
Enter Password :
123456
cd /usr/local/src/a2billing/addons/sounds/
./install_a2b_sounds.sh
cp /usr/local/src/a2billing/a2billing.conf /etc/
vim /etc/a2billing.conf
[database]
hostname = localhost
port = 3306
user = a2user
password = 654321
dbname = a2billing
dbtype = mysql
touch /etc/asterisk/additional_a2billing_iax.conf
touch /etc/asterisk/additional_a2billing_sip.conf
chown apache:apache /etc/asterisk/additional_a2billing_iax.conf
chown apache:apache /etc/asterisk/additional_a2billing_sip.conf
Configuración de MANAGER de Asterisk
vim /etc/asterisk/manager.conf
enabled=yes
allowmultiplelogin = yes
dislplayconnects=yes
[myasterisk]
secret=mycode
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.255
read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan
write = system,call,agent,user,config,command,reporting,originate
cd /usr/local/src/a2billing/AGI
ln -s /usr/local/src/a2billing/AGI/a2billing.php /var/lib/asterisk/agi-bin/a2billing.php
ln -s /usr/local/src/a2billing/AGI/a2billing_monitoring.php /var/lib/asterisk/agi-
bin/a2billing_monitoring.php
ln -s /usr/local/src/a2billing/AGI/lib /var/lib/asterisk/agi-bin/lib
chmod +x /var/lib/asterisk/agi-bin/a2billing.php
chmod +x /var/lib/asterisk/agi-bin/a2billing_monitoring.php
mkdir /var/www/html/a2billing
mkdir -p /var/lib/a2billing/script
mkdir -p /var/run/a2billing
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
ln -s /usr/local/src/a2billing/common/ /var/www/html/a2billing/common
chmod 775 /usr/local/src/a2billing/admin/templates_c
chmod 775 /usr/local/src/a2billing/customer/templates_c
chmod 775 /usr/local/src/a2billing/agent/templates_c
chown -Rf apache:apache /var/www/html
chown -Rf apache:apache /var/www/html/a2billing/admin/
chown -Rf apache:apache /var/www/html/a2billing/agent/
chown -Rf apache:apache /var/www/html/a2billing/customer/
chown -Rf apache:apache /var/www/html/a2billing/common/
Configuración de LOGS
mkdir /var/log/a2billing
cd /var/log/a2billing
touch cront_a2b_alarm.log cront_a2b_autorefill.log cront_a2b_batch_process.log \
cront_a2b_archive_data.log cront_a2b_bill_diduse.log cront_a2b_subscription_fee.log \
cront_a2b_currency_update.log cront_a2b_invoice.log cront_a2b_check_account.log \
a2billing_paypal.log a2billing_epayment.log a2billing_api_ecommerce_request.log \
a2billing_api_callback_request.log a2billing_api_card.log a2billing_agi.log
chown apache:apache *
Configuración de CRON
crontab -e
# A2Billing
# Para actualizar la tasa de cambio de las monedas
0 6 * * * php /usr/local/src/a2billing/Cronjobs/currencies_update_yahoo.php
# Para el pago se servicios subscritos
0 6 1 * * php /usr/local/src/a2billing/Cronjobs/a2billing_subscription_fee.php
# Para notificaciones cuando el credito del cliente es más bajo de lo indicado
0 * * * * php /usr/local/src/a2billing/Cronjobs/a2billing_notify_account.php
# Para el pago de los numeros geograficos asociados a los clientes
0 2 * * * php /usr/local/src/a2billing/Cronjobs/a2billing_bill_diduse.php
# Para el pago de servicios periódicos
0 12 * * * php /usr/local/src/a2billing/Cronjobs/a2billing_batch_process.php
# Para la generación de las facturas de los clientes
0 6 * * * php /usr/local/src/a2billing/Cronjobs/a2billing_batch_billing.php
# Para la generación de llamadas automáticas utilizadas en las campañas
# */5 * * * * php /usr/local/src/a2billing/Cronjobs/a2billing_batch_autodialer.php
# Para la gestión de las alarmas que se pueden configurar en A2Billing
0 * * * * php /usr/local/src/a2billing/Cronjobs/a2billing_alarm.php
# Para archivar los datos de las llamadas más viejos de lo indicado en la configuración de
A2Billing
0 12 * * * php /usr/local/src/a2billing/Cronjobs/a2billing_archive_data_cront.php
# Para recargar el crédito de un cliente en automático
0 6 1 * * php /usr/local/src/a2billing/Cronjobs/a2billing_autorefill.php
Configuración de archivos sip.conf e iax.conf en Asterisk
cp /etc/asterisk/sip.conf /etc/asterisk/sip.conf.bkp
cp /etc/asterisk/sip.conf /etc/asterisk/iax.conf.bkp
echo "" > /etc/asterisk/sip.conf
echo "" > /etc/asterisk/iax.conf
vi /etc/asterisk/sip.conf
[general]
language=es
allowguest=no ; denegar llamadas anónimas
allowoverlap=yes ; deshabilitar overlap
allowexternalinvites=no ; para evitar marrones, invites fakes o con cabecera incorrecta
allowexternaldomains=no ; seguimos para evitar marrones;
autodomain=no
alwaysauthreject = yes
context = ramales
bindport = 5060
bindaddr = 0.0.0.0
srvlookup=yes
videosupport=yes
allowguest=no
disallow=all
allow=ulaw
allow=gsm
allow=g729
allow=h263
allow=h264
vi /etc/asterisk/iax.conf
[general]
language=es
bindport=4569
bindaddr=0.0.0.0
bandwidth=high
disallow=all
Integración de a2billing para que colabore con Asterisk
cp /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.bkp
echo "" > /etc/asterisk/extensions.conf
vi /etc/asterisk/extensions.conf
[general]
static = yes
writeprotect = no
autofallthrough = yes
extenpatternmatchnew = true
clearglobalvars = no
userscontext=default
[globals]
; Variables globales
[a2billing]
exten => _X.,1,NoOp(A2Billing Start)
same => n,Agi(a2billing.php,1)
same => n,Hangup
exten => h,1,Hangup
[did]
; CallingCard application
exten => _X.,1,DeadAGI(a2billing.php,1,did)
Configuración de customers a nivel de base de datos
vim /etc/asterisk/modules.conf
Des comentar
Agregar al final
vim /etc/odbc.ini
[a2billing]
Description = MySQL a2billing
Driver = MySQL
Database = a2billing
Server = localhost
User = a2user
Password = sesamo
Port = 3306
Option = 3
vim /etc/asterisk/extconfig.conf
vim /etc/asterisk/res_odbc.conf
[a2b]
enabled => yes
dsn => a2billing
username => a2user
password => sesamo
pre-connect => yes
sanitysql => select 1
idlecheck => 3600
connect_timeout => 10
asterisk -rvvvvvvvvvvvvvvvvv
El resultado es :