Soporte & Consultoria

Soporte Remoto y Consultoria skype : ambiorixg12.
Nota no se brinda ningun tipo de consulta o soporte fuera del blog de forma gratuita

domingo, 11 de marzo de 2012

Asterisk Realtime CDR

 

Asterisk Realtime CDR

Asterisk Realtime CDR
por: Pablo Umanzor A.




Si necesitamos analizar el detalle de las llamadas que ha realizado nuestro Asterisk y asi controlar nuestros recursos es posible hacerlo enviando el CDR (Call Detail Record) a una base de datos como Mysql o Postgresql.
Para ello es necesario

a)Instalar MySQL-Server o Postgresql en la misma maquina 
b)usar un servidor mysql existente en otra maquina. 

Para el primer caso en Debian Etch instalar mysql-server y las librerias libmysqlclient15-dev y libmysqlclient15off
apt-get install mysql-server libmysqlclient15off libmysqlclient15-dev
Luego dentro del directorio /usr/src/asterisk-addons-1.4.7 y ejecutar
make clean
make menuconfig
Seleccionar la opcion "Call Detail Recording
y checkear si la opcion [*] 1. cdr_addon_mysql
se encuentra activa (con *) , si no se encuentra activa - es decir con una X en vez de * es por que no se ha instalado las dependencias necesarias para salir presionar la letra X luego recompilar con make y make install
Posteriormente ir al directorio de archivos de configuracion de Asterisk /etc/asterisk y editar los archivos cdr_mysql.conf y res_mysql.conf
archivo cdr_mysql.conf
[global]
hostname=localhost
dbname=asterisk
table=cdr
password=clave
user=usuario
port=3306
;sock=/tmp/mysql.sock
;userfield=1
 
archivo res_config_mysql.conf
[general]
dbhost = 127.0.0.1
dbname = asterisk
dbuser = usuario
dbpass = clave
dbport = 3306
;dbsock = /tmp/mysql.sock
Si nuestra base de datos mysql se encuentra en otra maquina cambiar hostname y dbhost con la ip que corresponda
creamos la base de dato

iniciamos sesión  en el servidor

root@ubuntu:~# mysql -u root  -p

mysql> create database asterisk;
luego se debe crear la tabla "cdr" en nuestra DB

use asterisk  /selecionar la base de dato

# estructura de la tabla CDRs (en script para MySQL)
 
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 ' ',
 KEY `calldate` (`calldate`),
 KEY `dst` (`dst`),
 KEY `accountcode` (`accountcode`)
 ) ENGINE=MyISAM ;
       
ALTER TABLE `cdr` ADD `uniqueid` VARCHAR(32) NOT NULL default ;
ALTER TABLE `cdr` ADD INDEX ( `calldate` );
ALTER TABLE `cdr` ADD INDEX ( `dst` );
ALTER TABLE `cdr` ADD INDEX ( `accountcode` ); 
 
 
por ultimo reiniciar Asterisk e ingresar a la consola para verificar si los cambios y la tabla ha sido reconocida con el comando
Asterisk*CLI> realtime mysql status
Teniendo ya nuestro CDR en la DB podemos hacer consultas directamente en mysql o usar la aplicacion CDR tool, la cual puede bajar directamente desde
* http://areski.net/asterisk-stat-v2/
Luego simplemente en el archivo lib/defines.php cambiar los datos de conexion a la DB
define ("HOST", "localhost");
define ("PORT", "3306");
define ("USER", "usuario");
define ("PASS", "clave");
define ("DBNAME", "nombre_db");
define ("DB_TYPE", "mysql"); // mysql or postgres
define ("DB_TABLENAME", "tabla");
 
Tambien puede ver los siguientes links :

Como realizar llamadas ocultas del CDR en Asterisk.

 http://www.757.org/~joat/wiki/index.php?n=Main.InstallingCDRCallDetailRecordsUsingMySQL
 
http://www.asterisk.org/docs/asterisk/trunk/functions/cdr

http://www.voip-info.org/wiki/view/Asterisk+cdr+mysql

http://code.google.com/p/asterisk-cdr-viewer/

https://wiki.asterisk.org/wiki/display/AST/CDR+Fields

https://wiki.asterisk.org/wiki/display/AST/MySQL+CDR+Backend

https://wiki.asterisk.org/wiki/display/AST/CDR+Variables

http://info.linuxmall.cl/wiki/index.php/Asterisk_Realtime_CDR

No hay comentarios:

Publicar un comentario