All pastes #918123 Raw Edit

Something

public text v1 · immutable
#918123 ·published 2008-02-25 22:38 UTC
rendered paste body
#!/usr/bin/perl

use warnings;
use strict;
use DBI;
use Asterisk::AGI;

my $AGI = Asterisk::AGI->new;
                               
my $dbh = DBI->connect(
        'dbi:mysql:phonestuff',
        'phonestuff',
        'phonestuff',
        {
                host => 'db',   
                port => 3306
        }
) or die "Failed to connect to database: $DBI::errstr\n";

open my $fh, '>', '/tmp/aclookup.out';
for my $key ( keys %ENV ) {
        print $fh "ENV{$key} => $ENV{$key}\n";
}

for my $arg ( @ARGV ) {
        print $fh "ARG: $arg\n";
}
 
my %input = $AGI->ReadParse;
for my $key ( keys %input ) {
        print $fh "INPUT{$key} => $input{$key}\n";
}
 
if ( $input{dnid} && length $input{dnid} == 10 ) {
        print $fh "Found 10-digit number as dnid, parsing for area code\n";
        my ( $actest ) = ( $input{dnid} =~ /^(\d{3})/ );
        print $fh "Looking for area code '$actest'\n";  
        my $sth = $dbh->prepare( 'SELECT city,state,country FROM areacodes WHERE ac = ?' );
        $sth->execute( $actest );
        if ( $sth->rows > 0 ) {  
                print $fh "Found entry for area code '$actest'\n";
                my $row = $sth->fetchrow_hashref;
                print "VERBOSE Call is destined for '$row->{city}', '$row->{state}', '$row->{country}'\n";
                print $agi->exec("Verbose", "Call is destined for '$row->{city}', '$row->{state}', '$row->{country}'\n");
                print $fh "Call is destined for '$row->{city}', '$row->{state}', '$row->{country}'\n";
        }
        else {
                print $fh "Did not find an entry matching '$actest'\n";
        }
        $sth->finish;
}
else {
        print $fh "Not a 10-digit number as dnid, skipping\n";
}
 
$dbh->disconnect;

exit;