Está en la página 1de 13

Asterisk

Registro de llamadas y logs

Registro de llamadas
Asterisk permite llevar un control
exhaustivo de todas las llamadas que se
han realizado o recibido.
Este control se denomina CDR: Call Detail
Record (Registro de detalle de llamadas).
Es una herramienta fundamental para los
proveedores en el control de facturacin a
clientes y para los call centers en la
recoleccin de estadsticas.

Julin Dunayevich, Lzaro Baca,


Andrs Brassara, Santiago Alberch,
Antonio Lobo

Registro de llamadas

La configuracin bsica del CDR se encuentra en el


archivo cdr.conf.
Se pueden elegir entre varios backends, es decir, el/los
formato/s para almacenar la informacin.
El registro del CDR utiliza por defecto el formato CSV y
se escribe en el archivo:
/var/log/asterisk/cdr-csv/Master.csv
Otros medios de almacenamiento posibles son pgsql,
odbc, sqlite y radius; aunque el ms utilizado es mysql
que est disponible en asterisk-addons y se configura en
cdr_mysql.conf
Julin Dunayevich, Lzaro Baca,
Andrs Brassara, Santiago Alberch,
Antonio Lobo

Registro de llamadas

Asterisk genera un CDR (registro) para cada llamada.


Por defecto, se graban un conjunto prefijado de campos;
entre ellos:

channel: nombre del canal


src: nmero del caller ID.
dst: extensin destino.
dcontext: contexto destino.
start: comienzo de la llamada (fecha/hora).
answer: respuesta de la llamada (fecha/hora).
end: fin de la llamada (fecha/hora).
duration: duracin de la llamada en segundos, desde que fue
discada hasta el corte.
Julin Dunayevich, Lzaro Baca,
Andrs Brassara, Santiago Alberch,
Antonio Lobo

Registro de llamadas

billsec: duracin de la llamada en segundos, desde que fue


atendida hasta el corte.
disposition: estado de la llamada (atendida, no atendida,
ocupado, fallida).

Para confirmar el estado del CDR desde el CLI, se


puede ejecutar:
CLI> cdr show status

Para listar los backends disponibles:


CLI> module show like cdr_
Julin Dunayevich, Lzaro Baca,
Andrs Brassara, Santiago Alberch,
Antonio Lobo

Registro de llamadas

Los campos del CDR son accedidos y asignados en el


dialplan via la funcion CDR().
exten => 115,1,Verbose(Tiempo inicio de la llamada: ${CDR(start)})
exten => 115,n,Set(CDR(userfield)=zombie)

Tambin es posible definir nuevos campos, ms all de


los pre-definidos en el sistema.
exten => 115,1,Set(CDR(micampo)=cafe)
exten => 115,n,Verbose(Necesito mas ${CDR(mycustomfield)})

Para ver la documentacin de la funcin CDR:


CLI> core show function
CDR
Julin Dunayevich,
Lzaro Baca,
Andrs Brassara, Santiago Alberch,
Antonio Lobo

Registro de llamadas

Los campos definidos por el usuario pueden ser


guardados va la utilizacin de los backends adaptive
ODBC y cdr-custom.

Para adaptive_ODBC, slo se debe crear una columna


en la BD con el mismo nombre del campo definido, para
que se almacene automticamente.

Para cdr-custom, el campo debe estar especificado en


un mapping en el archivo de configuracin (cdrcustom.conf).
Julin Dunayevich, Lzaro Baca,
Andrs Brassara, Santiago Alberch,
Antonio Lobo

Registro de llamadas
Existen muchas aplicaciones que permite
gestionar el CDR. Desarrollar una propia
no es realmente muy complejo.
Algunas aplicaciones open source son:

Astbill:

es una de las mejores aplicaciones


opensource para tarificacin, control de
cuentas y llamadas.
Areski Stat v2: se trata de una aplicacin
para listar y realizar estadsticas de las
llamadas realizas o enviadas.
A2Billing
Julin Dunayevich, Lzaro Baca,
Andrs Brassara, Santiago Alberch,
Antonio Lobo

Sistema de logs

En el archivo /etc/asterisk/logger.conf se encuentra la


configuracin del sistema de logging de Asterisk.

Los distintos niveles de informacin a capturar en los


logs son:

Verbose: mensajes generales sobre lo que est ocurriendo en


el sistema (por ej, si el valor de verbosity es mayor a 3, muestra
las instrucciones del plan de marcacin).
Debug: mensajes con informacin extendida, en general
utilizados por programadores.
Notice: notificaciones no crticas.
Warning: mensajes de alerta posiblemente crticos.
Error: mensajes indicando que ocurri algo grave.
Julin Dunayevich, Lzaro Baca,
Andrs Brassara, Santiago Alberch,
Antonio Lobo

Sistema de logs

En el contexto [logfiles] del archivo logger.conf


se indican los archivos y mensajes a loguear en
c/u, la sintaxis es: archivo => nivel1,...,niveln
Los archivos de log se crean por defecto en
/var/log/asterisk/ (esto se puede cambiar
/etc/asterisk/asterisk.conf).
Ejemplos:
debug => debug
full => notice,warning,error,debug,verbose
Julin Dunayevich, Lzaro Baca,
Andrs Brassara, Santiago Alberch,
Antonio Lobo

10

Sistema de logs

Para enviar a la consola, hay que definir el


archivo especial console:
console => notice,warning,error,debug
Tambin se pueden enviar al syslog:
syslog.local0 => debug, warning, error, notice,
verbose
Configurando adems en /etc/syslog.conf:
local0.*
@ip_servidor
Julin Dunayevich, Lzaro Baca,
Andrs Brassara, Santiago Alberch,
Antonio Lobo

11

Sistema de logs: CLI

Los comandos relacionados con el


manejo del log del CLI son:
logger

reload: reabre los archivos de log del Asterisk y


recarga la configuracin del logger .
logger rotate: rota los archivos de log y luego hace un
logger reload.
logger mute: alterna el logging en la consola.
logger set level <nivel de log>: cambia el nivel de
logging en la consola. Por ej: logger set level debug.
core set verbose/debug <nivel>: cambia el nivel de
informacin a mostrar en la consola. Por ej: set verbose
Julin Dunayevich, Lzaro Baca,
999.
Andrs Brassara, Santiago Alberch,
Antonio Lobo

12

Curso elaborado por


Julin Dunayevich, Lzaro Baca, Andrs Brassara,
Santiago Alberch y Antonio Lobo
julian@dunayevich.com
lazaro.baca@gmail.com
abrassara@gmail.com
salberch@gmail.com
antoniwolf@gmail.com
Detalles de la licencia:
http://creativecommons.org/licenses/by-nc-sa/2.5/deed.es_AR
Autores: Julin Dunayevich, Lzaro Baca, Andrs Brassara, Santiago
Alberch, Antonio Lobo
(cc) Creative Commons - Attribute Non-Commercial Share-Alike 2.5
Basndose en: Irontec: contacto@irontec.com (CC)
Asterisk, The Future of Telephony, Jim Meggelen, Jared Smith, and Leif Madsen, OREILLY, 2005
Julin Dunayevich, Lzaro Baca,
Andrs Brassara, Santiago Alberch,
Antonio Lobo

13