3d9b5dc3a8617530627fb6941dd4e3c08125f0d4
[asterisk/asterisk.git] / agi / agi-test.agi
1 #!/usr/bin/perl
2 $|=1;
3 while(<STDIN>) {
4         chomp;
5         last unless length($_);
6         if (/^agi_(\w+)\:\s+(.*)$/) {
7                 $AGI{$1} = $2;
8         }
9 }
10
11 print STDERR "AGI Environment Dump:\n";
12 foreach $i (sort keys %AGI) {
13         print STDERR " -- $i = $AGI{$i}\n";
14 }
15
16 sub checkresult {
17         my ($res) = @_;
18         my $retval;
19         $tests++;
20         chomp $res;
21         if ($res =~ /^200/) {
22                 $res =~ /result=(-?\d+)/;
23                 if (!length($1)) {
24                         print STDERR "FAIL ($res)\n";
25                         $fail++;
26                 } else {
27                         print STDERR "PASS ($1)\n";
28                         $pass++;
29                 }
30         } else {
31                 print STDERR "FAIL (unexpected result '$res')\n";
32                 $fail++;
33         }
34 }
35
36 print STDERR "1.  Testing 'sendfile'...";
37 print "STREAM FILE beep \"\"\n";
38 $result = <STDIN>;
39 checkresult($result);
40
41 print STDERR "2.  Testing 'sendtext'...";
42 print "SEND TEXT \"hello world\"\n";
43 $result = <STDIN>;
44 checkresult($result);
45
46 print STDERR "3.  Testing 'sendimage'...";
47 print "SEND IMAGE asterisk-image\n";
48 $result = <STDIN>;
49 checkresult($result);
50
51 print STDERR "4.  Testing 'saynumber'...";
52 print "SAY NUMBER 192837465 \"\"\n";
53 $result = <STDIN>;
54 checkresult($result);
55
56 print STDERR "5.  Testing 'waitdtmf'...";
57 print "WAIT FOR DIGIT 1000\n";
58 $result = <STDIN>;
59 checkresult($result);
60
61 print STDERR "6.  Testing 'record'...";
62 print "RECORD FILE testagi gsm 1234 3000\n";
63 $result = <STDIN>;
64 checkresult($result);
65
66 print STDERR "6a.  Testing 'record' playback...";
67 print "STREAM FILE testagi \"\"\n";
68 $result = <STDIN>;
69 checkresult($result);
70
71 print STDERR "================== Complete ======================\n";
72 print STDERR "$tests tests completed, $pass passed, $fail failed\n";
73 print STDERR "==================================================\n";