Diferencia entre revisiones de «Registro Llamadas y Eventos»

De Asterisk Wiki
Ir a la navegación Ir a la búsqueda
Línea 23: Línea 23:
 
* Estadísticas varias.
 
* Estadísticas varias.
  
Para el sistema CDR existen múltiples formas de almacenamiento, principalmente las que hemos comentado, ficheros de texto plano, y diversos tipos de Bases de Datos que hacen referencia, siempre que este activada la función de almacenamiento de los CDR en su fichero principal de configuración '''cdr.conf''':
+
Para el sistema CDR existen múltiples formas de almacenamiento, principalmente las que hemos comentado, ficheros de texto plano, y diversos tipos de Bases de Datos que hacen referencia:
  
* Por defecto, se almacena en un fichero llamado master.csv dentro del directorio /var/log/asterisk/cdr-csv/ en formato como su extensión indica, CSV (Comma-Separated Values, valores separados por comas).
+
* Por defecto, se almacena en un fichero llamado master.csv dentro del directorio /var/log/asterisk/cdr-csv/ en formato como su extensión indica, CSV (Comma-Separated Values, valores separados por comas), siempre que este activada la función de almacenamiento de los CDR en su fichero principal de configuración '''cdr.conf'''
 
* Es posible Almacenar en Bases de Datos MySQL (fichero de configuración '''cdr_mysql.conf''')
 
* Es posible Almacenar en Bases de Datos MySQL (fichero de configuración '''cdr_mysql.conf''')
 
* En BBDD de Tipo PostgreSQL (fichero '''cdr_pgsql.conf''').
 
* En BBDD de Tipo PostgreSQL (fichero '''cdr_pgsql.conf''').
Línea 32: Línea 32:
 
* Podemos pasar al [[AMI]] información de lectura sobre el CDR (fichero '''cdr_manager.conf''')
 
* Podemos pasar al [[AMI]] información de lectura sobre el CDR (fichero '''cdr_manager.conf''')
  
=== Configuración General ===
+
=== Configuración CSV ===
  
 
Para poder configurar CDR, el fichero principal es llamado '''cdr.conf''' situado en el mismo directorio que el resto de los ficheros de configuración '''/etc/asterisk/'''.
 
Para poder configurar CDR, el fichero principal es llamado '''cdr.conf''' situado en el mismo directorio que el resto de los ficheros de configuración '''/etc/asterisk/'''.
  
La estructura del mismo es relativamente básica:
+
La estructura del mismo es relativamente básica, un contexto <nowiki>[general]</nowiki> como casi todos los módulos de Asterisk, y luego los siguientes contextos que hacen referencias a partes especificas, en este caso los dos más comunes son <nowiki>[csv]</nowiki> que hace referencia al fichero Master.CSV que comentabamos anteriormente, y <nowiki>[radius]</nowiki> para almecenamiento utilizando un servidor RADIUS para la autentificación, pero en esencia un fichero CSV para el amacenaje.
  
 +
==== Configuración General ====
 +
 +
Aquí se especifican todos los parámetros que afectar al modo general de almacenaje utilizando este sistema:
 +
 +
* '''enable''': Básicamente activa la funcionalidad de registro CDR
 +
* '''unanswered''': Registra las llamadas no atendidas también
 +
* '''endbeforehexten''': En caso que llegemos a la [[Introducción Dialplan#Extensiones Especiales|extensión especial]], '''h''' pararía el registro CDR en el fichero
 +
* '''initiatedseconds''': En caso de utilizar un sistema de Facturación, es práctico para redondear el tiempo a nivel de segundos hacia arriba para facilitar el cálculo del importe
 +
* '''batch''': Permite registrar la información en bloques, en vez de registrarla de un golpe al finalizar la conversación. El riesgo es que si Asterisk se bloquea durante el proceso de una llamada escribiendo en el fichero, este estaría abierto y podría perderse información.
 +
* '''size''': Si utilizamos el modo '''batch''', aquí especificaríamos el numero de registros CDR antes de lanzar un bloque (batch) a nuestro fichero.
 +
* '''time''': También es posible lanzar un bloque por segundos, en este caso, sería el número de segundos antes de conformar un bloque y lanzarlo al fichero.
 +
* '''scheduleronly''': En caso que queramos que se genere un proceso específico para realizar la gestión de copia en bloque, o si queremos utilizar el propio proceso que controla el sistema de gestión de los bloques.
 +
* '''safeshutdown''': En caso que el sistema se detenga, paraliza esto, hasta que todos los registros CDR hayan sido grabados en el fichero.
 +
 +
==== Configuración Específica ====
 +
 +
Tanto para la copia directa en nuestra máquina o utilizando un sistema RADIUS existen una serie de parámetros específicos comunes y concretos de cada método:
 +
 +
* '''usegmtime''': Sirve para registrar los eventos en el huso GMT exclusivamente
 +
* '''loguiqueid''': Para registrar en cada evento, un identificador unico
 +
* '''accountlog''': En caso que queramos tener un registro independiente para cada código de cuenta, esto es especifico para temas relativos a Facturación
 +
 +
Y concretamente para el sistema RADIUS especificamos el fichero de configuración del cliente que hará la autentificación con '''radiuscfg => ''' <ref>[http://developer.berlios.de/projects/radiusclient-ng/ Radius Client NG], Maxim Sobolev (2003)</ref>
  
  

Revisión del 19:09 5 jun 2012

Format.png Formatear
Esta página necesita ser editada para cumplir los requisitos del wiki.
Puedes revisar todas las páginas sin suficiente formato en este enlace.
Alert.png To Do
Esta página necesita ser completada.
Puedes revisar todas las páginas por completar en este enlace.


El registro de llamadas en Asterisk, llamado CDR (Call Detail Record), y de Eventos llamado CEL (Call Event Logging) proveen de múltiples mecanismos de almacenaje de toda la información relativa a las llamadas, con carácter entrante y saliente del sistema, específicamente diseñado para su posible posterior analísis.

Sistema CDR

Como veíamos, CDR, Call Detail Record, es simplemente un registro de todos los pasos que concurren en una llamada, pero con un nivel de detalle bastante reducido.

Introducción

Este sistema es muy práctico cuando queremos saber por ejemplo, a quien llaman nuestros usuarios, o quien los llama, y otros datos relativos a las mismas, como el tiempo establecido, resultado de la llamada (si estaba ocupada o no disponible, o si fue contestada), etc. Es muy similar en cierto sentido al sistema de Estádisticas aplicable a las Colas según puede verse con aplicaciones como Asternic Stats para el manejo de las mismas.

Pero en este caso, se aplica para el 100% de las llamadas entrantes y salientes, e inclusive llamadas que se realicen dentro de la máquina Asterisk. Los usos más típicos que suelen darse para este sistema son:

Sistema A2Billing de Facturación
  • Control de Llamadas
  • Sistemas de Facturación a Terceros [1]
  • Análisis y Depuración del Sistema
  • Estadísticas varias.

Para el sistema CDR existen múltiples formas de almacenamiento, principalmente las que hemos comentado, ficheros de texto plano, y diversos tipos de Bases de Datos que hacen referencia:

  • Por defecto, se almacena en un fichero llamado master.csv dentro del directorio /var/log/asterisk/cdr-csv/ en formato como su extensión indica, CSV (Comma-Separated Values, valores separados por comas), siempre que este activada la función de almacenamiento de los CDR en su fichero principal de configuración cdr.conf
  • Es posible Almacenar en Bases de Datos MySQL (fichero de configuración cdr_mysql.conf)
  • En BBDD de Tipo PostgreSQL (fichero cdr_pgsql.conf).
  • También en bases de datos SQLite (fichero cdr_sqlite3_custom.conf)
  • Con un Driver ODBC parecido al sistema visto en Asterisk Realtime (Fichero cdr_odbc.conf)
  • Podemos pasar al AMI información de lectura sobre el CDR (fichero cdr_manager.conf)

Configuración CSV

Para poder configurar CDR, el fichero principal es llamado cdr.conf situado en el mismo directorio que el resto de los ficheros de configuración /etc/asterisk/.

La estructura del mismo es relativamente básica, un contexto [general] como casi todos los módulos de Asterisk, y luego los siguientes contextos que hacen referencias a partes especificas, en este caso los dos más comunes son [csv] que hace referencia al fichero Master.CSV que comentabamos anteriormente, y [radius] para almecenamiento utilizando un servidor RADIUS para la autentificación, pero en esencia un fichero CSV para el amacenaje.

Configuración General

Aquí se especifican todos los parámetros que afectar al modo general de almacenaje utilizando este sistema:

  • enable: Básicamente activa la funcionalidad de registro CDR
  • unanswered: Registra las llamadas no atendidas también
  • endbeforehexten: En caso que llegemos a la extensión especial, h pararía el registro CDR en el fichero
  • initiatedseconds: En caso de utilizar un sistema de Facturación, es práctico para redondear el tiempo a nivel de segundos hacia arriba para facilitar el cálculo del importe
  • batch: Permite registrar la información en bloques, en vez de registrarla de un golpe al finalizar la conversación. El riesgo es que si Asterisk se bloquea durante el proceso de una llamada escribiendo en el fichero, este estaría abierto y podría perderse información.
  • size: Si utilizamos el modo batch, aquí especificaríamos el numero de registros CDR antes de lanzar un bloque (batch) a nuestro fichero.
  • time: También es posible lanzar un bloque por segundos, en este caso, sería el número de segundos antes de conformar un bloque y lanzarlo al fichero.
  • scheduleronly: En caso que queramos que se genere un proceso específico para realizar la gestión de copia en bloque, o si queremos utilizar el propio proceso que controla el sistema de gestión de los bloques.
  • safeshutdown: En caso que el sistema se detenga, paraliza esto, hasta que todos los registros CDR hayan sido grabados en el fichero.

Configuración Específica

Tanto para la copia directa en nuestra máquina o utilizando un sistema RADIUS existen una serie de parámetros específicos comunes y concretos de cada método:

  • usegmtime: Sirve para registrar los eventos en el huso GMT exclusivamente
  • loguiqueid: Para registrar en cada evento, un identificador unico
  • accountlog: En caso que queramos tener un registro independiente para cada código de cuenta, esto es especifico para temas relativos a Facturación

Y concretamente para el sistema RADIUS especificamos el fichero de configuración del cliente que hará la autentificación con radiuscfg => [2]


Sistema CEL

Segun visto anteriormente, CEL, Call Event Logging, es una evolución de CDR diseñada para poder tener control no solo de los pasos de la llamada, sino de los eventos a nivel interno que van surgiendo en el flujo de una llamada dentro de nuestro Plan de Marcación.

Referencias

  1. A2Billing es un sistema de Facturación para Asterisk de Star2billing S.L.
  2. Radius Client NG, Maxim Sobolev (2003)

Véase también

Enlaces Externos

  • CDR-Stats es una interfaz web para la gestión de CDR en Python.