Huhu,
ich schon wieder
Habe irgendwie ein kleines Problem mit meinem AGI-Skript. Ich meine das lief schonmal genauso, aber scheinbar hat sich was an den Randbedingungen geändert (habe auf ISDN umgestellt) oder aber ich habe irgendwo was verändert ...
Folgende Ausgabe auf der CLI bekomme ich, wenn ich die Nummer anrufe:
Das AGI-Skript schaut so aus:
Ich gebe eine '2' ein und er liest aber '0' vor
Irgendwo steckt wohl ein kleiner Fehler drin.
Ich hoffe mir kann jemand helfen
Gruß Joel
ich schon wieder
Habe irgendwie ein kleines Problem mit meinem AGI-Skript. Ich meine das lief schonmal genauso, aber scheinbar hat sich was an den Randbedingungen geändert (habe auf ISDN umgestellt) oder aber ich habe irgendwo was verändert ...
Folgende Ausgabe auf der CLI bekomme ich, wenn ich die Nummer anrufe:
Code:
Executing Answer("Zap/1-1", "") in new stack
-- Accepting voice call from '654321' to '123456' on channel 0/1, span 1
-- Executing Wait("Zap/1-1", "2") in new stack
-- Executing AGI("Zap/1-1", "sperre_ast.pl") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/sperre_ast.pl
FAIL (unexpected result 'agi_channel: Zap/1-1')
-- AGI Script Executing Application: (PLAYBACK) Options: (hello-world)
-- Playing 'hello-world' (language 'en')
[COLOR="Red"][B] -- AGI Script Executing Application: (READ) Options: (nummer,beep,1)
-- User entered '2'[/B][/COLOR]
-- AGI Script Executing Application: (SAYDIGITS) Options: (0)
[COLOR="Red"][B] -- Playing 'digits/0' (language 'en')[/B][/COLOR]
-- AGI Script sperre_ast.pl completed, returning 0
-- Executing Wait("Zap/1-1", "2") in new stack
-- Executing Hangup("Zap/1-1", "") in new stack
== Spawn extension (isdn, 123456, 5) exited non-zero on 'Zap/1-1'
-- Hungup 'Zap/1-1'
Das AGI-Skript schaut so aus:
Code:
#!/usr/bin/perl
sub checkresult
{
my ($res) = @_;
my $retval;
$tests++;
chomp $res;
if ($res =~ /^200/)
{
$res =~ /result=1 \((\d+)\)/;
if (!length($1))
{
print STDERR "FAIL ($res)\n";
$fail++;
}
else
{
print STDERR "PASS ($1)\n";
$pass++;
return $1;
}
}
else
{
print STDERR "FAIL (unexpected result '$res')\n";
$fail++;
}
}
print "EXEC PLAYBACK hello-world\n";
print "EXEC READ nummer,beep,1\n";
my $result = <STDIN>;
print "GET VARIABLE nummer\n";
my $in = <STDIN>;
my $choice = &checkresult($in);
print "EXEC SAYDIGITS $choice\n";
my $say = <STDIN>;
Ich gebe eine '2' ein und er liest aber '0' vor
Irgendwo steckt wohl ein kleiner Fehler drin.
Ich hoffe mir kann jemand helfen
Gruß Joel