Integración FreePBX y A2Billing


Integracion freepbx y a2billingPersonalmente me gusta utilizar solo la interfaz Web que nos ofrece el A2Billing para configurar tanto las troncales como las cuentas de los clientes. Esto debido a que la mayoría de instalaciones que hago son para la venta de minutos (wholesale), pero en ocasiones es necesario incluir algunas funcionalidades de PBX como lo pueden ser colas de llamadas, IVR, conferencia de llamadas, buzón de voz, entre otras más, y la mejor alternativa que he encontrado es la de integrar las funcionalidades de FreePBX con A2Billing .

Lo que lograremos con esta integración entre FreePBX y A2Billing, es la posibilidad de enviar nuestro flujo de llamadas ya sea entrante o saliente (Inbound Routes – Outbound Routes) a las distintas modalidades de llamada que nos ofrece el A2Billing (CallBack, DID, Predictive Dialer,..).

Cuando configuramos A2Billing, tenemos que agregar los contextos que manejarán los distintos tipos de llamadas, dentro del archivo /etc/asterisk/extensions_custom.conf

[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,Wait(1)
exten => _X.,n,DeadAGI(a2billing.php|1|cid-callback)
exten => _X.,n,Hangup

[a2billing-all-callback]
exten => _X.,1,DeadAGI(a2billing.php|1|all-callback|1) ;last parameter is the callback area code
exten => _X.,n,Hangup

[a2billing-predictivedialer]
exten => _X.,1,DeadAGI(a2billing.php|1|predictivedialer)
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.,1,AGI(a2billing.php|1|voucher|1) ; will add 44 in front of the callerID for the CID authentication
exten => _X.,n,Hangup

[a2billing-sip]
exten => _X.,1,DeadAGI(a2billing.php|2)
exten => _X.,n,Hangup

El número que va como parámetro de la función DedAGI hace referencia a la configuración agiconf que tenemos en nuestro A2Billing y que será ampliamente comentado en los siguientes artículos, y la cual podemos utilizar para configurar distintos tipos de funcionalidades dependiendo de lo que queramos hacer con nuestra plataforma A2Billing.

Lo segundo que tienes que hacer es crear desde la interfaz de FreePBX  los destinos personalizados (Custom Destination), a los cuales se enviarán las llamadas.

Agregamos los siguientes destinos personalizados (Custom Destination):

Custom Destination: a2billing,${EXTEN},1 Description: a2billing
Custom Destination: a2billing-callback,${EXTEN},1 Description: a2billing-callback
Custom Destination: a2billing-cid-callback,${EXTEN},1 Description: a2billing-cid-callback
Custom Destination: a2billing-did,${EXTEN},1 Description: a2billing-did
Custom Destination: a2billing-sip,${EXTEN},1 Description: a2billing-sip

integracion freepbx a2billing

Estos destinos pueden ser usados en las troncales de salida (outbound routes), o ya sea en las colas de llamadas así como en los flujos de llamadas provenientes de los IVR, para que FreePBX envíe las llamadas al A2Billing.

Este artículo esta basado en la configuración encontrada acá.

30 Respuestas a “Integración FreePBX y A2Billing

  1. Hola Julian, gracias por la info.

    Tengo un problema al iniciar Asterisk:
    «chmod: no se puede operar sobre enlace simbólico con destino inexistente «/var/lib/asterisk/agi-bin/lib»»

    El manual Debian de A2Billing está bastante desactualizado.

    Me gusta

    • Hola Jose, una de los principales causas que me motivo para empezar este manual, es precisamente lo dispersa de esta información asi como lo desactualizada que esta, si tienes alguna sugerencia sobre el tema bien puedes comentarla.

      Att. Ing Julian Castillo

      Me gusta

  2. Pude solucionar el problema copiando de nuevo la carpeta

    Me gusta

  3. Ahora mi problema mayor es que todos los clientes que registro en a2billing no se pueden conectar, el servidor no les responde!

    Me gusta

    • Hola Jose, si tienes problemas para que se registren los clientes, asegurate que el archivo sip.conf incluya el additional_sip.conf que es donde el a2billing guarda la inormación de los clientes, tambien revisa los permisos de escritura de dicho archivo.
      Att. Ing. Julian Castillo

      Me gusta

      • «#include additional_a2billing_sip.conf»

        Ya existe en el archivo, lo que me llama la atención que cuando entro en el panel Customer, la parte de detalles SIP, me dice «SIP URI : call-labs.com»

        Me gusta

      • Hola esa es la información que esta por defecto en el a2billing, tienes que entrar a Sistem Settings>Group List>Sip-Iax-Info y ahí cambiar por los datos tuyos.

        Att: Ing. Julian Castillo

        Me gusta

      • Le cambie la SIP URI y funcionó!

        Que loco, gracias por todo amigo!

        Me gusta

      • Nono me equivoqué, sigue sin funcionar

        Me gusta

      • Donde estas creando las cuentas desde a2billing o desde freepbx?, si estas detrás de un router revisa los puertos 5060 y 5061 que son los de señalización sip, ábrelos en caso de tener un firewall.

        Att. Ing Julian Castillo

        Me gusta

  4. Creo desde a2billing, las extensiones que tengo en FreePBX funcionan.

    Me gusta

    • Hola Jose, si te estoy entendiendo, las cuentas que creaste con Freepbx te funcionan pero las que creaste con A2Billing no?, de ser así revisa donde agregas las linea #include additional_sip.conf ya que el archivo sip.conf FreePBX lo sobrescribe cada vez que hace una modificación desde el A2billing, es por eso que dicha linea la debes es agregar en sip_custom.conf para que el FreePBX no te la borre.

      Espero te sirva
      Att, Ing Julian Castillo

      Me gusta

  5. Gracias ahora funciona!

    Debo ser reee pesado … pero todos los manuales no me sirven!

    Quiero configurar un DID para que se rediriga a una extensión de a2billing, cómo hago?

    Me gusta

    • Hola Jose me alegro que hayas podido configurar tu A2Billing, respecto a lo que me preguntas, ese redireccionamiento se hace desde la empresa donde tienes el DID, por ejemplo yo tengo algunos en didx.com y hay en la parte de configuracion hay una opcion para redireccionar a una estencion sip por lo general asi usuario@ip.del.a2billing, espero puedas configurarlo correctamente.

      Att Ing Julian Castillo

      Me gusta

  6. Buenos días: Gracias por este buenisimo artículo, perdonen mi novatada pero necesito ayuda urgente en lo siguiente: Deseo saber como hacer para que una línea voip que tengo con numeración geografica española (con dos canales) poder ponerla como línea entrante en mi VPS que tiene la configuación siguiente: Asteriks+Freepbx+A2Billing. un ejemplo de mi línea a continuación:
    911742170
    user: 911742170K
    password: plm765IKJ7Gba
    Servidor de registro: shintiny2.doniodeellos.es o 362.820.56.101

    Agradezco la ayuda de antemano.
    Ana.

    Me gusta

    • Hola Ana, segun veo lo que tienes es una linea voip, con la cual tienes vinculado un numero DID, si es asi, esta linea la puedes configurar en a2billing en la seccion de voip settings ingresando los datos que me muestras, una vez hecho esto vas a la parte de trunk (troncales) y la agregas con el mismo nombre con que la creaste en voip settings, asi podras sacar llamadas por tu linea voip ahora si lo que quieres atender son las llamadas entrantes de tu linea eso lo debes configurar desde la administracion de tu DID en el caso de que tengas ese tipo de acceso y configuracion. Espero que esto te sea de utilidad.

      Me gusta

  7. Hola de nuevo: Un millon de gracias, si que dispongo de una interfas web para acceder a la línea y puedo hacerle desvio a cualquier numero, pero cuenado he probado desviarla a la ip fija de mi servidor, no funciona al realizar las llamadas.
    Una vez más gracias y perdonen a esta novata.
    Ana.

    Me gusta

  8. Hola, primero que nada felicitarlos nuevamente por los artículos publicados ya que han sido de mucha ayuda para salir de algunas dudas.
    Mi a2b funciona muy bien, no lo instale yo sino que un técnico con muchos conocimientos, pero no ha logrado habilitar el envío de avisos por mail a los clientes (CUSTOMERS) cuando este pasa el crédito habilitado en (CREDIT LIMIT NOTIFICATION) , si tienes alguna ayuda para salir de este lio estaré muy agradecido.
    De ante mano muchas gracias…

    Me gusta

    • Hola Osvaldo, gracias por tus comentarios, para configurar correctamente esta función del A2Billing, debes configurar las tareas del cronjob del a2billing especificamente «a2billing_notify_account.php» para que se ejecute periódicamente y revise que cuenta ha bajado de su límite y envíe el email de notificación.

      Me gusta

  9. Hola Julian, he leido todos los consejos que das en este forum y veo que tienes muchos conocimientos acerca de asterisk y a2billing. Espero que me puedas ayudar con mi problema. tengo un servidor con asterisk 1.6 y freepbx 2.7 funcionando bien, puedo hacer llamadas a traves del trunking que tengo, osea funcionando bien. Acabo de instalar a2billing 1.9 (que solo en la instalacion demore como 2 meses, tu sabes que la informacion que hay en la web no es acertada) he configurado el mismo trunk de frepbx, he configurado rate, ratecard, callplan y he seguido al pie de la letra los pasos que explicas lineas arriba para hacer que a2b y freepbx se comuniquen. pero aun asi no puedo hacer el billing de las llamadas, incluso no veo ninguna llamada en a2b. me podrias guiar porfavor para saber porlomenos por donde atacar este problema?
    gracias,
    Juan

    Me gusta

    • Hola Juan, te recomiendo que adquieras una de nuestras soluciones hosteadas, así no tendras tantos problemas con la configuración A2Billing Hosteado, si por alguna razón no te sirve esta solución contáctame, y te ofrecemos un soporte personalizado de bajo costo que te solucione tu problema, ya que ha veces se escapa de los temas que tratamos en el blog

      Me gusta

  10. Hola Julian, me olvide de comentarte que el servidor con el q trabajo esta detras de un proxy y un firewall al cual no tengo acceso ni control. Tu crees que este problema tenga q ver con estos? si es asi, no podria hacer llamadas desde freepbx, pero como te explique en el comentario anterior si puedo hacer llamadas con freepbx, porfavor sugiereme algo que ya no se que mas hacer. saludos
    Juan

    Me gusta

  11. Muy claro el post pero mi necesidad es que tengo asterisk 1.8.x con FreePBX 2.9 en Centos 5.5 y requiero integrar A2Billing para administrar unos clientes, poseo Codec G729 y me gustaria apoyo al respecto, vivo en Colombia y estoy requiriendo apoyo. Por favor contactarme

    Me gusta

  12. Hola Julián, estoy intentando migrar todo mi sistema a a2billing, pero me encuentro con el siguiente problema
    Creo el trunk en freePBX, funciona perfecto
    Creo el usuario en a2billing, funciona perfecto, registra la cuenta desde signup.php, manda mail, activa, envia key, todo bien

    Seteo todos los rates, todo bien, creo el trunk, con el mismo nombre que en freepbx en la linea de Provider IP, pongo SIP como provider tech

    Cuando realizo llamadas directamente de freePBX, funcionan, cuando las hago desde la cuenta generada en a2billing me sale:

    «The number you have dialed is currently unavailable, please press…»

    == Using SIP RTP TOS bits 184
    == Using SIP RTP CoS mark 5
    — Executing [0549247715660092@a2billing:1] Answer(«SIP/3790887101-00000006», «») in new stack
    — Executing [0549247715660092@a2billing:2] Wait(«SIP/3790887101-00000006», «1») in new stack
    — Executing [0549247715660092@a2billing:3] DeadAGI(«SIP/3790887101-00000006», «a2billing.php,1») in new stack
    — Launched AGI Script /var/lib/asterisk/agi-bin/a2billing.php
    — Playing ‘prepaid-dest-unreachable’ (escape_digits=#) (sample_offset 0)
    — AGI Script a2billing.php completed, returning -1

    No importa la forma en qeu esté marcando, seguramente no esté saliendo por el trunk, que puede ser?

    Me gusta

  13. Hola, soy nueva en a2billing, y quisiera poder hacer que 2 extensiones de mi FREEPBX puedan tarifar, ¿es posible esto?¿como lo puedo hacer?.
    Gracias

    Me gusta

Deja un comentario