rendered paste body#!/usr/bin/perl
use warnings;
use Asterisk::AGI;
$AGI = new Asterisk::AGI;
my %input = $AGI->ReadParse();
$pin= $AGI->get_variable('confpin');
$conf= $AGI->get_variable('confnum');
# 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 = ("conf\/$conf\/$pin");
main::Callfile();
sub main::Callfile
{
open(OUTFILE, ">> $CALLFILE") or die $AGI->verbose("can't open $CALLFILE for writing\n");
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";
`mv $CALLFILE /var/spool/asterisk/outgoing`;
close OUTFILE;
};
;------------------------------------------------------------------------------
; MeetMe Announced Join
;------------------------------------------------------------------------------
[conf-announced-join]
exten => s,1,SetVar(pincheck=0)
exten => s,2,Answer
exten => s,3,Read(confnum|conf-getconfno|4)
exten => s,4,Read(confpin|conf-getpin|4)
exten => s,5,DBGet(userannouncement=conference/room/${confnum}/${confpin}) ; if not available n+101
exten => s,6,NoOp("User Announcement: ${userannouncement}")
exten => s,7,GotoIf($["${userannouncement}" = ""]?recordprompt,1:joinconf,1)
exten => s,106,SetVar(pincheck=$[${pincheck} + 1])
exten => s,107,GotoIf($[${pincheck} = 3]?invalidpin,1)
exten => s,108,Playback(conf-invalidpin)
exten => s,109,Goto(s,3)
exten => recordprompt,1,SetVar(announcement=${confpin}.wav)
exten => recordprompt,2,NoOp(Announcment: ${announcement})
exten => recordprompt,3,DBPut(conference/room/${confnum}/${confpin}=${announcement})
exten => recordprompt,4,Playback(after-the-tone)
exten => recordprompt,5,Record(conf/${confnum}/${announcement}||6)
exten => recordprompt,6,Goto(joinconf,1)
exten => joinconf,1,AGI(conference-announce.pl)
exten => joinconf,2,MeetMe(${confnum}|q)
exten => invalidpin,1,Playback(invalid)
exten => invalidpin,2,Hangup
exten => _505X,1,MeetMe(${EXTEN}|q)
exten => _505X,2,Hangup