Hi all!! Does anyone have a short example or even better - a working AGI script that uses "GET VARIABLE' from a /var/spool/asterisk/outgoing call that uses "SetVar"? Here's what I've tried with no luck so far: sample.call ================ Channel: SIP/1000 MaxRetries: 2 RetryTime: 60 WaitTime: 30 Application: Agi Data: playTasks.agi Callerid: Nightly Processor <(999) 888-777> SetVar: taskID=300 //This ID is queried from my mysql database so the playTasks.agi should be able to retreive this value to do another query to play information playTasks.agi (Derived from the agi-test.agi) =====================================#!/usr/bin/perl $|=1; while(<STDIN>) { chomp; last unless length($_); if (/^agi_(\w+)\:\s+(.*)$/) { $AGI{$1} = $2; } } sub checkresult { my ($res) = @_; my $retval; $tests++; chomp $res; if ($res =~ /^200/) { $res =~ /result=(-?\d+)/; if (!length($1)) { print STDERR "FAIL ($res)\n"; $fail++; } else { print STDERR "PASS ($1)\n"; $pass++; } } else { print STDERR "FAIL (unexpected result '$res')\n"; $fail++; } } print "GET VARIABLE taskID\n"; $result = <STDIN>; $taskID = checkresult($result); print STDERR "TaskID: $taskID\n"; print STDERR "Result: $result\n"; print "SAY NUMBER $taskID \"\"\n"; $result = <STDIN>; checkresult($result); ===================================== I always get 'zero' played back at the prompt & the result(s) don't display my $taskID. Anyone got any recommendations or how to fix it? Thanks!!
as far as i know only the extension/context/priority (NOT application/data side) has SetVar code. meaning you can't use whats not there. look in ..asterisk/pbx/pbx_spool.c line 189, notice that ast_pbx_outgoing_app isn't passing 0->variable like line 192, ast_pbx_outgoing_exten does. (this was cvs as of last friday) DUSTIN WILDES wrote:> > Hi all!! > > Does anyone have a short example or even better - a working AGI script that uses "GET VARIABLE' from a /var/spool/asterisk/outgoing call that uses "SetVar"? > Here's what I've tried with no luck so far: > > sample.call > ================> > Channel: SIP/1000 > MaxRetries: 2 > RetryTime: 60 > WaitTime: 30 > > Application: Agi > Data: playTasks.agi > > Callerid: Nightly Processor <(999) 888-777> > > SetVar: taskID=300 //This ID is queried from my mysql database so the playTasks.agi should be able to retreive this value to do another query to play information > > playTasks.agi (Derived from the agi-test.agi) > =====================================> #!/usr/bin/perl > > $|=1; > while(<STDIN>) { > chomp; > last unless length($_); > if (/^agi_(\w+)\:\s+(.*)$/) { > $AGI{$1} = $2; > } > } > > sub checkresult { > my ($res) = @_; > my $retval; > $tests++; > chomp $res; > if ($res =~ /^200/) { > $res =~ /result=(-?\d+)/; > if (!length($1)) { > print STDERR "FAIL ($res)\n"; > $fail++; > } else { > print STDERR "PASS ($1)\n"; > $pass++; > } > } else { > print STDERR "FAIL (unexpected result '$res')\n"; > $fail++; > } > } > > print "GET VARIABLE taskID\n"; > $result = <STDIN>; > $taskID = checkresult($result); > print STDERR "TaskID: $taskID\n"; > print STDERR "Result: $result\n"; > > print "SAY NUMBER $taskID \"\"\n"; > $result = <STDIN>; > checkresult($result); > =====================================> > I always get 'zero' played back at the prompt & the result(s) don't display my $taskID. > Anyone got any recommendations or how to fix it? > > Thanks!! > _______________________________________________ > Asterisk-Users mailing list > Asterisk-Users@lists.digium.com > http://lists.digium.com/mailman/listinfo/asterisk-users
Ahh - I'll review over the pbx_spool.c code to see what else I can find. I'll post any changes to the list for review. -----Original Message----- From: Richard Lyman [mailto:pchammer@dynx.net] Sent: Monday, August 25, 2003 12:59 PM To: asterisk-users@lists.digium.com Subject: Re: [Asterisk-Users] SetVar on sample.call as far as i know only the extension/context/priority (NOT application/data side) has SetVar code. meaning you can't use whats not there. look in ..asterisk/pbx/pbx_spool.c line 189, notice that ast_pbx_outgoing_app isn't passing 0->variable like line 192, ast_pbx_outgoing_exten does. (this was cvs as of last friday) DUSTIN WILDES wrote:> > Hi all!! > > Does anyone have a short example or even better - a working AGI script that uses "GET VARIABLE' from a /var/spool/asterisk/outgoing call that uses "SetVar"? > Here's what I've tried with no luck so far: > > sample.call > ================> > Channel: SIP/1000 > MaxRetries: 2 > RetryTime: 60 > WaitTime: 30 > > Application: Agi > Data: playTasks.agi > > Callerid: Nightly Processor <(999) 888-777> > > SetVar: taskID=300 //This ID is queried from my mysql database so the playTasks.agi should be able to retreive this value to do another query to play information > > playTasks.agi (Derived from the agi-test.agi) > =====================================> #!/usr/bin/perl > > $|=1; > while(<STDIN>) { > chomp; > last unless length($_); > if (/^agi_(\w+)\:\s+(.*)$/) { > $AGI{$1} = $2; > } > } > > sub checkresult { > my ($res) = @_; > my $retval; > $tests++; > chomp $res; > if ($res =~ /^200/) { > $res =~ /result=(-?\d+)/; > if (!length($1)) { > print STDERR "FAIL ($res)\n"; > $fail++; > } else { > print STDERR "PASS ($1)\n"; > $pass++; > } > } else { > print STDERR "FAIL (unexpected result '$res')\n"; > $fail++; > } > } > > print "GET VARIABLE taskID\n"; > $result = <STDIN>; > $taskID = checkresult($result); > print STDERR "TaskID: $taskID\n"; > print STDERR "Result: $result\n"; > > print "SAY NUMBER $taskID \"\"\n"; > $result = <STDIN>; > checkresult($result); > =====================================> > I always get 'zero' played back at the prompt & the result(s) don't display my $taskID. > Anyone got any recommendations or how to fix it? > > Thanks!! > _______________________________________________ > Asterisk-Users mailing list > Asterisk-Users@lists.digium.com > http://lists.digium.com/mailman/listinfo/asterisk-users_______________________________________________ Asterisk-Users mailing list Asterisk-Users@lists.digium.com http://lists.digium.com/mailman/listinfo/asterisk-users