cdr adaptive solo graba fechas y duracion

218 views
Skip to first unread message

Carlos Burguillo Rodríguez

unread,
May 29, 2012, 5:58:47 AM5/29/12
to aster...@googlegroups.com
Buenas:

Llevo algun tiempo leyendoos por aqui, aunque mis conocimientos no dan para ayudar a nadie y ahora necesito un poco de ayuda :-)
Tengo el siguiente problema con el cdr adaptive, y es que solo graba en la BD los campos start, end y duration, aunque en la tabla están además de estos, src,dst y disposition. Al principio pensé que era por el tema de los alias que tenia configurados en el cdr_adaptive_odbc.conf así que los quité, y mi archivo ahora se reduce al mínimo:
cdr_adaptive_odbc.conf
[cdr]
connection=asterisk
table=cdr

Como graba algo en la BD (aunque no todo) entiendo que la configuración de odbc está bien. Entonces me puse a mirar los logs del mysql. El problema que yo he visto es que al mysql solo le llegan inserciones como la siguiente:

INSERT INTO cdr (start,end,duration) VALUES ({ ts '2012-05-29 09:52:40' },{ ts '2012-05-29 09:53:09' },29)

y en la consola de asterisk no aparece ningún error.
La estructura de la tabla es:
Table: cdr
Columns:
src    varchar(80)
dst    varchar(80)
start    datetime
end    datetime
duration    int(11)
disposition    varchar(80)

Que pasa con los campos que faltan? Alguna idea de por donde puedo seguir mirando?

Gracias.

Bakko

unread,
May 29, 2012, 8:34:06 AM5/29/12
to aster...@googlegroups.com
Hola Carlos,

has configurado el res_odbc.conf ?

La lógica es esta:

odbc.ini

configura el acceso a la base de datos con un bloque definido por una etiqueta inicial.

en res_odbc.conf creas un nuevo bloque y en el parámetro dsn pones el nombre de la etiqueta inicial del bloque creado en el archivo odbc.ini.

Por ultimo configuras el cdr_adaptive.conf y en connection pones el nombre de la etiqueta inicial del bloque creado en el archivo res_odbc.conf.

Además para que la fecha sea exacta tienes que añadir este parámetro:

alias start => calldate:   en   cdr_adaptive   hay   tres   campos   donde   se   guardan   diferentes
momentos de la llamada: cuando inicia, cuando se contesta y cuando termina. Los nombres
de estos campos son respectivamente start, answer y end. El campo calldate no existe. Por este
motivo   para   que   este   campo   contenga   un   valor   hay  que   escoger   unos   de  los   tres   que  crea
cdr_adaptive. Esto se hace indicando un alias y definiendo que el campo calldate contendrá el
valor del campo start de cdr_adaptive (cuando la llamada inicia)

Saludos

Carlos Burguillo Rodríguez

unread,
May 29, 2012, 8:59:39 AM5/29/12
to aster...@googlegroups.com

Hmmm, no se si me he explicado bien.

A ver, tal y como entiendo cdr adaptive graba los campos en la tabla si existen, sino no los graba. En base a esto he definido mi tabla cdr con los campos:

src    varchar(80)
dst    varchar(80)
start    datetime
end    datetime
duration    int(11)
disposition    varchar(80)

El problema que tengo es que cuando la llamada termina me inserta una linea en la DB de la siguiente forma:
  | src | dst |              start           |               end           | duration | disposition |
  |       |      | 2012-05-28 11:53:17 | 2012-05-28 11:53:18 |      1      |                  |

Es decir, que inserta datos, pero no todos. Por esto comentaba que la configuracion de odbc creo que está correcta. De todas formas copio aqui mi configuracion:

odbc.ini
===========
[MySQL-Asterisk]
Description = MySQL ODBC Driver used for Asterisk configuration
Driver = MySQL
Database = asterisk
Server = mi_server
User = asterisk_user
Password = asterisk_pass

res_odbc.conf
===========
[asterisk]
enabled => yes
dsn => MySQL-Asterisk
username => asterisk_user
password => asterisk_pass
pre-connect => yes
sanitysql => select 1
idlecheck => 3600

cdr_adaptive_odbc.conf
===========
[cdr]
connection=asterisk
table=cdr

cdr.conf
===========
[general]
enable=yes
unanswered = no
endbeforehexten=no
[csv]
usegmtime=yes    ; log date/time in GMT.  Default is "no"
loguniqueid=yes  ; log uniqueid.  Default is "no"
loguserfield=yes ; log user field.  Default is "no"
accountlogs=yes  ; create separate log file for each account code. Default is "yes"
[odbc]
usegmtime=yes

Alguna idea?

Gracias

Bakko

unread,
May 29, 2012, 11:01:28 AM5/29/12
to aster...@googlegroups.com
Hola Carlos,

he recreado tu configuraci�n en mi servidor y funciona perfectamente.

Al final de cada llamada me registra los datos:

[INSERT INTO cdr2 (src,dst,start,end,duration) VALUES ('1000','97',{
ts '2012-05-29 16:54:41' },{ ts '2012-05-29 16:54:51' },10)]

Esta linea aparece al finalizar cada llamada en la consola de Asterisk.
Si as� no fuera en tu caso, aunque parezca una tonter�a, yo cambiar�a la
etiqueta inicial del odbc.ini quitando la raya y/o probando con may�sculas.

Saludos

Carlos Burguillo Rodríguez

unread,
May 29, 2012, 11:37:04 AM5/29/12
to aster...@googlegroups.com
Madre mía que velocidad! Gracias por la respuesta ;-)

Ahora ya estoy fuera del trabajo, lo probaré mañana a primera hora y comento.

Muchas gracias.

2012/5/29 Bakko <asan...@gmail.com>
Hola Carlos,

he recreado tu configuración en mi servidor y funciona perfectamente.


Al final de cada llamada me registra los datos:

 [INSERT INTO cdr2 (src,dst,start,end,duration) VALUES ('1000','97',{ ts '2012-05-29 16:54:41' },{ ts '2012-05-29 16:54:51' },10)]

Esta linea aparece al finalizar cada llamada en la consola de Asterisk. Si así no fuera en tu caso, aunque parezca una tontería, yo cambiaría la etiqueta inicial del odbc.ini quitando la raya y/o probando con mayúsculas.


Saludos

--
Este email pertenece a la lista de Asterisk-ES (http://www.asterisk-es.org)

~~~ Normas de la lista Asterisk-ES: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
http://comunidad.asterisk-es.org/index.php?title=Lista:normas-asterisk-es
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Para anular la suscripción: asterisk-es-unsubscribe@googlegroups.com

Carlos Burguillo Rodríguez

unread,
May 30, 2012, 4:37:34 AM5/30/12
to aster...@googlegroups.com
Buenos días:

He probado lo que comentó Bakko ayer y no hay ningun cambio. Ayer me faltó decir que al igual que Bakko, también lo probé en un server que no tengo en producción con el mismo resultado. Tampoco comenté que la instalación está en un Ubuntu 12.04 y la versión de asterisk es Asterisk 1.8.10.1~dfsg-1ubuntu1. Voy a probar con Debian a ver...

Gracias


El martes, 29 de mayo de 2012 17:37:04 UTC+2, Carlos Burguillo Rodríguez escribió:
Madre mía que velocidad! Gracias por la respuesta ;-)

Ahora ya estoy fuera del trabajo, lo probaré mañana a primera hora y comento.

Muchas gracias.

2012/5/29 Bakko
Hola Carlos,
Reply all
Reply to author
Forward
0 new messages