Asterisk PBX y Telefonía IP Ing. Nils Alvarez Huamán dCAA | dCAP | LPIC-1 | Novell CLA nalvarhu@gmail.com Asterisk PBX y Telefonía IP Clase 12 REPORTE DE LLAMADAS CDR Temas: 1.- Entender el formato del CDR de Asterisk en el LOG 2.- Implementación de una Base de Datos MySQL para el Cdr 3.- Configuración de ficheros involucrados 4.- Instalación de Interfaz web Asterisk CDR de Areski Asterisk PBX y Telefonía IP Call Detail Record Asterisk PBX y Telefonía IP Asterisk PBX y Telefonía IP Formato de los informes de contabilidad de llamadas del Asterisk El Asterisk genera los informes de contabilidad de llamadas, también conocidos como CDR (Call Detail Records, o, registro detallado de llamadas), para cada llamada. Los registros son almacenados en un archivo de texto separado por comas, también conocido como CSV (comma separated value), en el directorio: /var/log/asterisk/cdr-csv/ Asterisk PBX y Telefonía IP Asterisk PBX y Telefonía IP Asterisk PBX y Telefonía IP Asterisk PBX y Telefonía IP Almacenando en una base de datos MySQL. Asterisk también puede almacenar registros de CDR en un banco de datos MySQL. De ello se encarga el el modulo cdr_adaptive_odbc.so CDR ADAPTIVE Permite crear distintas tablas donde guardar los registros de llamadas *CLI> module show like cdr_adaptive_odbc.so Asterisk PBX y Telefonía IP Tabla CDR Asterisk PBX y Telefonía IP Configuración de ficheros ODBC #vim /etc/odbc.ini [asteriskcdr] Description = MySQL ODBC CDR Driver = MySQL Database = asteriskcdr Server = localhost User = root Password = s3kr3t Port = 3306 Option = 3 Asterisk PBX y Telefonía IP Configuración de ficheros ODBC #vim /etc/odbc.ini [asteriskcdr] Description = MySQL ODBC CDR Driver = MySQL Database = asteriskcdr Server = localhost User = root Password = s3kr3t Port = 3306 Option = 3 Para probar la conexión entre ODBC y la base de datos isql asteriskcdr root s3kr3t asteriskcdr – etiqueta que da inicio al bloque configurado en odbc.ini root – nombre del usuario que tiene acceso a la base de datos creada s3kr3t – la contraseña de MySQL para el usuario root Asterisk PBX y Telefonía IP Configuración de ficheros ODBC #vim /etc/asterisk/res_odbc.conf [asteriskcdr] enabled => yes dsn => asteriskcdr username => root password => s3kr3t pre-connect => yes Para cargar los cambios *CLI>module reload res_odbc.so asteriskcdr – etiqueta que da inicio al bloque configurado en odbc.ini root – nombre del usuario que tiene acceso a la base de datos creada s3kr3t – la contraseña de MySQL para el usuario root Asterisk PBX y Telefonía IP La opcion dsn es la conexión de la base de datos que se ha configurado en /etc/odbc.ini La opcion pre-connect le dice a Asterisk para abrir y mantener una conexión con la base de datos al cargar el módulo res_odbc.so. Esto reduce la sobrecarga que en ocaciones podría repetir la creación de conexiones a la base de datos. Linux Asterisk res_odbc.conf [asteriskcdr] enabled => yes dsn => asteriskcdr pre-connect => yes /etc/odbc.ini [asteriskcdr] Description = ODBC CDR Driver = MySQL Server = localhost database Asterisk PBX y Telefonía IP Configuración de ficheros ODBC Asterisk PBX y Telefonía IP Configuración de ficheros ODBC #vim /etc/asterisk/cdr_adaptive_odbc.conf [asteriskcdr] connection = asteriskcdr table=cdr alias start => calldate La opción connection es obligatorio e indica la conexión de base de datos usado, hace referencia a la conexión configurada el res_odbc.conf El modulo cdr_adaptive_odbc.so reemplaza a cdr_odbc.so Reiniciar el servicio Asterisk: *CLI> core stop now #asterisk #asterisk -rvvvvv Reiniciar MySQL #service mysqld restart Asterisk PBX y Telefonía IP cdr_adaptive_odbc.conf Asterisk [asteriskcdr] connection=asteriskcdr tabla=cdr Linux res_odbc.conf /etc/odbc.ini [asteriskcdr] enabled => yes dsn => asteriskcdr pre-connect => yes [asteriskcdr] Description = ODBC CDR Database = asteriskcdr Driver = MySQL Server = localhost User = root Password = s3kr3t Port = 3306 database Asterisk PBX y Telefonía IP Interfaz Web Asterisk CDR Descargar el modulo Web del CDR “asterisk-stat” en /var/www/html/: #cd /var/www/html/ #wget http://areski.net/asterisk-stat-v2/asterisk-stat-v2_0_1.tar.gz #tar -xvzf asterisk-stat-v2_0_1.tar.gz #mv asterisk-stat-v2 reportes Interfaz Asterisk PBX y Telefonía IP #cd /var/www/html/reportes #vim lib/defines.php define ("WEBROOT", "http://ipdelservidor/reportes/"); define ("FSROOT", "/var/www/html/reportes/"); define ("LIBDIR", FSROOT."lib/"); define ("HOST", "localhost"); define ("PORT", "3306"); define ("USER", "root"); define ("PASS", "s3kr3t"); define ("DBNAME", "asteriskcdr"); define ("DB_TYPE", "mysql"); // mysql or postgres define ("DB_TABLENAME", "cdr"); Interfaz Asterisk PBX y Telefonía IP Crear un enlace simbólico #cd /var/www/html/reportes #ln -s cdr.php index.php Verificar la instalación en http://ipdelservidor/reportes/ Interfaz Asterisk PBX y Telefonía IP Interfaz Web Asterisk CDR Interfaz