Lighttpd la solución a la Interfaz Web de A2Billing


El día de hoy te voy a explicar porque es mejor utilizar A2Billing+Lighttpd que A2Billing+Apache para tener un mejor rendimiento de las funciones que realiza la interfaz web de nuestro servidor A2Billing.

Si bien es cierto que A2billing es una de las mejores plataformas de Calling-Card (tarjetas de llamadas) sobre Asterisk, también es una de las piezas de código complejo jamás escrito. Esto debido en buena parte a las múltiples funcionalidades que se han venido agregando desde sus inicios, así como también a la gran cantidad de programadores que colaboran en el proyecto.

Cuando empecé a implementar  A2Billing en muchos proyectos para algunos clientes, me daba cuenta que el servidor se colgaba mucho por consumo de memoria RAM, y revisando e indagando un poco por los logs del servidor me enteré, que los reportes que genera el A2Blling en la interfaz web consumían demasiada memoria RAM. Esto causado por la librería GD que muestra los gráficos de consumo de minutos y al alto contenido de registros en las tablas de llamadas de la base de datos.

Noté que cada consulta consumía alrededor de 256 MB de memoria RAM, haciendo que con tan solo unas pocas revisiones simultaneas a los reportes de llamadas, se colgara el servidor completamente.

Para poder resolver esto tuve dos alternativas:

  1. Cambiar el código del A2Billing referente a la visualización de los gráficos en los reportes o cambiarlos a otro tipo de lenguaje como lo puede ser flash.
  2. Cambiar la forma en que se interpretan dichas líneas de código para que se ejecuten de una manera más óptima.

De las dos alternativas que encontré la que requiere de menos tiempo y trabajo es la segunda, e indagando un poco me di cuenta de los grandes beneficios que tiene  Lighttpd+FastCGI a la hora de interpretar estas funciones gráficas.

Lighttpd es un servidor web mucho más liviano que Apache, dado su gran ahorro de recursos y específicamente para este caso la utilización del módulo FastCGI del Lighttpd.

Acá te dejo la configuración Lighttpd+FastCGI que utilizo en muchos de los servidores que tengo en producción:

lighttpd.conf

server.modules     = (
"mod_access",
"mod_auth",
"mod_status",
"mod_fastcgi",
"mod_accesslog" )

fastcgi.server             = ( ".php" =>
( "localhost" =>
(
"socket" => "/var/run/lighttpd/php-fastcgi.socket",
"bin-path" => "/usr/bin/php-cgi",
"idle-timeout" => 30,
"max-procs" => 1,
"min-procs" => 1
)
)
)

server.username            = "apache"
server.groupname           = "apache"

#### auth module
## read authentication.txt for more info
auth.backend               = "htpasswd"
auth.backend.htpasswd.userfile = "/var/www/.htpasswd"
auth.require               = ( "/" =>
(
"method"  => "basic",
"realm"   => "A2Billing Management",
"require" => "valid-user"
)
)

El módulo FastCGI reutiliza de manera óptima el uso de la memoria RAM, haciendo que nuestro servidor no requiera demasiada memoria para poder realizar los reportes gráficos generados en A2Billing.

10 Respuestas a “Lighttpd la solución a la Interfaz Web de A2Billing

  1. Muy buena info, pero necesito ayuda.

    Uso Ubuntu 10.10, tengo todo configurado: Apache + Asterisk + FreePBX

    ¿Cómo instalo el a2billing? ¿Me podés dar una mano?

    Me gusta

    • Hola Jose, en este momento estoy trabajando en la creación de un manual paso paso, no solo para la instalación del A2Billing, sino también su correcta configuración dependiendo de la función que quieras utilizarlo, si estas pendiente del blog, te estaré avisando cuando estará listo.
      De toda formas acá te dejo un enlace que te sera útil para instalar A2Billing si ya tienes instalado apache, asterisk y freepbx:
      Instalar A2billing en debian

      Ubuntu esta basado en Debian por lo que los comandos utilizados ahí, te servirán de igual manera.
      Si tienes algún problema con la instalación y te puedo ayudar con mucho gusto.
      Ing Julián Castillo

      Me gusta

  2. Estimado señor, tengo un CentOS 5.5 y quiero instalar a2billing para montar una interfaz web para que los clientes vean sus saldos en linea y los minutos cursados por la plataforma VOIP, me puede dar alguna referencia o manual al respecto de como debo instalar a2billing y que más necesito para que sea vea a travez de la web, ya tengo enlace de fibra 100Mbps y tengo IP Fija.

    Me gusta

    • Hola Elliot, precisamente nos encontramos diseñando un manual de instalación y configuración paso a paso que esperamos tener disponible próximamente, también te aclaro que A2Billing es un software de tarificación VoIP open source, que requiere de Asterisk para su funcionamiento, primero publicaremos la guía de instalación en Debian pero próximamente lo tendremos sobre CentOS, te recomiendo que te registres gratuitamente al blog para que estés al tanto de todos los artículos y noticias publicados directamente desde tu correo electrónico.

      Cordial Saludo
      Ing. Julián Castillo

      Me gusta

  3. Hola a todos,

    Tengo una duda con respecto a la funcionalidad de transferencia de llamadas con Asterisk y A2Billing. Instalé A2billing para llevar la tarificación de los diferentes departamentos de una empresa. Para ello hacía la distinción entre llamadas que quería tarificar y las que no.

    Para ello cuando quería tarificar en el extensions.conf mandaba las llamadas a través del A2Billing (por ejemplo las llamadas a móviles).

    Si no, pues las dejaba que se tratasen internamente.

    La cuestión es, que antes de instalar A2Billing, nada más que con Asterisk, yo tenía la siguiente funcionalidad:

    La secretaría llamaba a una persona X, cuando contactaba con él le decía qu esperese un momento, llamaba al director por otra línea y con la tecla transfer ponía a los dos en contacto.

    Ahora con A2Billing esta funcionalidad se ha perdido. Alguien tiene alguna idea de como se podría hacer, o de si al menos es posible? Para que A2billing tarifique ambas llamadas y no solo la de la secretaria?

    Muchas gracias,

    Me gusta

  4. Estimado, felicidades por este sitio, y gracias por su ayuda.

    Tengo una duda, es posible con astersik Free pbx +A2B separar la señalización SIP del flujo RTP, lo que quiero hacer es que viaje por diferentes caminos, uno es solo consulta de saldo a la plataforma y el otro es solo para mover el audio RTP, no soy experto en Asterisk, soy experto en señalización 7, y quiero ver si es posible hacer esto con Asterisk, para iniciar migración de mi plataforma en S7, gracias, saludos

    Me gusta

    • Hola Juan Carlos, lo que quieres hacer no es un asunto fácil de lograr, pero claro que se puede, y se logra con asterisk+a2billing+openser openser te ayuda a manejar la señalización sip y el audio RTP puedes enviarlo a varios asterisk en paralelo, también tendrás que utilizar asterisk realtime para poder tener un único sistema de autentificación para todo, aunque ese tema se escapa ya un poco de lo que manejo en este blog puedes consultar por internet ya algunos han hecho esta integración.

      Me gusta

  5. estimado todo me salio bien, hasta que ingrese al panel de administracion del a2billing elijo algun modulo del menu y me envia a la pagina admin/Public/PP_error.php?c=accessdenied por que sucede esto, algo con las variables de session instale a2billing 1.8 con lighttpd saludos

    Me gusta

    • Hola Julio, ese problema te puede pasar por varias cosas, una puede ser que no hayas configurado correctanmente el archivo a2billing.conf con los datos para conectarse a la base de datos, y la otra tal vez por los permisos 777 de las carpetas template_c del admin, prueba con eso haber como te va.

      Me gusta

Deja un comentario