rendered paste body#!/usr/bin/perl
use warnings;
use Asterisk::AGI;
$AGI = new Asterisk::AGI;
my %input = $AGI->ReadParse();
$AGI->verbose("Creating Call File\n", 1);
$conf= $AGI->get_variable('confnum');
$pin= $AGI->get_variable('confpin');
$AGI->verbose("Conference number: $conf\n");
$AGI->verbose("Pin number: $pin\n");
# callfile variables
my $CALLFILE = "/var/lib/asterisk/agi-bin/conf-announce.call"; # this needs to be a temporary place before we move it to /var/spool/asterisk/
my $CALL_CHANNEL = "Local/$conf\@conf-announced-join\/n";
my $CALL_RETRIES = 1;
my $CALL_RETRYTIME = 60;
my $CALL_WAITTIME = 30;
my $CALL_APP = "Playback";
my $CALL_APP_DATA = $AGI->database_get("conference\/room\/$conf, $pin");
$CALL_APP_DATA = "conf\/$conf\/".$CALL_APP_DATA;
$AGI->verbose("CALL APP DATA: $CALL_APP_DATA");
$AGI->verbose("Loading callfile subroutine\n");
main::Callfile();
sub main::Callfile
{
$AGI->verbose("Callfile subroutine loaded\n");
open(OUTFILE, ">> $CALLFILE") or die $AGI->verbose("can't open $CALLFILE for writing\n");
$AGI->verbose("CALLFILE created");
print OUTFILE "Channel: $CALL_CHANNEL\n";
print OUTFILE "MaxRetries: $CALL_RETRIES\n";
print OUTFILE "RetryTime: $CALL_RETRYTIME\n";
print OUTFILE "WaitTime: $CALL_WAITTIME\n";
print OUTFILE "Application: $CALL_APP\n";
print OUTFILE "Data: $CALL_APP_DATA\n";
$AGI->verbose("Moving callfile to spool\n");
`mv $CALLFILE /var/spool/asterisk/outgoing`;
close OUTFILE;
};
Asterisk CLI
conference-announce.pl: Creating Call File
conference-announce.pl: Conference number:
conference-announce.pl: Pin number: 5050
conference-announce.pl: CALL APP DATA: conf//
conference-announce.pl: Loading callfile subroutine
conference-announce.pl: Callfile subroutine loaded
conference-announce.pl: CALLFILE created
conference-announce.pl: Moving callfile to spool