[asterisk-users] Help Please - Asterisk MYSQL interface seems to be eating data

Steve Totaro stotaro at totarotechnologies.com
Mon May 5 09:06:35 CDT 2008


User intervention is required Al.  You need to open a bug report on
mantis and anyone can edit the wiki (this is the nature of a wiki).
http://bugs.digium.com/main_page.php

Anyways, I am fairly certain that the UnixODBC connector is the
"preferred" way of connecting to MySQL.

Thanks,
Steve Totaro

On Mon, May 5, 2008 at 9:29 AM, Al Baker <bwentdg at pipeline.com> wrote:
> I looked all over VOIP-INFO and ATFOT and could not find anything that
>  said or even suggested not using the mysql driver.(except NOT to have
>  BOTH drivers loaded at the same time). I could easily be missing
>  something. But the apparent BUG I am seeing is at such a Basic and
>  Simple Level of functionality that either DIGIUM ought to fix it ASAP or
>  update VOIP-INFO pages and their own documentation to say "Broke - No
>  Workie and We Are No Gonna Fixie" :)
>
>
>
>  Steve Totaro wrote:
>  > On Mon, May 5, 2008 at 4:21 AM, Al Baker <bwentdg at pipeline.com> wrote:
>  >
>  >>  I would appreciate any and all advice on what appears to be a BUG (or a
>  >> brainfart on my part) with the MySQL add-on for Asterisk this is of FEDORA 8
>  >> fully patched with Asterisk Addons 1-4-6 with the Asterisk 1.4.18.1
>  >>
>  >>  It appears that the interface "eats" the first field requested from a
>  >> table. If only One Field is Requested from the Table , that field is eaten
>  >> ENTIRELY by Asterisk. If several fields are requested, the First Field Is
>  >> Eaten and the remaining filed are returned, but place in the WRONG Variable
>  >> since the 1tst fileld data was eaten. In the DIALPLAN below I have tried 3
>  >> Different ways to approach this.
>  >>
>  >>  Extension 9999 – Get only ONE (1) field from Table
>  >>
>  >>  Extension 8888 – Get THREE(3) fields from the Table and Quote Them.
>  >>
>  >>  Extension 7777 - Get THREE(3) fields from the Table
>  >>
>  >>  I have show the Output from the Asterisk CL for each, which clearly show
>  >> that SOMETHING is not
>  >>  right. Maybe the Software, maybe the person using the software :)
>  >>
>  >>  Here is the Table in the Database.
>  >>
>  >>  mysql> select * from agent;
>  >>
>  >>  +----------+---------+--------+------------+---------------------+
>  >>
>  >>  | id          | cust_id  | status |    phone     |    tlce |
>  >>
>  >>  +----------+---------+--------+------------+---------------------+
>  >>  | 00000001 | NAMB | free | 1234567890 | 2008-04-17 02:32:02 |
>  >>
>  >>  | 00000002 | NAMB | free | 2234567890 | 2008-04-17 02:32:02 |
>  >>
>  >>  | 00000003 | NAMB | free | 3234567890 | 2008-04-17 02:32:02 |
>  >>
>  >>  | 00000004 | NAMB | free | 4234567890 | 2008-04-17 02:32:02 |
>  >>  +----------+---------+--------+------------+---------------------+
>  >>
>  >>  4 rows in set (0.00 sec)
>  >>
>  >>
>  >>  Here is the DIALPLAN
>  >>
>  >>  exten => 7777,1,MYSQL(Connect connid localhost ivr ivrxxx dtc)
>  >>
>  >>  exten => 7777,n,MYSQL(Query resultid ${connid} SELECT\ cust_id\, \
>  >> status\,\ tlce\ from\ agent\ where\ phone=\'1234567890\')
>  >>
>  >>  exten => 7777,n,MYSQL(Fetch fetchid ${resultid} custid mystatus mytlce)
>  >>
>  >>  exten => 7777,n,NoOp(CUSTID is ${custid} MYSTATUS is ${mystatus} MYTLCE is
>  >> ${mytlce})
>  >>
>  >>  exten => 7777,n,NoOp(FETCHID is ${fetchid} RESULUT ID is .. ${resultid}
>  >> CONNID is ${connid})
>  >>
>  >>  exten => 7777,n,MYSQL(Clear ${resultid})
>  >>
>  >>  exten => 7777,n,MYSQL(Disconnect ${connid})
>  >>
>  >>  exten => 7777,n,HANGUP
>  >>
>  >>
>  >>
>  >>  exten => 8888,1,MYSQL(Query resultid ${connid} SELECT\ 'cust_id'\, \
>  >> 'status'\,\ 'tlce'\ from\ agent\ where\ phone=\'1234567890\')
>  >>
>  >>  exten => 8888,n,MYSQL(Fetch fetchid ${resultid} custid mystatus mytlce)
>  >>
>  >>  exten => 8888,n,NoOp(CUSTID is ${custid} MYSTATUS is ${mystatus} MYTLCE is
>  >> ${mytlce})
>  >>
>  >>  exten => 8888,n,NoOp(FETCHID is ${fetchid} RESULUT ID is .. ${resultid}
>  >> CONNID is ${connid})
>  >>
>  >>  exten => 8888,n,MYSQL(Clear ${resultid})
>  >>
>  >>  exten => 8888,n,MYSQL(Disconnect ${connid})
>  >>
>  >>  exten => 8888,n,HANGUP
>  >>
>  >>
>  >>  exten => 9999,1,MYSQL(Connect connid localhost ivr ivrxxx dtc)
>  >>
>  >>  exten => 9999,n,MYSQL(Query resultid ${connid} SELECT\ 'cust_id'\ from\
>  >> agent\ where\ phone=\'1234567890\')
>  >>
>  >>  exten => 9999,n,MYSQL(Fetch fetchid ${resultid} custid)
>  >>
>  >>  exten => 9999,n,NoOp(CUSTID is ${custid})
>  >>
>  >>  exten => 9999,n,NoOp(FETCHID is ${fetchid} RESULUT ID is .. ${resultid}
>  >> CONNID is ${connid})
>  >>
>  >>  exten => 9999,n,MYSQL(Clear ${resultid})
>  >>
>  >>  exten => 9999,n,MYSQL(Disconnect ${connid})
>  >>
>  >>  exten => 9999,n,HANGUP
>  >>
>  >>
>  >>
>  >>
>  >>  Here is the Asterisk CLI Output
>  >>
>  >>  dial 9999
>  >>
>  >>  == Console is full duplex
>  >>
>  >>  *CLI> -- Executing [9999 at default:1] MYSQL("OSS/dsp", "Connect connid
>  >> localhost ivr ivrxxx dtc") in new stack
>  >>
>  >>  -- Executing [9999 at default:2] MYSQL("OSS/dsp", "Query resultid 5 SELECT
>  >> cust_id from agent where phone='1234567890'") in new stack
>  >>
>  >>  -- Executing [9999 at default:3] MYSQL("OSS/dsp", "Fetch fetchid 6 custid") in
>  >> new stack
>  >>
>  >>  -- Executing [9999 at default:4] NoOp("OSS/dsp", "CUSTID is ") in new stack
>  >>
>  >>  -- Executing [9999 at default:5] NoOp("OSS/dsp", "FETCHID is 1 RESULUT ID is
>  >> .. 6 CONNID is 5") in new stack
>  >>
>  >>  -- Executing [9999 at default:6] MYSQL("OSS/dsp", "Clear 6") in new stack
>  >>
>  >>  -- Executing [9999 at default:7] MYSQL("OSS/dsp", "Disconnect 5") in new stack
>  >>
>  >>  -- Executing [9999 at default:8] Hangup("OSS/dsp", "") in new stack
>  >>
>  >>  == Spawn extension (default, 9999, 8) exited non-zero on 'OSS/dsp'
>  >>
>  >>  << Hangup on console
>  >>
>  >>  *CLI> dial 8888
>  >>
>  >>  == Console is full duplex
>  >>
>  >>  *CLI> -- Executing [8888 at default:1] MYSQL("OSS/dsp", "Connect connid
>  >> localhost ivr ivrxxx dtc") in new stack
>  >>
>  >>  -- Executing [8888 at default:2] MYSQL("OSS/dsp", "Query resultid 5 SELECT
>  >> cust_id, status, tlce from agent where phone='1234567890'") in new stack
>  >>
>  >>  -- Executing [8888 at default:3] MYSQL("OSS/dsp", "Fetch fetchid 6 custid
>  >> mystatus mytlce") in new stack
>  >>
>  >>  -- Executing [8888 at default:4] NoOp("OSS/dsp", "CUSTID is free MYSTATUS is
>  >> 2008-04-17 02:32:02 MYTLCE is ") in new stack
>  >>
>  >>  -- Executing [8888 at default:5] NoOp("OSS/dsp", "FETCHID is 1 RESULUT ID is
>  >> .. 6 CONNID is 5") in new stack
>  >>
>  >>  -- Executing [8888 at default:6] MYSQL("OSS/dsp", "Clear 6") in new stack
>  >>
>  >>  -- Executing [8888 at default:7] MYSQL("OSS/dsp", "Disconnect 5") in new stack
>  >>
>  >>  -- Executing [8888 at default:8] Hangup("OSS/dsp", "") in new stack
>  >>
>  >>  == Spawn extension (default, 8888, 8) exited non-zero on 'OSS/dsp'
>  >>
>  >>  << Hangup on console >
>  >>
>  >>  OK – Have I done something really dumb or is this a BUG ?
>  >>  Thank VERY MUCH for any and ALL Help
>  >>
>  >
>  > While it may be a bug, I am under the impression that UnixODBC is the
>  > preferred way of connecting to to MySQL.  Maybe you should look into
>  > that and see if you come the the same conclusion about being
>  > "preferred" and see if the "bug" still exists.  That should help in a
>  > couple different ways.
>  >
>  > Thanks,
>  > Steve Totaro
>  >
>  > _______________________________________________
>  > -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>  >
>  > asterisk-users mailing list
>  > To UNSUBSCRIBE or update options visit:
>  >    http://lists.digium.com/mailman/listinfo/asterisk-users
>  >
>  >
>  >
>
>  _______________________________________________
>  -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>
>  asterisk-users mailing list
>  To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
>



More information about the asterisk-users mailing list