> the DIALSTRING you were given is just an extension, 089324154332. As > Lenz pointed out, and it also says in the app_dial.c:773 WARNING, it > must be technology/number, not just a number. Not sure perl methods, > but you might concatenate a technology before the number, something like > $res = $AGI->exec("DIAL Local/$dialstring"); > or > $res = $AGI->exec("DIAL SIP/$dialstring"); > > again, I don't know perl, so if that broke something, sorry ;) > > > Christian B wrote: > > Hello! > > > > I'm trying to setup a perl-deadagi, but my perl skills lack. can > > someone tell me why the following code doesn't work: > > > > #!/usr/bin/perl > > use Asterisk::AGI; > > $AGI = new Asterisk::AGI; > > > > $dialstring = $AGI->get_variable("DIALSTRING"); > > $res = $AGI->exec("DIAL $dialstring"); > > > > > > the asterisk output says: > > > > AGI Rx << GET VARIABLE DIALSTRING > > AGI Tx >> 200 result=1 (089324154332) > > AGI Rx << EXEC DIAL "" > > -- AGI Script Executing Application: (DIAL) Options: () > > Mar 20 11:46:02 WARNING[21970]: app_dial.c:773 dial_exec_full: Dial > > requires an argument (technology/number) AGI Tx >> 200 result=-1 > > -- AGI Script agirouter/dialscript.pl completed, returning 0 > > > > > > so the get_variable-command seems to work, also the exec(with > > "$dialstring = 089324154332" the call goes out), but not setting the > > variable. should be so simple :-( astcc-agi seems to use the same > > syntax, so i have no clue what is wrong in my place... > > any ideas? thx! > > > > kind regards > > Christian
I believe the problem was that the expected value of $dialstring in the Perl script wasn't making it back to *. I would recommend a little debugging: #!/usr/bin/perl use Asterisk::AGI; $AGI = new Asterisk::AGI; $dialstring = $AGI->get_variable("DIALSTRING"); # Debug here: print STDERR "\$dialstring contains '$dialstring'\n\n"; # This _should_ print to the console on the Asterisk server # Note also the minor changes to the arguments for exec method: $res = $AGI->exec('DIAL', $dialstring); What you want to do is make absolutely certain that you are getting what you expect with the $AGI->get_variable("DIALSTRING") call. If you get only a phone number then you WILL need to add the technology to the exec call: $res = $AGI->exec('DIAL', "ZAP/g1/$dialstring"); -or- $res = $AGI->exec('DIAL', "SIP/$dialstring"); (Use the technology appropriate for your application.) Quickie Perl lesson: Putting a variable in double quotes causes interpolation. For example, if the variable $dialstring contains a phone number (e.g. 5595551212) then the command: $res = $AGI->exec('DIAL', "ZAP/g1/$dialstring"); Becomes the equivalent of: $res = $AGI->exec('DIAL', "ZAP/g1/5595551212"); HTH, MC _______________________________________________ --Bandwidth and Colocation provided by Easynews.com -- Asterisk-Users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users