lunes, 23 de mayo de 2016

CDR EN ASTERISK




1.- Ingresar como root a mysql  :

# mysql -u root -p

2.- Crear usuario mysql para el cdr :

# Grant all privileges on  asteriskcdr.* to 'userbd'@'%' identified by 'password' with grant option;

3.- Crear la tabla para guardar los datos del cdr.

CREATE SCHEMA IF NOT EXISTS `asteriskcdr` DEFAULT CHARACTER SET utf8;
CREATE TABLE IF NOT EXISTS `asteriskcdr`.`cdr` (
`uniqueid` VARCHAR(32) NOT NULL DEFAULT '' ,
`linkedid` VARCHAR(32) NOT NULL DEFAULT '' ,
`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 '' ,
`start` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
`answer` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
`end` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
`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 '' ,
`userfield` VARCHAR(255) NOT NULL DEFAULT '' ,
`sequence` VARCHAR(32) NOT NULL DEFAULT '' ,
`peeraccount` VARCHAR(32) NOT NULL DEFAULT '' ,
PRIMARY KEY (`uniqueid`) ,
INDEX `start` (`start` ASC) ,
INDEX `dst` (`dst` ASC) ,
INDEX `accountcode` (`accountcode` ASC) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;

4.- Editamos  el archivo  /etc/asterisk/cdr_mysql.so , y agregamos las siguientes lineas.

[global]
hostname=ip de la BD
dbname=asteriskCDR
table=cdr
password=de la bd
user=asterisk
port=3306
sock=/tmp/mysql.sock

[columns]
;static "" => ;alias => alias start => calldate
alias callerid => clid
;alias src => src
;alias dst => dst
;alias dcontext => dcontext
;alias channel => channel
;alias dstchannel => dstchannel
;alias lastapp => lastapp
;alias lastdata => lastdata
;alias duration => duration
;alias billsec => billsec
;alias disposition => disposition
;alias amaflags => amaflags
;alias accountcode => accountcode
;alias userfield => userfield
;alias uniqueid => uniqueid

Guardamos el archivo y luego ingresamos a CLI de asterisk .

5.- Verificamos si contamos con el modulo instalado .

CLI> module show like cdr_mysql.so
Module                         Description                              Use Count
cdr_mysql.so                   MySQL CDR Backend                        0
1 modules loaded

6.- Para iniciar la grabación del  CDR en la database descargamos y cargamos el módulo:

CLI> module unload cdr_mysql.so
== Unregistered 'mysql' CDR backend


*CLI> module load cdr_mysql.so
Loaded cdr_mysql.so
  == Parsing '/etc/asterisk/cdr_mysql.conf': Found
 Loaded cdr_mysql.so => (MySQL CDR Backend)

7.- Luego comprobar si  todo esta  bien:

*CLI> cdr mysql status
Connected to asteriskcdr@localhost, port 3306 using table cdr for 51 seconds.
  Wrote 0 records since last restart.


*CLI> cdr show status

Call Detail Record (CDR) settings
----------------------------------
  Logging:                    Enabled
  Mode:                       Simple
  Log unanswered calls:       No
  Log congestion:             No

* Registered Backends
  -------------------
    mysql
    Adaptive ODBC
    csv
    cdr-custom



Saludos!!


No hay comentarios.:

Publicar un comentario