Instalacion y Configuracion de A2billing en AsteriskNow_1.7

PRECONFIGURACION Y DESCARGA DE A2BILLING


Lo primero que tenemos que hacer es instalar las dependencias para que corra A2billing en AsteriskNow_1.7, ejecutamos el comando:
#yum -y install perl-DBD-Pg subversion
Luego creamos un directorio donde descargaremos A2biiling
#mkdir /usr/local/src/a2billing
Vamos al directorio creado
#cd /usr/local/src/a2billing        
Descargamos A2billing dentro del directorio creado a2biiling       
#wget http://www.asterisk2billing.org/downloads/A2Billing_1.7.1.tar.gz
Con este comando descargamos A2billing directo de la pagina de A2billing de internet, si te da algún error en la descarga revisa la dirección de la pagina de internet por si la cambiaron de ubicación e introdúcela manualmente después de wget.
Ahora descomprimimos el fichero .tar.gz que descargamos
#tar zxvf A2Billing_1.7.1.tar.gz
y te dara algo como esto:
image
Lo siguiente es copiar el fichero a2biiling.conf al directorio /etc:
Estando en el directorio a2billing que creamos ejecutamos el siguiente comando:
#cp a2billing.conf /etc/
Editamos el fichero a2billing.conf que copiamos en /etc/a2billing.conf y cambiamos dbtype = mysql si aun no esta cambiado.
Antes de nada hacer una copia de seguridad de este fichero:
#cp /etc/a2billing.conf /etc/a2billing.conf_BACK
#nano /etc/a2billing.conf
image


INSTALACION DE BASE DE DATOS PARA A2BILLING


Lo primero que hay que hacer es editar el fichero a2billing.con que esta en /etc/a2billing.con y cambiar algunos parámetros para crear la base de datos:
Este es la imagen del fichero que viene por defecto:

image

Tiene que quedar asi:                   #nano /etc/a2billing.conf

image

Cambiamos:
puerto = 3306
user  = root
password = (vacio)
dbname = mya2billing
Creamos la base de datos en mysql con el usuario root:
#mysql –u root
Dentro de mysql ejecutamos el comando para ver las bases de datos creadas:
image




image
Creamos la nueva base de datos que la llamares mya2billing según el fichero a2billing.conf que editamos.
image
image
Salimos de mysql con el comando:
image
Ejecutamos el scrip install-db.sh que esta en el directorio /usr/local/src/a2billing/DataBase/mysql-5.x
#cd /usr/local/src/a2billing/DataBase /mysql-5.x
#./install-db.sh
image
Si queremos verificar si se creo la base de dato mya2billing y si se creo las tablas con el scrip ./install-db.sh ejecutamos:
#mysql –u root
image
image
image
Si os aparece una lista con unas 97 tablas aproximadamente es que ha ido bien de lo contrario revisar de nuevo la configuración y ejecutar de nuevo el script ./install-db.sh.

INSTALACION DE LA INTERFAZ DE GESTION (AGI) Y LOS SONIDOS PARA A2BILLING.


Lo primero que tenemos que hacer es copiar el fichero a2billing.php a la siguiente direccion:
#cp usr/local/src/a2billing/AGI/a2billing.php /var/lib/asterisk/agi-bin/a2billing.php

Luego le asignaremos los permisos de propiedad y ejecución adecuado al fichero que copiamos a2billing.php
#chmod +x /var/lib/asterisk/agi-bin/a2billing.php
#chown asterisk:asterisk /var/lib/asterisk/agi-bin/a2billing.php

image

CONFIGURAR EL SONIDO


Vamos al siguiente directorio donde esta el script de sonidos de a2billing y lo ejecutamos:
#cd /usr/local/src/a2billing/addons/sounds
#./install_a2b_sounds.sh
image


Lo que hace el script es crear directorios dentro de asterisk y copiar los ficheros de sonidos de a2billing.

image

Ahora asignaremos los permiso de propiedad al directorio  /var/lib/asterisk
#chown -R asterisk:asterisk /var/lib/asterisk/

CREAR UN USUARIO EN EL ASTERISK MANAGER


Editar el fichero /etc/asterisk/manager.conf
#nano /etc/asterisk/manager.conf
Tiene que quedar asi:
image


INSTALACION DE LA PAGINA WEB DE A2BILLING


Asumimos que la carpeta root de apache es /var/www/html. Por lo que tenemos que enlazar cuatro ficheros a esta carpeta.
Para ello hacemos enlaces simbolicos de la carpeta destino a la carpeta a2billing en /var/www/html.
Antes de nada tenemos que crear la carpeta a2billing dentro de /var/www/html:
#mkdir /var/www/html/a2billing
Fichero common:
#ln -s /usr/local/src/a2billing/common /var/www/html/a2billing/common
Fichero admin:
#ln -s /usr/local/src/a2billing/admin /var/www/html/a2billing/admin
Fichero agent:
#ln -s /usr/local/src/a2billing/agent /var/www/html/a2billing/agent
Fichero customer:
#ln -s /usr/local/src/a2billing/customer /var/www/html/a2billing/customer
Ahora tenemos que establecer permisos para Apache.
#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

CRONJOBS (Replicacion para ejecutar tareas automaticas en un sitio Web)

Copiamos todo este codigo y lo ejecutamos:
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
#Generate Invoices at 6am everyday
0 6 * * * php /usr/local/src/a2billing/Cronjobs/a2billing_batch_billing.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
" >> /var/spool/cron/asterisk


Revisiar el README de a2billing  porque el editor no admite comando >>


CREAR EL DIRECTORIO DE SECUENCIA DE COMANDOS DE CONTROL


#mkdir -p /var/lib/a2billing/script
#mkdir -p /var/run/a2billing

CREAR ARCHIVOS DE REGISTRO

Los creamos uno a uno:
#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/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

DEVOLUCION DE LLAMADA (CALLBACK)


Lo primero es copiar un fichero (a2b-callback-daemon.rc) que se encuentra en la carpeta que descargamos a2billing: /usr/local/srs/a2billing//CallBack/callback-daemon-py/build/lib/callback_daemon/a2b-callback-daemon.rc a la carpeta /etc/init.d/a2b-callbak-daemon:
#cp /usr/local/srs/a2billing//CallBack/callback-daemon-py/build/lib/callback_daemon/a2b-callback-daemon.rc /etc/init.d/a2b-callback-daemon
image
Asignamos permisos de ejecucion:
#chmod +x /etc/init.d/a2b-callback-daemon
image

Luego instalamos y creamos algunos modulos par aque corra a2billing poe web:
#yum -y install python-setuptools.noarch
#yum -y install MySQL-python
#easy_install sqlalchemy

Nos situamos en el directorio:
#cd /usr/local/src/a2billing/CallBack/callback-daemon-py/
Ejecutamos:
#python setup.py build
image

#python setup.py bdist_egg


image

#easy_install dist/callback_daemon-1.0.prod-py2.4.egg

image


#chkconfig --add a2b-callback-daemon
#service a2b-callback-daemon start
#chkconfig a2b-callback-daemon on

image

#reboot

ACCEDER A A2BILLING


http://ip_asterisk/a2billing                   
Donde ip_asterisk es la ip de tu servidor o en otro caso el dominio de tu servidor.
Acceder a la Pagina de admin con el usuario root y el password changepassword



Y eso es toda la Configuracion e Instalacion de A2billing en Asterisk_Now_1.7


Colaboracion:
       Prof. (I.E.S.S:) : Carmelo Fernandez Garcia





7 comentarios:

  1. Hola Amigo
    Mi nombre es Tomas Lagunas
    te felicito por un exelente tutorial sobre la instalacion de a2billing
    http://todoasterisk.blogspot.com/2010/06/instalacion-y-configuracion-de.html

    Tengo al asterisk y freepbx todo funciona muy bien, tengo el linux ubuntu

    segui paso a paso tu tutorial pero no entendi donde dice

    " CRONJOBS (Replicacion para ejecutar tareas automaticas en un sitio Web "

    y la mas importante el paso que dice

    " DEVOLUCION DE LLAMADA (CALLBACK) "
    Nota: coloco los comando en ubuntu y no me los reconoce.
    como los tengo que escribir y en que directorio debo posicionarme para ejecutarlos.

    #chkconfig --add a2b-callback-daemon
    #service a2b-callback-daemon start
    #chkconfig a2b-callback-daemon on


    He colocado entre al http://ip_asterisk/a2billing

    y entro a la pagina web de A2BILLING coloco
    el nombre de usuario : root
    el password : changepassword
    y no me da acceso...
    Que tengo que hacer , ayudame por favor
    gracias

    ResponderEliminar
  2. BUEN DIA
    muy buen tuto... pero como lo pongo en espanol podrias ayudarme?..

    ResponderEliminar
  3. Excelente Tutorial,
    hay que felicitar a la gente cuando las cosas estan TAN bien hechas.

    felicitaciones y muchas gracias por el tutorial,

    Atte: Miguel - Ecuador

    ResponderEliminar
  4. TENGO UNA DUDA, ME SALE :

    Cannot connect to the asterisk manager!
    Please check your manager configuration

    COMO ARREGLO ESTO, QUE ES LO QUE TENGO MAL?

    ResponderEliminar
  5. muy buen tuto,todo me funciona, pero cuando creo el usuario final,no se registra en el softphone me da faill

    ResponderEliminar
  6. En el punto de:
    #chkconfig --add a2b-callback-daemon
    #service a2b-callback-daemon start
    #chkconfig a2b-callback-daemon on

    Los escribí de la siguiente manera para que los pudiera tomar:

    #chkconfig --add a2b-callback-daemon.rc
    #service a2b-callback-daemon.rc start
    #chkconfig a2b-callback-daemon.rc on

    ¿ Esta bien hacerlo ? Para hacerlo debí ubicarme en el directorio callback que contenía los .rc

    ResponderEliminar
  7. aaaa.... una cosa más ... EXCELENTE APORTE AMIGO ...

    Salu2

    ResponderEliminar

Si quiere que responda a tus comentarios deja tu correo