Diferencia entre revisiones de «CDR-Stats»

De Asterisk Wiki
Ir a la navegación Ir a la búsqueda
Línea 48: Línea 48:
 
Instalamos CDR-Stats en su directorio de instalación por defecto, en este caso: '''/usr/share/cdr_stats'''.
 
Instalamos CDR-Stats en su directorio de instalación por defecto, en este caso: '''/usr/share/cdr_stats'''.
  
{{Comando|sudo cp -r ./cdr_stats/* /usr/share/cdr_stats}}
+
{{Comando|sudo mkdir /usr/share/cdr_stats/}}
 +
{{Comando|sudo chown -R asterisk:asterisk /usr/share/cdr_stats/}}
 +
{{Comando|cp -r ./cdr_stats/* /usr/share/cdr_stats}}
 +
 
  
 
=== Instalando MongoDB ===
 
=== Instalando MongoDB ===
Línea 98: Línea 101:
  
 
{{Comando|sudo cp /usr/src/cdr-stats/install/conf/settings_local.py /usr/share/cdr_stats}}
 
{{Comando|sudo cp /usr/src/cdr-stats/install/conf/settings_local.py /usr/share/cdr_stats}}
 +
 +
Vamos a establecer una clave aleatoria para la seguridad del sistema:
 +
 +
{{Comando|RANDPASSW=`</dev/urandom tr -dc A-Za-z0-9| (head -c $1 > /dev/null 2>&1 || head -c 50)`}}
 +
{{Comando|sed -i "s/^SECRET_KEY.*/SECRET_KEY = \'$RANDPASSW\'/g" /usr/share/cdr_stats/settings.py}}
 +
 +
Deshabilitamos el entorno de depuración:
 +
 +
{{Comando|sed -i "s/DEBUG = True/DEBUG = False/g"  /usr/share/cdr_stats/settings_local.py}}
 +
{{Comando|sed -i "s/TEMPLATE_DEBUG = DEBUG/TEMPLATE_DEBUG = False/g"  /usr/share/cdr_stats/settings_local.py}}
 +
 +
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:
 +
 +
{{Archivo|/usr/share/cdr_stats/settings_local.py|DATABASES = {<br>'default': {<br><br>'ENGINE': 'django.db.backends.mysql',<br><br>'NAME': 'asterisk',<br>'USER': 'asterisk',<br>
 +
'PASSWORD': 'asterisk',<br>'HOST': 'localhost',<br>'PORT': '3306',<br>'OPTIONS': {<br>'init_command': 'SET storage_engine=INNODB',<br>}<br>}}}
  
  

Revisión del 11:18 6 jun 2012

Alert.png 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).

Logo de CDR-Stats

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 implicita 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]

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:

# unzip cdr-stats-version-x.y.z.zip


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

# mkdir /var/www/cdrstats


# chown -R asterisk:asterisk /var/www/cdrstats/


Ahora en siguiente lugar hay que instalar todo el software necesario para que el sistema CDR-Stats funcione:

# sudo aptitude install python-setuptools python-dev build-essential
libevent-dev libapache2-mod-python libapache2-mod-wsgi git-core mercurial gawk


# sudo easy_install pip


# sudo pip install -e
hg+http://bitbucket.org/andrewgodwin/south/@ecaafda23e600e510e252734d67bf8f9f2362dc9#egg=South-dev


Creamos el directorio para logs:

{{Comando|sudo mkdir /var/log/cdr-stats}

Instalamos CDR-Stats en su directorio de instalación por defecto, en este caso: /usr/share/cdr_stats.

# sudo mkdir /usr/share/cdr_stats/


# sudo chown -R asterisk:asterisk /usr/share/cdr_stats/


# cp -r ./cdr_stats/* /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:

# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10


# sudo sh -c 'echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart
dist 10gen" >> /etc/apt/sources.list'


# sudo aptitude update


# sudo aptitude install mongodb-10gen


Por otro lado, necesitamos aplicar algunas configuraciones específicas para su funcionamiento:

# cd /etc/init.d/


# sudo update-rc.d -f mongodb defaults


# sudo sed -i "s/#port = 27017/port = 27017/g" /etc/mongodb.conf


# sudo service mongodb restart


Instalando Python Virtual Environment

Instalamos la característica de entornos virtuales.

# sudo easy_install virtualenv


# sudo easy_install virtualenvwrapper


Preparando el entorno Virtual {{Comando|sudo sh -c 'echo "export WORKON_HOME=/usr/share/virtualenvs"
>> ~/.bashrc'}

# sudo sh -c 'echo "source $SCRIPT_VIRTUALENVWRAPPER"
>> ~/.bashrc'


# sudo chown -R asterisk:asterisk /usr/share/virtualenvs/


# source /usr/local/bin/virtualenvwrapper.sh


# mkvirtualenv cdr-stats


# workon cdr-stats


Instalando dependencias Python

# sudo easy_install -U distribute


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:

Archivo: ./dependencias_cdrstats.sh
for line in $(cat /usr/src/cdr-stats/install/requirements/basic-requirements.txt)
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


# sudo chmod +x dependencias_cdrstats.sh


# ./dependencias_cdrstats.sh


Volvemos a instalar la dependencia South ahora en el entorno virtual:

# sudo pip install -e
hg+http://bitbucket.org/andrewgodwin/south/@ecaafda23e600e510e252734d67bf8f9f2362dc9#egg=South-dev


# sudo cp /usr/src/cdr-stats/install/conf/settings_local.py /usr/share/cdr_stats


Vamos a establecer una clave aleatoria para la seguridad del sistema:

# (head -c $1 > /dev/null 2>&1


# {{{1}}}


Deshabilitamos el entorno de depuración:

# {{{1}}}


# {{{1}}}


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:

Archivo: /usr/share/cdr_stats/settings_local.py
{{{2}}}

}


Instalando la Interfaz Web

Copiamos dentro todos los ficheros relativos a la interfaz web, dentro del directorio que descomprimimos el paquete CDR-Stats:

# sudo cp -r install/landing-page/* /var/www/cdrstats/


Ahora creamos un fichero dentro del directorio Apache:

Archivo: /etc/apache2/sites-enabled/welcome-cdr-stats.conf
<VirtualHost *:80>
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:

# sudo rm /etc/apache2/sites-enabled/000-default




Referencias

  1. Django Project, Django Software Foundation (2005)
  2. Script de Instalación de CDR-Stats, en Inglés, Areski Belaid

Véase también

Enlaces Externos

  • Mongo DB, página oficial de esta Base de Datos no Relacional.
  • A2Billing, pagina oficial del sistema de facturación A2Billing