Diferencia entre revisiones de «CDR-Stats»
Línea 211: | Línea 211: | ||
Y realizamos una pequeña modificación en la dirección del servidor para poder acceder con nuestra ip de servidor Asterisk: | Y realizamos una pequeña modificación en la dirección del servidor para poder acceder con nuestra ip de servidor Asterisk: | ||
− | {{Comando|sudo sed -i "s/LOCALHOST/ | + | {{Comando|sudo sed -i "s/LOCALHOST/'''nuestra_direccion_ip_local''':8008/g" /var/www/cdrstats/index.html}} |
− | |||
− | |||
== Referencias == | == Referencias == |
Revisión del 12:42 6 jun 2012
To Do Esta página necesita ser completada. Puedes revisar todas las páginas por completar en este enlace. |
CDR-Stats es una interfaz web, que sirve para mostrar todo tipo de estadísticas, basada en el sencillo Registro de llamadas que ofrece Asterisk y en la actualidad, es el más completo al menos, con una licencia Open Source (Mozilla Public License V2).
Sumario
Descripción General
CDR-Stats es una aplicación web creada por Areski Belaid en 2010, y ofrecida a la comunidad desde entonces. En la actualidad pertenece a Star2Billing Inc, misma compañia creadora del sistema A2Billing
Esta aplicación esta basada en Python, concretamente, en su framework Django [1] y utiliza una base de datos especifica para la gestión del sistema llamada MongoDB (No esta basada en consultas SQL)
Básicamente sirve de interfaz visual, muy atractiva y llamativa, para poder filtrar, y controlar todos los registros CDR que vayan almacenandose en una base de datos SQL (no valido para instalaciones del sistema CDR basados en ficheros CSV).
Instalación
Existen dos partes relacionadas a la instalación del sistema CDR-Stats.
Por un lado la implícita de Asterisk, relacionada a conseguir que el [Registro Llamadas y Eventos|registro de llamadas]] pase a la Base de Datos de forma autónoma.
Por otro lado, sería la instalación de la plataforma Django en la que esta basada CDR-Stats. Para ello el creador provee un script generico en su página web oficial [2]
Hay que decir, que la instalación se ha complicado tanto con las últimas versiones que por eso surgio la idea de utilizar un Script, pero aún así es importante entender el proceso de la instalación al menos en términos generales, porque el script en sí tiene una tendencia demasiado alta a fallar, ya que esta condicionado al entorno Linux que estemos utilizando y cualquier cambio en la versión de un solo componente o forma de realizar algo pararía la ejecución del script y nos dejaría la instalación a medias. Además la instalación por script entiende que estamos trabajando con un usuario root, lo que puede ser no ser el caso, si realizamos la instalación Segura basándonos en las políticas de control de acceso de Asterisk.
En este caso, ofrecemos una versión "manual" de la instalación y menos perecedera dado que hecha la primera parte, la parte de configuración especifica no resulta tan compleja.
En primer lugar descargamos el paquete correspondiente a la última versión de CDR-Stats del siguiente enlace.
A continuación lo descomprimimos en un directorio, por ejemplo:
Y accedemos al directorio de descompresión, para comenzar a aplicar los cambios. Vamos a preparar la interfaz web primero. Para ello creamos un directorio dentro de nuestra raíz WWW por ejemplo
Ahora en siguiente lugar hay que instalar todo el software necesario para que el sistema CDR-Stats funcione:
libevent-dev libapache2-mod-python libapache2-mod-wsgi git-core mercurial gawk
hg+http://bitbucket.org/andrewgodwin/south/@ecaafda23e600e510e252734d67bf8f9f2362dc9#egg=South-dev
Creamos el directorio para logs:
Instalamos CDR-Stats en su directorio de instalación por defecto, en este caso: /usr/share/cdr_stats.
Instalando MongoDB
Es necesario lanzar los siguientes comandos en orden.
Necesitamos instalar el paquete debian para la base de datos Mongo, para ello necesitamos añadir un repositorio y una clave a nuestro sistema Ubuntu:
dist 10gen" >> /etc/apt/sources.list'
Por otro lado, necesitamos aplicar algunas configuraciones específicas para su funcionamiento:
Instalando Python Virtual Environment
Instalamos la característica de entornos virtuales.
Preparando el entorno Virtual
{{Comando|sudo sh -c 'echo "export WORKON_HOME=/usr/share/virtualenvs"
>> ~/.bashrc'}
>> ~/.bashrc'
Instalando dependencias Python
Ahora creamos un pequeño script para instalar todas las dependencias de Django Python de un golpe gracias a los ficheros de instalación que provee CDR-Stats:
do
pip install $line
done
echo "Install Django requirements..."
for line in $(cat /usr/src/cdr-stats/install/requirements/django-requirements.txt)
do
pip install $line
done
Volvemos a instalar la dependencia South ahora en el entorno virtual:
hg+http://bitbucket.org/andrewgodwin/south/@ecaafda23e600e510e252734d67bf8f9f2362dc9#egg=South-dev
Vamos a establecer una clave aleatoria para la seguridad del sistema:
Deshabilitamos el entorno de depuración:
Y ahora tenemos que acceder al fichero settings_local.py dentro del directorio de instalación settings_local.py para establecer los parametros de configuración de nuestra base de datos MySQL:
'ENGINE': 'django.db.backends.mysql',
'NAME': 'cdrstats',
'USER': 'asterisk',
'PASSWORD': 'asterisk',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS': {
'init_command': 'SET storage_engine=INNODB',}}}
Creamos la base de datos y le damos privilegios al usuario asterisk:
Y condecedemos privilegios
Configuración General
Ahora vamos a realizar algunos ajustes en el sistema dentro del directorio de instalacion:
Creamos algunos ficheros para el sistema de logging:
Ahora creamos la estructura de tablas dentro de la base de datos:
Y creamos el usuario administrador de CDR-Stats:
Ahora vamos a configurar la base de datos de CDR de Asterisk:
Ahora dentro del fichero settings_local.py modificamos para adaptarlo a nuestra base de datos:
'127.0.0.1': {
'db_name': 'asterisk',
'table_name': 'cdr',
'host': 'localhost',
'user': 'asterisk',
'password': 'asterisk',
},}
Tenemos que configurar también la parte relacionada a Apache:
<VirtualHost *:8008>
DocumentRoot /usr/share/cdr_stats/
ErrorLog /var/log/cdr-stats/err-apache-cdr-stats.log
LogLevel warn
Alias /static/ "/usr/share/cdr_stats/static/"
<Location "/static/">
SetHandler None
</Location>
WSGIPassAuthorization On
WSGIDaemonProcess cdr-stats user=www-data user=www-data threads=25
WSGIProcessGroup cdr-stats
WSGIScriptAlias / /usr/share/cdr_stats/django.wsgi
<Directory /usr/share/cdr_stats>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Ahora configuramos el proceso Socket IO:
Para ello volvemos a modificar el fichero settings_local.py:
SOCKETIO_PORT = 9000
SOCKETIO_CALLNUM_DEFAULT = 0
Y finalmente reiniciando el servidor Apache:
Ya tendríamos la primera parte funcionando. Para comprobar que todo ha ido bien podemos acceder a nuestro servidor desde un navegador: http://<nuestra_direccion_ip_local>:8008
Instalando la Interfaz Web
Copiamos dentro todos los ficheros relativos a la interfaz web, dentro del directorio que descomprimimos el paquete CDR-Stats:
Ahora creamos un fichero dentro del directorio Apache:
DocumentRoot '/var/www/cdrstats'
DirectoryIndex index.html index.htm index.php index.php4 index.php5
<Directory '/var/www/cdrstats'>
Options Indexes IncludesNOEXEC FollowSymLinks
allow from all
AllowOverride All
allow from all
</Directory>
</VirtualHost>
Y eliminamos el script por defecto:
Volvemos a reiniciar el servidor Apache:
Y realizamos una pequeña modificación en la dirección del servidor para poder acceder con nuestra ip de servidor Asterisk:
Referencias
- ↑ Django Project, Django Software Foundation (2005)
- ↑ Script de Instalación de CDR-Stats, en Inglés, Areski Belaid