Hi everyone, What is wrong in below asterisk application? The output should be content of field booth_status from table booths: [extension-status] exten => _X.,1,MYSQL(Connect connid 127.0.0.1 root password my-extensions) exten => _X.,n,MYSQL(Query allow_call ${connid} SELECT extension_status FROM mytable WHERE extension=${CALLERID(num)} ORDER BY id DESC LIMIT 1) exten => _X.,n,NoOp(allow_call is: ${allow_call}) But I get: *"allow_call is: 4" *while it should actually be ACTIVE or INACTIVE I want to read the LAST record found under column "extension" in "mytable" and do a NoOp for it's contents. But instead I am getting 4 which I think refers to the connection ID?! ***There is only one record in my table right now. Thanks, -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20110607/b7843a02/attachment.htm>
On Tue, 7 Jun 2011, Bruce B wrote:> What is wrong in below asterisk application? The output should be > content of field booth_status from table booths:I don't see 'booth_status' or 'booths' anywhere below.> [extension-status] > exten => _X.,1,MYSQL(Connect connid 127.0.0.1 root password my-extensions) > exten => _X.,n,MYSQL(Query allow_call ${connid} SELECT extension_status FROM mytable WHERE extension=${CALLERID(num)}?ORDER BY id DESC LIMIT 1) > exten => _X.,n,NoOp(allow_call is: ${allow_call})0) The verbose() application is a 'better practice' than relying on the obtuse side effect of noop(). 1) If you execute the above snippet, what shows on the console log? 2) If you snip the select statement from the console log and paste it into the mysql application's command line interface, what do you get? I've never used the dialplan MySQL interface so I may be missing something obvious. (I prefer to do database activities in AGIs.) -- Thanks in advance, ------------------------------------------------------------------------- Steve Edwards sedwards at sedwards.com Voice: +1-760-468-3867 PST Newline Fax: +1-760-731-3000
The problem is the OP never performs a Fetch of the data returned by the Query... From the VoIP-info page for Cmd MYSQL MYSQL(Query resultid ${connid} query-string) Executes standard MySQL query contained in query-string using established connection identified by ${connid}. Result of query is stored in ${resultid}. MYSQL(Fetch fetchid ${resultid} var1\ var2\ ...\ varN) If any rows are available to select, ${fetchid} is set to 1 and a single row is fetched from a result set contained in ${resultid}. The return fields are assigned to ${var1}, ${var2} ... ${varN} respectively. If no rows are left to select, ${fetchid} is set to 0 and ${var1}, ${var2} ... ${varN} remain unchanged. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20110607/674e382c/attachment.htm>