Hagamos que México crezca..

Prefiere el consumo de lo Hecho en México

Prefiere el consumo de lo Hecho en México
BúsquedaHagamos que México crezca..
![]() Prefiere el consumo de lo Hecho en México Posts Recientes
Conversación |
Configurando Asterisk para guardar los registros del CDR en MySQLPor default Asterisk guarda los registros de llamadas en un archivo llamado Master.csv el cuál es un archivo de texto separado por comas, pero para otros fines a veces es necesario tenerlo en una base de datos para su posterior consulta, por ello pongo aquí un tutorial de como conectar Asterisk a MySQL para guardar los CDRs.
Sobre entendiendo que ya se tiene instalado Asterisk, MySQL y todas las librerías requeridas continuamos. Por cuestión de licencias de MySQL, Asterisk ya no incluye la opción de guardar los registros en una base de datos de MySQL, por lo que ahora esa opción viene en Asterisk-addons el cuál se tiene que bajar para la versión de Asterisk a usar y compilarla.
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-addons-1.4.9.tar.gz sudo tar -xzvf asterisk-addons-1.4.9.tar.gz cd asterisk-addons-1.4.9 #Ya que se descargue y se descomprima la versión de Asterisk Addons se tendrán que editar los siguientes archivos sudo editor cdr/cdr_addon_mysql.c #agregar al principio la siguiente línea tal como está #define MYSQL_LOGUNIQUEID sudo editor cdr/Makefile #agregar al final la siguiente línea tal como está CFLAGS+=-DMYSQL_LOGUNIQUEID #ahora si compilamos asterisk-addons sudo make clean && sudo ./configure && sudo make && sudo make install #si es una instalación nueva tendrías que ejecutar despues sudo make samples, si no no es recomendable para que no borre configuraciones ya realizadas. #si todo salió bien en la compilación ahora edita el archivo sudo editor /etc/asterisk/modules.conf # y agrega al final load => cdr_addon_mysql.so #ahora crea un usuario con su password y una base de datos de mysql que será para el cdr de asterisk mysql -u root -p create database asteriskcdrdb; grant all privileges on asterisk.* to asterisk@localhost identified by "password"; flush privileges; exit; sudo editor asterisk.sql # crea un archivo y agrega lo siguiente CREATE TABLE `cdr` ( `calldate` datetime NOT NULL default '0000-00-00 00:00:00', `clid` varchar(80) NOT NULL default , `src` varchar(80) NOT NULL default , `dst` varchar(80) NOT NULL default , `dcontext` varchar(80) NOT NULL default , `channel` varchar(80) NOT NULL default , `dstchannel` varchar(80) NOT NULL default , `lastapp` varchar(80) NOT NULL default , `lastdata` varchar(80) NOT NULL default , `duration` int(11) NOT NULL default '0', `billsec` int(11) NOT NULL default '0', `disposition` varchar(45) NOT NULL default , `amaflags` int(11) NOT NULL default '0', `accountcode` varchar(20) NOT NULL default , `uniqueid` varchar(32) NOT NULL default , `userfield` varchar(255) NOT NULL default ); ALTER TABLE `cdr` ADD INDEX ( `calldate` ); ALTER TABLE `cdr` ADD INDEX ( `dst` ); ALTER TABLE `cdr` ADD INDEX ( `accountcode` ); #ahora ejecutemos el script de sql mysql -u asterisk -p asteriskcdrdb < asterisk.sql #ahora solo falta editar la conexión de asterisk a mysql, para eso editar el siguiente archivo sudo editor /etc/asterisk/cdr_mysql.conf #aqui editar los siguientes valores [global] hostname = localhost dbname=asteriskcdrdb table=cdr password = password user = asterisk port=3306 sock=/var/run/mysqld/mysqld.sock userfield=1 #es importante que en sock= asignes dónde mysql coloca ese arhivo en Debian y ubuntu por default lo pone en /var/run/mysqld/mysqld.sock #Ahora ya teniendo casi todo listo solo inicia asterisk sudo asterisk start #si usas freepbx entonces sudo amportal restart #verificamos que se haya cargado el módulo de mysql para asterisk sudo asterisk -rvvv PhylevnMobile*CLI> module show like mysql #y debería mostrar algo como lo siguiente Module Description Use Count cdr_addon_mysql.so MySQL CDR Backend 0 app_addon_sql_mysql.so Simple Mysql Interface 0 res_config_mysql.so MySQL RealTime Configuration Driver 0 3 modules loadedI> #ahora vemos el status de la conexión de MySQL PhylevnMobile*CLI> cdr mysql status #y mostraría algo como lo siguiente Connected to asteriskcdrdb@localhost, port 3306 using table cdr for 1 hours, 1 minutes, 0 seconds. Wrote 1 records since last restart. -- Registered IAX2 '300' (AUTHENTICATED) at 127.0.0.1:32768 #Si dice Not Connected entonces verificar los parámetros de conexión a la base de datos e igual checar que la base de datos esté dada de alta. #salimos PhylevnMobile*CLI> exit #ahora marcamos algún número desde un Softphone o teléfono IP para verificar que esté trabajando. #Checamos el registro de la base de datos mysql .u asterisk -p asteriskcdrdb mysql> select * from cdr; +---------------------+-------------+-----+--------+-----------+------------------+ | calldate | clid | src | dst | dcontext | channel +---------------------+-------------+-----+--------+-----------+------------------+ | 2009-07-21 21:36:44 | "1103" <Support> | 1103 | vmu101 +---------------------+-------------+-----+--------+-----------+------------------+ 1 row in set (0.00 sec)
Fuentes XML de comentario: RSS | Atom
Estadísticas de visitantes184274 |
Nube de EtiquetasEventosEncuestaComentarios Recientes
|
Dejar un comentario