#!/usr/bin/perl -w
use strict;
use Asterisk::AGI;
use Asterisk::Outgoing;

$SIG{HUP} = "IGNORE";

#sub verbose($$) {
#    my $agi = shift;
#    my $str = shift;
#    $agi->exec( 'Verbose', $str );
#}

my $agi   = new Asterisk::AGI;
my %input = $agi->ReadParse();

my $from         = $input{arg_1};
my $from_context = $input{arg_2};
my $to_context   = $input{arg_3};

my $callerid = $input{callerid};

#$callerid =~ s/[^\d]//g;

#verbose($agi, "1");

my $out = new Asterisk::Outgoing();

#verbose($agi, "2");

$out->setvariable( 'Channel',   "Local/" . $callerid . "@" . $to_context );
$out->setvariable( 'Context',   $from_context );
$out->setvariable( 'Extension', $from );
$out->setvariable( 'Priority',  '1' );
$out->setvariable( 'Archive',   'yes' );
$out->setvariable( 'WaitTime',  '60' );
$out->create_outgoing();

#verbose($agi, "3");

#foreach my $k ( sort keys %input ) {
#    $agi->exec( 'Verbose', "$k=" . $input{$k} );
#}

#verbose( $agi, "Callerid: '$callerid'" );

$agi->exec("Hangup");

