Script bricht zu schnell ab

d9rv

Neuer User
Mitglied seit
27 Aug 2004
Beiträge
53
Punkte für Reaktionen
0
Punkte
6
Hi Folgendes AGI Script bricht zu schnell ab ich komme bei der Passwort ansage nur zu den ersten drei zahlen.

Hat da jemand eine IDEE?

PHP:
#!/usr/bin/perl
#
# Callauth Script
# (C) Rolf Varga

use DBI;
use Asterisk::AGI;
use POSIX qw(ceil floor);


$SIG{HUP}  = 'ignore_hup';

sub ignore_hup {
        print STDERR "\nHUP received!\n\n";
}


sub load_config() {
        open(CFG, "</var/lib/asterisk/agi-bin/callauth-config.conf");
        while(<CFG>) {
                chomp;
                my ($var, $val) = split(/\s*\=\s*/);
                $config{$var} = $val;
        }
        close(CFG);
}

sub connect_db() {
        my $dsn = "DBI:mysql:database=$config{'dbname'};host=$config{'dbhost'}";
        $dbh->disconnect if $dbh;
        $dbh = DBI->connect($dsn, $config{'dbuser'}, $config{'dbpass'});
}

sub msleep() {
        my ($time) = @_;
        select(undef, undef, undef, $time/1000);
}

sub getlang() {
        my ($calleridnum) = @_;
        my $res;
        $sth = $dbh->prepare("SELECT * FROM users WHERE telefonnr='004921158003106'");
        $sth->execute;
        $res = $sth->fetchrow_hashref;
        $sth->finish;
        return $res;
}

sub mystreamfile() {
        my ($filename) = @_;
        my $res;
        $res = $AGI->stream_file($filename, "0123456789");
        $res = "" if $res eq "0";
        $res = sprintf("%c", $res)      if length($res);
        return $res;
}

sub mysaypassword() {
        my ($number) = @_;
#       my ($lang);
        my $res;
#       $res = $AGI->SetLanguage(de);
        $res = $AGI->say_digits($number, "0123456789");
#       $res = "" if $res eq "0";
#       $res = sprintf("%c", $res)      if length($res);
        return $res;
}

# Setup some variables
$AGI = new Asterisk::AGI;

my %input = $AGI->ReadParse();

print STDERR "Detected dry run!\n";

exit unless $input{'request'};

print STDERR "AGI Environment Dump:\n";
foreach $i (sort keys %input) {
        print STDERR " -- $i = $input{$i}\n";
}


#
# Answer the line right away
#
($calleridnum, $quiet) = @ARGV;
$AGI->answer();
#
# Play a nice tone
#
&load_config();
&connect_db();
if (!$dbh) {
        if ($quiet <= 4 ) {
                $AGI->stream_file("astcc-down");
        }
        exit(0);
}
my $res;
&msleep(500);
if ($quiet <= 4 ) {
        $res = &mystreamfile("astcc-tone");
} else {
        $res = "silent";
}
print STDERR "Res is $res\n";
print STDERR "Silent Level is $quiet\n";
exit(0) if $res < 0;

my $callerid = $input{callerid};

$userdata = &getlang($calleridnum);
$password = $userdata->{password_auth};
$lang = $userdata->{language};

if($userdata->{language} eq "de") {
        $res = &mystreamfile("de/callauth-welcome");
        $AGI->say_digits($password);
        $AGI->stream_file("de/vm-goodbye");
}

if($userdata->{language} eq "uk") {
        $res = &mystreamfile("callauth-welcome");
        $res = $AGI->say_digits($password, "0123456789");
        $AGI->stream_file("vm-goodbye");
}

if($userdata->{language} eq "hu") {
        $res = &mystreamfile("hu/callauth-welcome");
        $res = $AGI->say_digits($password, "0123456789");
        $AGI->stream_file("hu/vm-goodbye");
}

exit(0);
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,831
Beiträge
2,219,105
Mitglieder
371,533
Neuestes Mitglied
ipeee
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.