All pastes #2840 Raw Edit

Anonymous

public text v1 · immutable
#2840 ·published 2004-12-10 07:01 UTC
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