#!/usr/bin/perl use warnings; use strict; use lib ("/usr/local/grobill"); use GroBill; use Asterisk::AGI; our $AGI = new Asterisk::AGI; our %INPUT = $AGI->ReadParse(); $AGI->setcallback (\&mycallback); main(); sub main { my $dbh = GroBill::connect_db(); my $accountcode = $AGI->get_variable ('MYACCOUNTCODE'); my $destination = $AGI->get_variable ('DESTINATION'); print STDERR $accountcode . "\n"; print STDERR $destination . "\n"; my $transactionid = GroBill::create_transactionid ($dbh, $accountcode); my $minutes = GroBill::reserve_time ($dbh, $transactionid, $accountcode, $destination); $AGI->exec ('SetAccount' => $transactionid) && exit; $AGI->exec ('AbsoluteTimeout' => int (60 * $minutes)) && exit; } sub mycallback { my ($returncode) = @_; print STDERR "MYCALLBACK: User Hungup ($returncode)\n"; exit($returncode); } 1;