art at impossibleworlds.com
2007-Jul-23 19:30 UTC
[asterisk-users] Problem w/ MySQL update from perl AGI script
I've been trying to get a basic 5 question IVR survey working in an AGI script, and am having trouble with the SQL portion not updating the table. When I take out all the AGI references, and run just the perl script, the table updates with no problem(DBname,username,password have been substituted in this example for the actual values): #!/usr/bin/perl # # use DBI; $DATETIME = '123188765' ; $TIMESTAMP = '8675309'; $dsn = "DBI:mysql:DBname;localhost;3306"; $dbh = DBI->connect($dsn,username,password); $drh = DBI->install_driver("mysql"); my $Q1 = "8"; my $Q2 = "6"; my $Q3 = "7"; my $Q4 = "5"; my $Q5 = "3"; my $query = "INSERT into caller_data (DateTime, ANI, Q1, Q2, Q3, Q4, Q5) VALUES($TIMESTAMP,$ANI,$Q1,$Q2,$Q3,$Q4,$Q5)"; $sth = $dbh->prepare($query); $sth->execute; $sth->finish; Then, When I try an put it together with the AGI commands, the IVR works nicely from a caller prespective, but I get no update in the MySQL table: #!/usr/bin/perl # # use DBI; use Asterisk::AGI; $dsn = "DBI:mysql:DBname;localhost;3306"; $dbh = DBI->connect($dsn,username,password); $drh = DBI->install_driver("mysql"); $AGI = new Asterisk::AGI; my %input = $AGI->ReadParse(); my $ANI = $input{'CALLERIDNUM'}; my $TIMESTAMP = $input{'TIMESTAMP'}; $AGI->answer(); $AGI->stream_file('ABdeli-greeting'); $AGI->stream_file('ABdeli-instructions'); my $Q1 = $AGI->get_data('ABdeli-q1', 5000, 1); my $Q2 = $AGI->get_data('ABdeli-q2', 5000, 1); my $Q3 = $AGI->get_data('ABdeli-q3', 5000, 1); my $Q4 = $AGI->get_data('ABdeli-q4', 5000, 1); my $Q5 = $AGI->get_data('ABdeli-q5', 5000, 1); my $query = "INSERT into caller_data (DateTime, ANI, Q1, Q2, Q3, Q4, Q5) VALUES($TIMESTAMP,$ANI,$Q1,$Q2,$Q3,$Q4,$Q5)"; $sth = $dbh->prepare($query); $sth->execute; $sth->finish; $AGI->hangup();