La siguiente es una guia de como instalar y configurar asterisk 11, ademas agregamos usaremos mysql para guardar nuestro registro de llamadas.
Después de tener instalado Centos siempre es bueno actualizar:
yum update -y
También es recomendable des habilitar Selinux y no lo manejamos muy bien.
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
reboot
Instalando dependencias básicas
yum install -y make wget openssl-devel ncurses-devel newt-devel libxml2-devel kernel-devel gcc gcc-c++ sqlite-devel
Instalando Dependencias necesarias para el conector ODBC y para CDR
yum install mysql-server unixODBC unixODBC-dev libmyodbc libtool-ltdl-devel unixODBC-devel mysql-connector-odbc
Descargamos Asterisk
cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
tar zxvf asterisk*
Instalación de Asterisk
cd /usr/src/asterisk*
./configure --libdir=/usr/lib64 && make menuselect && make && make install
En el menú de módulos que aparecerá hay que marcar cdr_adaptative_odbc y res_odbc.
Después de verificar 'guardar y cerrar' continuara con la configuración.
Después hay que crear las maquetas de configuración básica
make samples
Agregar el servicio asterisk a /etc/init.d
make config
Iniciar asterisk
service asterisk start
Con esto nuestro servidor asterisk esta corriendo con lo minimo.
Tambien hay que configurar asterisk para que parta cada vez que se inicie el Servidor.
chkconfig asterisk on
Si por X motivo nuestra instalacion de asterisk no fue exitosa o se nos olvido agregar un modulo podemos volver desinstalar e iniciar nievamente la instalacion de este.
make clean && make distclean
Configuracion del CDR
Ingresamos a MySql para crear un usuario y configurar nuestra base de datos
mysql -u root -p
CREATE USER 'asterisk'@'localhost' IDENTIFIED BY 'miclave';
GRANT ALL PRIVILEGES ON asteriskcdr.* TO 'asterisk'@'localhost' WITH GRANT OPTION;
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;
Configuracion de ODBC
En /etc/odbc.ini
[asteriskcdr]
Description = MySQL ODBC CDR
Driver = MySQL
Database = asteriskcdr
Server = localhost
User = root
Password = miclave
Port = 3306
Option = 3
Para verificar que este correcto ejecutar : isql asteriskcdr root asteriskcdr
Agregar en /etc/asterisk/res_odbc.conf
[asteriskcdr]
enabled => yes
dsn => asteriskcdr
username => root
password => miclave
pre-connect => yes
Agregar en /etc/asterisk/cdr_adaptive_odbc.conf
[asteriskcdr]
connection=asteriskcdr
table=cdr
alias start => calldate
Con esto estaríamos listo, basta con crear un par de anexos y durante una llamada de prueba realizar lo siguiente:
asterisk -vgr
core set verbose 25
Al final de la llamada podríamos ver algo similar a esto:
[INSERT INTO cdr (calldate,clid,src,dst,dcontext,channel,dstchannel,lastapp,lastdata,duration,billsec,disposition,amaflags,uniqueid,linkedid,userfield) VALUES ({ ts '2012-11-14 17:26:01' },'"Junior Peluche" <216>','216','4320483','usuario','SIP/0000FFFF0002-00002a5e','SIP/troncalSIP-00002a6f','Dial','SIP/troncalSIP/4320483',98,75,'ANSWERED',3,'13523431962.11721','13523431962.11721','Fijo')]
FIN.
Fuentes:
http://nalvarhu.blogspot.com/2012/11/cdr-en-asterisk-con-cdradaptive-odbc.html
http://www.rodolfomenardi.com.br/cdr-do-asterisk-com-mysql-e-odbc/
http://blogs.digium.com/2012/11/05/how-to-install-asterisk-11-on-centos-6/
NOTA: Gracias a
Alejandro Rios nos pudimos dar cuenta de un error en la guía, este ya fue corregido.