Asterisk, CDR en mysql

In: asterisk|linux|mysql

9 Nov 2009

Call Detail Records
Las centrales telefónicas generan los llamados Call Detail Records (CDR) que son archivos o logs que contienen información detallada acerca de las llamadas tanto de donde fueron originadas, terminadas o que pasa por el intercambio de las mismas. Y claro no es sorprendente que los CDR se utilizan para la facturación. Fuente: http://www.voip-info.org/wiki/view/CDR

Ahora bien Asterisk es una central telefonica en la que podemos variar  tipo de informacion y almacenamiento que este sistema va a recolectar para sus  CDRs

Asterisk puede trabajar sus CDR de las siguientes formas:

  • Csv – archivos de texto con valores separados coma
  • Cdr SQLite – logs de CDR en la base de datos de SQLite
  • Pgsql – logs de CDR en las bases de datos de PostgreSQL
  • Odbc – logs de CDR a cualquier base de datos con soporte unixODBC
  • Mysql – logs  de CDR en las bases de datos de MySQL
  • Cdr FreeTDS – logs CDR en MS SQL o a la base de datos de Sybase a través de los conductores de FreeTDS
  • Yada – logs de CDR registrados en cualquier base de datos con soporte  yada.

Pero lo que veremos por el momento es como conectar nuestro mysql para guardar los CDRs

Primero vamos a crear la tabla que guardara nuestros datos en el Mysql

CREATE DATABASE asterisk;

GRANT INSERT
  ON asterisk.*
  TO asterisk@localhost
  IDENTIFIED BY 'tu_clave';

USE asterisk;
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 ''
);

Segundo tenemos que contar con soporte cdr_mysql en nuestro sistema asterisk, como verificamos esto:

dentro del CLI de asterisk corremos

 show modules

…. y la salida tendria que ser algo asi

app_addon_sql_mysql.so         Simple Mysql Interface                   0
cdr_addon_mysql.so             MySQL CDR Backend                        0
134 modules loaded

si por alguna razon no los tenemos cargados, podemos compilar los add-ons de asterisk y luego cargarlos

load app_addon_sql_mysql.so
load cdr_addon_mysql.so

por ultimo crearemos la conexion entre estos 2 sistemas modificaremos el archivo cdr_mysql.conf

[root@SRV-ASTERISK asterisk]# nano /etc/asterisk/cdr_mysql.conf
[global]

hostname=127.0.0.1
dbname=asterisk
table=cdr
password=usuario
user=password
port=3306
;sock=/tmp/mysql.sock
;userfield=1

bueno luego de estos 3 pasos quedara listo nuestros CDRs en Mysql para la central telefonica Asterisk.

Post to Twitter Tweet This Post Post to Delicious Delicious

Comment Form

Acerca de este Blog

Este espacio esta dedicado a la difusión del software libre en todas sus expresiones, es mi espacio técnico personal, para difundir a todos los rincones el conocimiento libre. "La verdad os hará libres" (Jn 8,32); El techno :Editor, redactor, ingeniero, tecnico, desarrollador, musico y DJ wannabe, etc.. ese soy yo y este es mi espacio

  • http://newspcs.com: [...] y también pensando que la maravillosa SGAE nos pueda sancionar.Éste post fué visto en el bl [...]
  • techno: @maski: para los que no tienen acceso a ediar el .htaccess hay un plugin que lo hace desde adentro d [...]
  • Maski: Me gusta, muy importante resaltar lo de los accesos a directorios, lo del wp-admin no se me habia oc [...]
  • Como Forzar la velocidad de la placa de red en Debian o Ubuntu | AdslFaqs.com.ar: [...] | Forzar velocidad en NIC debian / ubuntu Tags: chmod, Debian, Linux Debian, scripts, sis [...]
  • El techno: lo que podrias hacer es reemplazar el $(which ethtool)" por el path completo de tu binario ejem: /us [...]

Nuestro Patrocinadores

Tags

Mi galeria de fotos

Mazinger ZMazinger Zno se como lo hace (bruno)no se como lo hace (bruno) 2carga pesada al estilo indu 1carga pesada al estilo indu 2una tv en Solid Statepauloalvarado ipodEsquilandia GuatemalaEl techno en una sinagogaDSC00966DSC00962

Este blog se publica bajo licencia

Blog bajo licencia Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License
Creative Commons License

Calendario

September 2010
M T W T F S S
« Jul    
 12345
6789101112
13141516171819
20212223242526
27282930