#!/usr/bin/perl $| = 1; use strict; use Asterisk::AGI; my $agentno; my $try; my $i; my $AGI = new Asterisk::AGI; my %input = $AGI->ReadParse(); open(LOGFILE, ">>logfile"); foreach $i (sort keys %input) { print LOGFILE "$i = $input{$i}\n"; } while ( (length($agentno) != 3 || $try < 3)) { print "GET DATA vm-intro 10000 3\n"; my $result = ; $AGI->verbose("Whee 3"); if ($result =~ m/200\sResult\:(\d\d\d)/g;) { $agentno = $1; } if (length($agentno) == 3) { open(CALLFILE, ">$agentno-2"); print CALLFILE 'Channel: Local/8900@agentlogin\n'; print CALLFILE 'MaxRetries: 0\n'; print CALLFILE 'RetryTime: 60\n'; print CALLFILE 'WaitTime: 60\n'; print CALLFILE 'Application: AgentCallbackLogin\n'; print CALLFILE 'Data: $agentno|$input{callerid}\@outbound\n'; close(CALLFILE); $agentno = $agentno + 300; open(CALLFILE2, "$agentno-2"); print CALLFILE2 'Channel: Local/8900@agentlogin\n'; print CALLFILE2 'MaxRetries: 0\n'; print CALLFILE2 'RetryTime: 60\n'; print CALLFILE2 'WaitTime: 60\n'; print CALLFILE2 'Application: AgentCallbackLogin\n'; print CALLFILE2 'Data: $agentno|$input{callerid}\@outbound\n'; close(CALLFILE2); exit(0); close(LOGFILE); } $try++; } close(LOGFILE);