Sentencias MYSQL en el DIALPLAN--> pROBLEMILLAS

190 views
Skip to first unread message

David Escañuela Alonso

unread,
Dec 29, 2009, 7:03:02 AM12/29/09
to asterisk-es
wENAS!!!!

TENGO LA CONFIGURACION SIGUIENTE PARA ACCEDER A UNA BASE DE DATOS, EL
RESULTADO DEBERIA SER "VIP" Y ES 2.....

;Comprobar en la base de datos si el cliente es VIP(contrato de
mantenimiento de 24h).Si lo es se le envia a la prioridad 100 sino lo
es a la 90.
exten => 787,1,MYSQL(Connect connid localhost root root agenda)
exten => 787,n,NoOp(connid = ${connid})
;exten => 787,n,Set(NUM = ${CALLERID(num)})
exten => 787,n,MYSQL(Query resultid ${connid} SELECT\ mant FROM\
clientes\ INNER\ JOIN\ telefono\ ON\ clientes.id=telefono.idEmp\ WHERE
\ telefono=${NUM})
exten => 787,n,NoOp(resultid = ${resultid})
exten => 787,n,MYSQL(Disconnect ${connid})
exten => 787,n,GotoIf($["${resultid}"="VIP"]?100:90)


-- Executing [787@No Disponible Soporte:1] MYSQL("SIP/2003-0a09b300",
"Connect connid localhost root root agenda") in new stack
-- Executing [787@No Disponible Soporte:2] NoOp("SIP/
2003-0a09b300", "connid = 1") in new stack
-- Executing [787@No Disponible Soporte:3] Set("SIP/
2003-0a09b300", "NUM="650XXXXX"") in new stack
-- Executing [787@No Disponible Soporte:4] MYSQL("SIP/
2003-0a09b300", "Query resultid 1 SELECT mant FROM clientes INNER JOIN
telefono ON clientes.id=telefono.idEmp WHERE telefono=650XXXXXX") in
new stack
-- Executing [787@No Disponible Soporte:5] NoOp("SIP/
2003-0a09b300", "resultid = 2") in new stack
-- Executing [787@No Disponible Soporte:6] MYSQL("SIP/
2003-0a09b300", "Disconnect 1") in new stack
-- Executing [787@No Disponible Soporte:7] GotoIf("SIP/
2003-0a09b300", "0?100:90") in new stack
-- Goto (No Disponible Soporte,787,90)

ALGUNA IDEA?????????
GRACIAS

Raúl Alexis Betancor Santana

unread,
Dec 29, 2009, 8:15:49 AM12/29/09
to aster...@googlegroups.com
On Tuesday 29 December 2009 12:03:02 David Escañuela Alonso wrote:
> wENAS!!!!
>
> TENGO LA CONFIGURACION SIGUIENTE PARA ACCEDER A UNA BASE DE DATOS, EL
> RESULTADO DEBERIA SER "VIP" Y ES 2..
[...]
> ALGUNA IDEA?????????

Que te leas la documentación, que te ha faltado el fetch

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

--
Raúl Alexis Betancor Santana
Dimensión Virtual

David Escañuela Alonso

unread,
Dec 30, 2009, 5:30:00 AM12/30/09
to aster...@googlegroups.com
Gracias.


--
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...@googlegroups.com

José Ferney Franco Baquero

unread,
Dec 30, 2009, 9:14:14 AM12/30/09
to aster...@googlegroups.com
Saludos

Personalmente a mi no me suena mucho la idea de ejecutar sentencias SQL desde el plan de marcación. Me parece que es mucho mejor hacer una AGI en donde puedas tener en cuenta el sinnúmero de excepciones que una conexión con una base de datos puede originar.

David Escañuela Alonso

unread,
Dec 30, 2009, 11:36:36 AM12/30/09
to aster...@googlegroups.com
La idea de la ejecución de sentencias en mi caso es para obtener cierta informacion en un momento determinado. Como solo quieres un dato me parece mucho hacer un AGI para eso, imagino que si tienes que obtener bastantes datos será más sencillo como dices.

Saludos

2009/12/30 José Ferney Franco Baquero <fer...@gmail.com>

Jorge Eduardo Silva Jackson

unread,
Jan 4, 2010, 7:49:52 PM1/4/10
to aster...@googlegroups.com
Le falta las comillas en el campo telefono de la consulta, 650XXXX no es
un numero, es una string.

2003-0a09b300", "Query resultid 1 SELECT mant FROM clientes INNER JOIN


telefono ON clientes.id=telefono.idEmp WHERE telefono=650XXXXXX") in
new stack

Saludos
EDU

David Escañuela Alonso

unread,
Jan 5, 2010, 3:44:23 AM1/5/10
to aster...@googlegroups.com
Aunque no lleve comillas la sentencia funciona igual, si estuvieramos hablando de sentencias realizadas directamente desde el  MySQL Query Browser supongo que si seria conveniente ponerlas.

Un saludo.

Jorge Eduardo Silva Jackson

unread,
Jan 5, 2010, 8:18:23 AM1/5/10
to aster...@googlegroups.com
On Tue, 2010-01-05 at 09:44 +0100, David Escañuela Alonso wrote:
> Aunque no lleve comillas la sentencia funciona igual, si estuvieramos
> hablando de sentencias realizadas directamente desde el MySQL Query
> Browser supongo que si seria conveniente ponerlas.

Supones mal, si no pones comillas en los valores a comparar, cuando
estos son TEXTO, el motor toma este valor como un campo o una variable,
la cual no existe o tiene un valor NULL.
LA sentencia correcta seria.

MySQL(Query resultid ${connid} SELECT\ mant\ FROM\ clientes\ INNER\
JOIN\ telefono\ ON\ clientes.id=telefono.idEmp\ WHERE\ telefono=
\'650XXXXXX\')

Pruebalo y despues cuentame, no nos dejes con la duda.
Saludos
EDU

Reply all
Reply to author
Forward
0 new messages