[asterisk-users] ODBC dialplan looping problem

Dale Noll dnoll at wi.rr.com
Thu Apr 18 08:07:34 CDT 2013


A select that returns 0 rows does not always mean error.
If you make your SQL do a little more specific lookup, you can avoid the
loop entirely.

Instead of your:
readsql=SELECT pin from users WHERE confid='${SQL_ESC(${CONF_ID})}'

Something like:
readsql=select if(count(value)=0,0,1) from users where confid =
'${SQL_ESC(${ARG1})}' and pin = '${SQL_ESC(${ARG2})}'  ;

This will then take two arguments, the first is the conf id, the second is
the entered PIN.
It will return either 0 or 1.  1 if the pin and conf are a valid pair, 0 if
not.

Then in dialplan, simply check the return value.



While your approach to getting the pin does work, I personnally would use
READ() as others have suggested.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20130418/44ed00ae/attachment.htm>


More information about the asterisk-users mailing list