Skip to content
Snippets Groups Projects
agi-test.agi 1.7 KiB
Newer Older
  • Learn to ignore specific revisions
  • Mark Spencer's avatar
    Mark Spencer committed
    #!/usr/bin/perl
    
    Mark Spencer's avatar
    Mark Spencer committed
    use strict;
    
    
    Mark Spencer's avatar
    Mark Spencer committed
    $|=1;
    
    Mark Spencer's avatar
    Mark Spencer committed
    
    # Setup some variables
    my %AGI; my $tests = 0; my $fail = 0; my $pass = 0;
    
    
    Mark Spencer's avatar
    Mark Spencer committed
    while(<STDIN>) {
    	chomp;
    	last unless length($_);
    	if (/^agi_(\w+)\:\s+(.*)$/) {
    		$AGI{$1} = $2;
    	}
    }
    
    print STDERR "AGI Environment Dump:\n";
    
    Mark Spencer's avatar
    Mark Spencer committed
    foreach my $i (sort keys %AGI) {
    
    Mark Spencer's avatar
    Mark Spencer committed
    	print STDERR " -- $i = $AGI{$i}\n";
    }
    
    sub checkresult {
    	my ($res) = @_;
    	my $retval;
    	$tests++;
    	chomp $res;
    	if ($res =~ /^200/) {
    		$res =~ /result=(-?\d+)/;
    		if (!length($1)) {
    			print STDERR "FAIL ($res)\n";
    			$fail++;
    		} else {
    			print STDERR "PASS ($1)\n";
    			$pass++;
    		}
    	} else {
    		print STDERR "FAIL (unexpected result '$res')\n";
    		$fail++;
    	}
    }
    
    print STDERR "1.  Testing 'sendfile'...";
    print "STREAM FILE beep \"\"\n";
    
    Mark Spencer's avatar
    Mark Spencer committed
    my $result = <STDIN>;
    &checkresult($result);
    
    Mark Spencer's avatar
    Mark Spencer committed
    
    print STDERR "2.  Testing 'sendtext'...";
    print "SEND TEXT \"hello world\"\n";
    
    Mark Spencer's avatar
    Mark Spencer committed
    my $result = <STDIN>;
    &checkresult($result);
    
    Mark Spencer's avatar
    Mark Spencer committed
    
    print STDERR "3.  Testing 'sendimage'...";
    print "SEND IMAGE asterisk-image\n";
    
    Mark Spencer's avatar
    Mark Spencer committed
    my $result = <STDIN>;
    &checkresult($result);
    
    Mark Spencer's avatar
    Mark Spencer committed
    
    print STDERR "4.  Testing 'saynumber'...";
    print "SAY NUMBER 192837465 \"\"\n";
    
    Mark Spencer's avatar
    Mark Spencer committed
    my $result = <STDIN>;
    &checkresult($result);
    
    Mark Spencer's avatar
    Mark Spencer committed
    
    print STDERR "5.  Testing 'waitdtmf'...";
    print "WAIT FOR DIGIT 1000\n";
    
    Mark Spencer's avatar
    Mark Spencer committed
    my $result = <STDIN>;
    &checkresult($result);
    
    Mark Spencer's avatar
    Mark Spencer committed
    
    print STDERR "6.  Testing 'record'...";
    print "RECORD FILE testagi gsm 1234 3000\n";
    
    Mark Spencer's avatar
    Mark Spencer committed
    my $result = <STDIN>;
    &checkresult($result);
    
    Mark Spencer's avatar
    Mark Spencer committed
    
    print STDERR "6a.  Testing 'record' playback...";
    print "STREAM FILE testagi \"\"\n";
    
    Mark Spencer's avatar
    Mark Spencer committed
    my $result = <STDIN>;
    &checkresult($result);
    
    Mark Spencer's avatar
    Mark Spencer committed
    
    print STDERR "================== Complete ======================\n";
    print STDERR "$tests tests completed, $pass passed, $fail failed\n";
    print STDERR "==================================================\n";