Hallo,
mein Chef hat mich darum gebeten ein kleines AGI-Script in Perl zu schreiben, welche Eingaben per Telefon annimmt, sie ans AGI-Script weiter gibt und dann wieder ausgibt. So zum Einstieg.
Da ich noch nicht viel mit Perl gemacht habe, habe ich mir nur das "nötigste" angeeignet - also bitte ich um Nachsicht
Ich will hier in dem kleinen Versuch also erstmal eine Ziffer vom Anrufer eingeben lassen und diese dann per AGI wieder ausgeben.
Meine Frage ist, wo der Fehler im Code des AGI liegt, da ich als Rückgabewert immer '200' bekomme und nicht die eingegebene Ziffer. Meines Wissens heisst returns 200 result=0 doch, dass das Script erfolgreich abgearbeitet wurde oder irre ich mich?
Ich hoffe mir kann jemand helfen :-(
Code:
Freundliche Grüße
Joel Maier
mein Chef hat mich darum gebeten ein kleines AGI-Script in Perl zu schreiben, welche Eingaben per Telefon annimmt, sie ans AGI-Script weiter gibt und dann wieder ausgibt. So zum Einstieg.
Da ich noch nicht viel mit Perl gemacht habe, habe ich mir nur das "nötigste" angeeignet - also bitte ich um Nachsicht
Ich will hier in dem kleinen Versuch also erstmal eine Ziffer vom Anrufer eingeben lassen und diese dann per AGI wieder ausgeben.
Meine Frage ist, wo der Fehler im Code des AGI liegt, da ich als Rückgabewert immer '200' bekomme und nicht die eingegebene Ziffer. Meines Wissens heisst returns 200 result=0 doch, dass das Script erfolgreich abgearbeitet wurde oder irre ich mich?
Ich hoffe mir kann jemand helfen :-(
Code:
Code:
#!/usr/bin/perl
use strict;
$|=1;
# Setup some variables
my %AGI; my $tests = 0; my $fail = 0; my $pass = 0;
while(<STDIN>) {
chomp;
last unless length($_);
if (/^agi_(\w+)\:\s+(.*)$/) {
$AGI{$1} = $2;
}
}
print STDERR "AGI Environment Dump:\n";
foreach my $i (sort keys %AGI) {
print STDERR " -- $i = $AGI{$i}\n";
}
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 "WAIT FOR DIGIT 10000\n";
my $ergebnis = <STDIN>;
&checkresult($ergebnis);
print "SAY DIGITS $ergebnis \"\"\n";
my $result = <STDIN>;
&checkresult($result);
Freundliche Grüße
Joel Maier
Zuletzt bearbeitet: