#!/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