Insertar datos en mysql

285 views
Skip to first unread message

Gerardo

unread,
Nov 23, 2006, 4:05:46 AM11/23/06
to asterisk-es
Hola a todos:
A través de otro hilo de esta lista
(http://groups.google.es/group/asterisk-es/browse_frm/thread/98b4525b73d2bdee/d2cdb84b28826484?lnk=gst&q=AGI&rnum=3&hl=es#d2cdb84b28826484)
conseguí hacer consulta a una base de datos. El problema lo tengo al
intentar grabar en la base de datos los números entrantes, dado que el
INSERT INTO no da error pero no escribe.
Por lo que he leído es posible hacerlo con un AGI ¿es posible hacerlo
con SHELL scrip en lugar de con PHP?
Algún punto de partida distinto del de voip-info??
Gracias de nuevo

Iñaki Baz Castillo

unread,
Nov 23, 2006, 4:27:53 AM11/23/06
to aster...@googlegroups.com
El Jueves, 23 de Noviembre de 2006 10:05, Gerardo escribió:
> El problema lo tengo al intentar grabar
> en la base de datos los números entrantes, dado que el INSERT INTO no da
> error pero no escribe.

Creo que no estás tomando el camino correcto, y que lo primero que deberías
comprobar es que la query SQL funciona desde consola, es decir, entrando
con "mysql -u usuario -p base_datos" y haciendo el INSERT a mano.
Si funciona entonces ya mirarías otras causas de error, pero no trates de
meterte en un AGI tal vez innecesario sólo porque no te funcione un INSERT.


> Por lo que he leído es posible hacerlo con un AGI ¿es posible hacerlo
> con SHELL scrip en lugar de con PHP?

Un AGI puede ser en cualquier lenguaje:
http://www.voip-info.org/wiki-Asterisk+AGI
;)

Pero si usas alguno para el que existan cómodas librerías de manejo de AGI's
será mucho más rápido de programar.

--
Iñaki Baz Castillo
Irontec: Internet y Sistemas sobre GNU/Linux
http://www.irontec.com
+0034 944416024

Gerardo Rodríguez Visus

unread,
Nov 23, 2006, 5:06:10 AM11/23/06
to aster...@googlegroups.com
Desde la consola funciona el insert perfectamente. Y en asterisk no de
error:
*CLI> dial 33
*CLI> -- Executing MYSQL("OSS/dsp", "Connect connid localhost user
pass asterisk") in new stack
-- Executing MYSQL("OSS/dsp", "Query resultid 1 INSERT INTO
'telefonos' ( 'Id Telefono' , 'Nombre' , 'Empresa' , 'Telefono' ,
'Extension' , 'Fecha' , 'Duracion' ) VALUES ('', '', '', '123569851',
'Loco' , '0000-00-00 00:00:00' , '0'); ") in new stack
== Auto fallthrough, channel 'OSS/dsp' status is 'UNKNOWN'
<< Hangup on console >>

Pero no escribe nada y no sé como hacerle un debug en Suse9.3
Si pudiese evitar el AGI, pues mejor, si no.......... :-\

Respecto a lo del debug, me da este error al cargar Asterisk:
[res_config_mysql.so] => (MySQL RealTime Configuration Driver)
Nov 23 02:40:25 ERROR[19586]: res_config_mysql.c:651 mysql_reconnect:
MySQL RealTime: Failed to connect database server on (err 2002). Check
debug for more info.
Nov 23 02:40:25 WARNING[19586]: res_config_mysql.c:477 load_module:
MySQL RealTime: Couldn't establish connection. Check debug.
Nov 23 02:40:25 NOTICE[19586]: config.c:863 ast_config_engine_register:
Registered Config Engine mysql
MySQL RealTime driver
loaded.


Estará aqui el problema?¿A qué debug se refiere?

> El Jueves, 23 de Noviembre de 2006 10:05, Gerardo escribió:
>
>> El problema lo tengo al intentar grabar
>> en la base de datos los números entrantes, dado que el INSERT INTO no da
>> error pero no escribe.
>>
>
> Creo que no estás tomando el camino correcto, y que lo primero que deberías
> comprobar es que la query SQL funciona desde consola, es decir, entrando
> con "mysql -u usuario -p base_datos" y haciendo el INSERT a mano.
> Si funciona entonces ya mirarías otras causas de error, pero no trates de
> meterte en un AGI tal vez innecesario sólo porque no te funcione un INSERT.
>
>
>
>> Por lo que he leído es posible hacerlo con un AGI ¿es posible hacerlo
>> con SHELL scrip en lugar de con PHP?
>>
>
> Un AGI puede ser en cualquier lenguaje:
> http://www.voip-info.org/wiki-Asterisk+AGI
> ;)
>
> Pero si usas alguno para el que existan cómodas librerías de manejo de AGI's
> será mucho más rápido de programar.
>
>
>
>


--
Proxima Systems
Edificio CEEI - Módulo 1.14
Parque Tecnológico de Boecillo
47151 Boecillo - Valladolid

http://www.proximasystems.net
Tlf: (+34) 983 548145
Fax: (+34) 983 548156

Raúl Alexis Betancor Santana

unread,
Nov 23, 2006, 5:28:46 AM11/23/06
to aster...@googlegroups.com
El Jueves, 23 de Noviembre de 2006 10:06, Gerardo Rodríguez Visus escribió:
> Desde la consola funciona el insert perfectamente. Y en asterisk no de
> error:
> *CLI> dial 33
> *CLI> -- Executing MYSQL("OSS/dsp", "Connect connid localhost user
> pass asterisk") in new stack
> -- Executing MYSQL("OSS/dsp", "Query resultid 1 INSERT INTO
> 'telefonos' ( 'Id Telefono' , 'Nombre' , 'Empresa' , 'Telefono' ,
> 'Extension' , 'Fecha' , 'Duracion' ) VALUES ('', '', '', '123569851',
> 'Loco' , '0000-00-00 00:00:00' , '0'); ") in new stack
> == Auto fallthrough, channel 'OSS/dsp' status is 'UNKNOWN'
> << Hangup on console >>
>
> Pero no escribe nada y no sé como hacerle un debug en Suse9.3
> Si pudiese evitar el AGI, pues mejor, si no.......... :-\


¿Y haces el insert así, a pelo y sin vaselina? por lo menos conectate a la
base de datos primero .. ;-)

> Respecto a lo del debug, me da este error al cargar Asterisk:
> [res_config_mysql.so] => (MySQL RealTime Configuration Driver)
> Nov 23 02:40:25 ERROR[19586]: res_config_mysql.c:651 mysql_reconnect:
> MySQL RealTime: Failed to connect database server on (err 2002). Check
> debug for more info.
> Nov 23 02:40:25 WARNING[19586]: res_config_mysql.c:477 load_module:
> MySQL RealTime: Couldn't establish connection. Check debug.
> Nov 23 02:40:25 NOTICE[19586]: config.c:863 ast_config_engine_register:
> Registered Config Engine mysql
> MySQL RealTime driver
> loaded.

Este error es solo referido a la parte de RT de Asterisk basada en el motor
MYSQL, no tiene nada que ver con ejecutar consultas en medio del dialplan.

--
Saludos.

Raúl Alexis Betancor Santana
Dimensión Virtual S.L.

Gerardo Rodríguez Visus

unread,
Nov 23, 2006, 5:32:05 AM11/23/06
to aster...@googlegroups.com

> El Jueves, 23 de Noviembre de 2006 10:06, Gerardo Rodríguez Visus escribió:
>
>> Desde la consola funciona el insert perfectamente. Y en asterisk no de
>> error:
>> *CLI> dial 33
>> *CLI> -- Executing MYSQL("OSS/dsp", "Connect connid localhost user
>> pass asterisk") in new stack
>> -- Executing MYSQL("OSS/dsp", "Query resultid 1 INSERT INTO
>> 'telefonos' ( 'Id Telefono' , 'Nombre' , 'Empresa' , 'Telefono' ,
>> 'Extension' , 'Fecha' , 'Duracion' ) VALUES ('', '', '', '123569851',
>> 'Loco' , '0000-00-00 00:00:00' , '0'); ") in new stack
>> == Auto fallthrough, channel 'OSS/dsp' status is 'UNKNOWN'
>> << Hangup on console >>
>>
>> Pero no escribe nada y no sé como hacerle un debug en Suse9.3
>> Si pudiese evitar el AGI, pues mejor, si no.......... :-\
>>
>
>
> ¿Y haces el insert así, a pelo y sin vaselina? por lo menos conectate a la
> base de datos primero .. ;-)
>

*CLI> -- Executing MYSQL("OSS/dsp", "Connect connid localhost user
pass asterisk") in new stack

Con esta sentencia no me conecto?¿Para consultas (SELECT) si que funciona?

Raúl Alexis Betancor Santana

unread,
Nov 23, 2006, 5:57:43 AM11/23/06
to aster...@googlegroups.com
El Jueves, 23 de Noviembre de 2006 10:32, Gerardo Rodríguez Visus escribió:

> *CLI> -- Executing MYSQL("OSS/dsp", "Connect connid localhost user
> pass asterisk") in new stack
>
> Con esta sentencia no me conecto?¿Para consultas (SELECT) si que funciona?

Perdona, no me había fijado ... a ver .. código que A MÍ me ha funcionado en
una prueba rápida.


exten => 1,1,NoOp("Prueba Rápida")
exten => 1,n,MYSQL(Connect connid localhost test test test)
exten => 1,n,MYSQL(Query resultid ${connid} INSERT INTO test(var1,value)
VALUES('test','Ok'))
exten => 1,n,MYSQL(Query resultid ${connid} SELECT value FROM test WHERE var1
= 'test')
exten => 1,n,MYSQL(Fetch fetchid ${resultid} VarValue)
exten => 1,n,NoOp(${VarValue})
exten => 1,n,MYSQL(Clear ${resultid})
exten => 1,n,MYSQL(Disconnect ${connid})

Iñaki Baz Castillo

unread,
Nov 23, 2006, 6:09:20 AM11/23/06
to aster...@googlegroups.com
El Jueves, 23 de Noviembre de 2006 11:06, Gerardo Rodríguez Visus escribió:

> [res_config_mysql.so] => (MySQL RealTime Configuration Driver)
> Nov 23 02:40:25 ERROR[19586]: res_config_mysql.c:651 mysql_reconnect:
> MySQL RealTime: Failed to connect database server on (err 2002). Check
> debug for more info.
> Nov 23 02:40:25 WARNING[19586]: res_config_mysql.c:477 load_module:
> MySQL RealTime: Couldn't establish connection. Check debug.
> Nov 23 02:40:25 NOTICE[19586]: config.c:863 ast_config_engine_register:
> Registered Config Engine mysql
> MySQL RealTime driver
> loaded.
>
>
> Estará aqui el problema?

Pues sí, claro, te está diciendo que "no se puede conectar a la base de
datos", así que imposible que funcione.

> ¿A qué debug se refiere?

tail -f /var/log/asterisk/messages

¿Es correcto tu fichero /etc/asterisk/res_mysql.conf ?


PD: Para comprobar si Asterisk está realmente conectado a la base de datos
ejecuta en el CLI:
CLI> realtime mysql status

Iñaki Baz Castillo

unread,
Nov 23, 2006, 6:15:34 AM11/23/06
to aster...@googlegroups.com
Mil disculpas por el anterior correo, se me fue el santo al cielo y he
respondido a algo que no tiene nada que ver. Te respondí sobre usuarios en
MySQL por error.

Gerardo Rodríguez Visus

unread,
Nov 23, 2006, 6:41:55 AM11/23/06
to aster...@googlegroups.com
He creado la base de datos:
CREATE TABLE cdr (
calldate datetime NOT NULL default '0000-00-00 00:00:00',
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 '',
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 '',
uniqueid varchar(32) NOT NULL default '',
userfield varchar(255) NOT NULL default ''
);

Y me la rellena correctamente en cada llamada, pero me sigue dando el error:

*CLI> realtime mysql status
Nov 23 04:34:26 ERROR[22342]: res_config_mysql.c:651 mysql_reconnect:


MySQL RealTime: Failed to connect database server on (err 2002). Check
debug for more info.

Por otro lado el archivo:

/etc/asterisk/res_mysql.conf

no lo tengo, el más parecido es:
/etc/asterisk/res_odbc.conf
; ENV is a global set of environmental variables that will get set.
; Note that all environmental variables can be seen by all connections,
; so you can't have different values for different connections.
[ENV]
INFORMIXSERVER => my_special_database
INFORMIXDIR => /opt/informix

; All other sections are arbitrary names for database connections.

[asterisk]
enabled => yes
dsn => asterisk
;username => myuser
;password => mypass
pre-connect => yes


[mysql2]
enabled => no
dsn => MySQL-asterisk
username => myuser
password => mypass
pre-connect => yes

Iñaki Baz Castillo

unread,
Nov 23, 2006, 6:48:21 AM11/23/06
to aster...@googlegroups.com
El Jueves, 23 de Noviembre de 2006 12:41, Gerardo Rodríguez Visus escribió:
> pero me sigue dando el
> error:
>
> *CLI> realtime mysql status
> Nov 23 04:34:26 ERROR[22342]: res_config_mysql.c:651 mysql_reconnect:
> MySQL RealTime: Failed to connect database server on (err 2002). Check
> debug for more info.
>
> Por otro lado el archivo:
>
> /etc/asterisk/res_mysql.conf
>
> no lo tengo

Sí, es lo que te comentaba en el otro correo, que me he equivocada al
responderte. Olvida lo de realtime y res_mysql.conf.

Gerardo Rodríguez Visus

unread,
Nov 23, 2006, 6:52:21 AM11/23/06
to aster...@googlegroups.com
Ok. Entonces ¿Hay alguna manera de evitar este error? Porque las
funcionalidades que necesito las consigo con la base de datos de
Asterisk, pero no suele ser recomendable correr un programa con un error.

Iñaki Baz Castillo

unread,
Nov 23, 2006, 7:27:02 AM11/23/06
to aster...@googlegroups.com
El Jueves, 23 de Noviembre de 2006 12:52, Gerardo Rodríguez Visus escribió:
> Ok. Entonces ¿Hay alguna manera de evitar este error? Porque las
> funcionalidades que necesito las consigo con la base de datos de
> Asterisk, pero no suele ser recomendable correr un programa con un error.

¿A qué error te refieres?

> > El Jueves, 23 de Noviembre de 2006 12:41, Gerardo Rodríguez Visus
escribió:
> >> pero me sigue dando el
> >> error:
> >>
> >> *CLI> realtime mysql status
> >> Nov 23 04:34:26 ERROR[22342]: res_config_mysql.c:651 mysql_reconnect:
> >> MySQL RealTime: Failed to connect database server on (err 2002). Check
> >> debug for more info.
> >>
> >> Por otro lado el archivo:
> >>
> >> /etc/asterisk/res_mysql.conf
> >>
> >> no lo tengo
> >
> > Sí, es lo que te comentaba en el otro correo, que me he equivocada al
> > responderte. Olvida lo de realtime y res_mysql.conf.
>
>

Raúl Alexis Betancor Santana

unread,
Nov 23, 2006, 8:58:46 AM11/23/06
to aster...@googlegroups.com
El Jueves, 23 de Noviembre de 2006 12:27, Iñaki Baz Castillo escribió:
> El Jueves, 23 de Noviembre de 2006 12:52, Gerardo Rodríguez Visus escribió:
> > Ok. Entonces ¿Hay alguna manera de evitar este error? Porque las
> > funcionalidades que necesito las consigo con la base de datos de
> > Asterisk, pero no suele ser recomendable correr un programa con un error.
>
> ¿A qué error te refieres?

Al que está un poco más abajo en este email y se le produce por lo que yo le
comenté en otro mensaje del mismo hilo, retomo un poco más abajo para
aclararnos todos ...

> > > El Jueves, 23 de Noviembre de 2006 12:41, Gerardo Rodríguez Visus
>
> escribió:
> > >> pero me sigue dando el
> > >> error:
> > >>
> > >> *CLI> realtime mysql status
> > >> Nov 23 04:34:26 ERROR[22342]: res_config_mysql.c:651 mysql_reconnect:
> > >> MySQL RealTime: Failed to connect database server on (err 2002).
> > >> Check debug for more info.
> > >>
> > >> Por otro lado el archivo:
> > >>
> > >> /etc/asterisk/res_mysql.conf
> > >>
> > >> no lo tengo

A ver amigo Gerardo, Si los INSERT se te ejecutan bien .. estas haciendolo
bien, el ERROR que comentas es del módulo de RT, tal como te dije en otro
email, simplemente comenta la linea load=res_config_mysql.so del
modules.conf, si no vas a usar la función de RT de asterisk.

Repito resumiendo:
- No es un ERROR, es que has cargado un módulo que no necesitas, porque no lo
usas y te está diciendo que ese módulo está mal configurado, módulo en
cuestión: res_config_mysql.so
- Si los INSERT's te funcionaban desde el principio, tiene que ser que yo he
leído mal el hilo, porque había entendido que los INSERT's no te funcionaban.

Gerardo Rodríguez Visus

unread,
Nov 23, 2006, 9:33:40 AM11/23/06
to aster...@googlegroups.com

**CLI> realtime mysql status

> >> Nov 23 04:34:26 ERROR[22342]: res_config_mysql.c:651 mysql_reconnect:
> >> MySQL RealTime: Failed to connect database server on (err 2002). Check
> >> debug for more info.*

> El Jueves, 23 de Noviembre de 2006 12:52, Gerardo Rodríguez Visus escribió:
>
>> Ok. Entonces ¿Hay alguna manera de evitar este error? Porque las
>> funcionalidades que necesito las consigo con la base de datos de
>> Asterisk, pero no suele ser recomendable correr un programa con un error.
>>
>
> ¿A qué error te refieres?
>

>
>
>>> El Jueves, 23 de Noviembre de 2006 12:41, Gerardo Rodríguez Visus
>>>
> escribió:
>
>>>> pero me sigue dando el
>>>> error:
>>>>
>>>> *CLI> realtime mysql status
>>>> Nov 23 04:34:26 ERROR[22342]: res_config_mysql.c:651 mysql_reconnect:
>>>> MySQL RealTime: Failed to connect database server on (err 2002). Check
>>>> debug for more info.
>>>>
>>>> Por otro lado el archivo:
>>>>
>>>> /etc/asterisk/res_mysql.conf
>>>>
>>>> no lo tengo
>>>>
>>> Sí, es lo que te comentaba en el otro correo, que me he equivocada al
>>> responderte. Olvida lo de realtime y res_mysql.conf.
>>>
>>


--

Gerardo Rodríguez Visus

unread,
Nov 23, 2006, 9:39:06 AM11/23/06
to aster...@googlegroups.com
Gracias por la paciencia que estais demostrando :-[
Los insert no me funcionan a una base de datos externa, pero con la base
de datos cdr que he creado y que configuro a través de
/etc/asterisk/cdr_mysql.conf ya puedo obtener los datos que necesito.
Es esta base de datos la que me rellena Asterisk correctamente.

Iñaki Baz Castillo

unread,
Nov 23, 2006, 9:51:36 AM11/23/06
to aster...@googlegroups.com
Por favor, Gerardo, trata de evitar el Top-Posting que se hace imposible
seguir el hilo:
http://es.wikipedia.org/wiki/Top-posting


El Jueves, 23 de Noviembre de 2006 15:33, Gerardo Rodríguez Visus escribió:
> > ¿A qué error te refieres?

> **CLI> realtime mysql status


>
> > >> Nov 23 04:34:26 ERROR[22342]: res_config_mysql.c:651 mysql_reconnect:
> > >> MySQL RealTime: Failed to connect database server on (err 2002).
> > >> Check debug for more info.*

Lee el correo anterior de Raúl. Explica perfectamente que ese error nada tiene
que ver con tu problema.

Luis Redondo

unread,
Nov 23, 2006, 10:51:50 AM11/23/06
to aster...@googlegroups.com
Hola,

Les cuento que no entiendo ni un solo punto de Asterisk en cuanto a
configuracion y estoy viendo la posibilidad de encontrar la informacion que
busco a traves de este medio.

Quisiera saber que Equipos necesito? Hardware?
Que Sistema operativo?
Que lenguaje utilizar? PHP?
Que aplicaciones ya existen? Open Source? Compradas?
Que desarrolladores Freelance existen?

Estoy interesado en montar una central con Asterix que pueda configurar con
varios servicios. Menus, leer MP3 almacenados, Leer contenido de una base de
datos, usar locuento para alguna parte del proceso, crear hasta
reconocimiento de instruccciones por voz, crear menus dinamicos de acuerdo
al ID de quien llame etc.

No se si esta bien preguntar esto aquí porque no aporta nada a los demas
pero si me gustaria poder saber si puedo conseguir esta orientacion aquí.

Dejenme saber por favor sus datos y demas.

Guillermo Prado Obando

unread,
Nov 23, 2006, 11:09:12 AM11/23/06
to aster...@googlegroups.com
Todo lo que preguntas lo encuentras en:

http://www.voip-info.org/wiki/view/Asterisk

2006/11/23, Luis Redondo < lred...@gmail.com>:



--
Atentamente,


Guillermo Prado Obando.
Bogotá D.C Colombia.
Asesor en Tecnología.

Luis Redondo

unread,
Nov 24, 2006, 12:40:29 PM11/24/06
to aster...@googlegroups.com

Alguna persona que me pueda server de Out Sorcing para poner mi propio Aseterisk desde Cero?


Hector Kee

unread,
Nov 25, 2006, 10:41:56 AM11/25/06
to aster...@googlegroups.com
hola yo te puedo ayudar te dejo mi msn sham...@hotmail.com soy de mexico
Reply all
Reply to author
Forward
0 new messages