ruby-agi 1.1.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/ChangeLog +0 -9
  2. data/DOWNLOAD +1 -1
  3. data/INSTALL +1 -6
  4. data/README +10 -7
  5. data/Release-Notes +18 -9
  6. data/lib/ruby-agi/asterisk_variable.rb +2 -2
  7. data/lib/ruby-agi/command.rb +40 -37
  8. data/lib/ruby-agi/error.rb +3 -0
  9. data/lib/ruby-agi/return_status.rb +31 -92
  10. data/lib/ruby-agi/rs/answer.rb +68 -0
  11. data/lib/ruby-agi/rs/channel_status.rb +127 -0
  12. data/lib/ruby-agi/rs/exec.rb +69 -0
  13. data/lib/ruby-agi/rs/get_variable.rb +76 -0
  14. data/lib/ruby-agi/rs/hangup.rb +76 -0
  15. data/lib/ruby-agi/rs/noop.rb +68 -0
  16. data/lib/ruby-agi/rs/receive_char.rb +112 -0
  17. data/lib/ruby-agi/rs/receive_text.rb +73 -0
  18. data/lib/ruby-agi/rs/record_file.rb +184 -0
  19. data/lib/ruby-agi/rs/result.rb +47 -0
  20. data/lib/ruby-agi/rs/return_status.rb +98 -0
  21. data/lib/ruby-agi/rs/say_digits.rb +85 -0
  22. data/lib/ruby-agi/rs/say_number.rb +88 -0
  23. data/lib/ruby-agi/rs/say_phonetic.rb +88 -0
  24. data/lib/ruby-agi/rs/say_time.rb +90 -0
  25. data/lib/ruby-agi/rs/send_image.rb +83 -0
  26. data/lib/ruby-agi/rs/send_text.rb +83 -0
  27. data/lib/ruby-agi/rs/set_auto_hangup.rb +69 -0
  28. data/lib/ruby-agi/rs/set_caller_id.rb +72 -0
  29. data/lib/ruby-agi/rs/set_context.rb +71 -0
  30. data/lib/ruby-agi/rs/set_extension.rb +72 -0
  31. data/lib/ruby-agi/rs/set_music.rb +71 -0
  32. data/lib/ruby-agi/rs/set_priority.rb +69 -0
  33. data/lib/ruby-agi/rs/set_variable.rb +76 -0
  34. data/lib/ruby-agi/rs/stream_file.rb +138 -0
  35. data/lib/ruby-agi/rs/tdd_mode.rb +95 -0
  36. data/lib/ruby-agi/rs/verbose.rb +73 -0
  37. data/lib/ruby-agi/rs/wait_for_digit.rb +90 -0
  38. data/lib/ruby-agi/rs/wait_for_digits.rb +88 -0
  39. data/test/unit.rb +37 -0
  40. metadata +36 -6
@@ -0,0 +1,85 @@
1
+ #
2
+ # File: say_digits.rb
3
+ #
4
+ # ruby-agi: Ruby Language API for Asterisk
5
+ #
6
+ # Copyright (C) <2006> Mohammad Khan <info@beeplove.com>
7
+ #
8
+ # This program is free software; you can redistribute it and/or modify
9
+ # it under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation; either version 2 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # This program is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ # GNU General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU General Public License
19
+ # along with this program; if not, write to the Free Software
20
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
+ #
22
+
23
+ require 'ruby-agi/rs/return_status'
24
+
25
+ # Say a given digit string, returning early if any of the given DTMF digits are received on the channel.
26
+ #
27
+ # Command Reference: SAY DIGITS <number> <escape digits>
28
+ #
29
+ # failure: 200 result=-1
30
+ # success: 200 result=0
31
+ # digit pressed: 200 result=<digit>
32
+ # <digit> is the ascii code for the digit pressed.
33
+ #
34
+
35
+
36
+ class ReturnStatus
37
+ end
38
+
39
+ class SayDigits < ReturnStatus
40
+
41
+ def initialize(command, response)
42
+ super(command, response)
43
+ end
44
+
45
+ def success?
46
+ if @is_success.nil?
47
+ if result == '0'
48
+ @is_success = true
49
+ else
50
+ @is_success = false
51
+ end
52
+ end
53
+
54
+ return @is_success
55
+ end
56
+
57
+ def failure?
58
+ if @is_failure.nil?
59
+ if result == '-1'
60
+ @is_failure = true
61
+ else
62
+ @is_failure = false
63
+ end
64
+ end
65
+
66
+ return @is_failure
67
+ end
68
+
69
+ def digit
70
+ if @digit.nil?
71
+ @digit = result.to_i.chr
72
+ end
73
+
74
+ return @digit
75
+ end
76
+
77
+ def error?
78
+ return command_error?
79
+ end
80
+
81
+ def response
82
+ return message
83
+ end
84
+
85
+ end
@@ -0,0 +1,88 @@
1
+ #
2
+ # File: say_number.rb
3
+ #
4
+ # ruby-agi: Ruby Language API for Asterisk
5
+ #
6
+ # Copyright (C) <2006> Mohammad Khan <info@beeplove.com>
7
+ #
8
+ # This program is free software; you can redistribute it and/or modify
9
+ # it under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation; either version 2 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # This program is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ # GNU General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU General Public License
19
+ # along with this program; if not, write to the Free Software
20
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
+ #
22
+
23
+ require 'ruby-agi/rs/return_status'
24
+
25
+ # Say a given number, returning early if any of the given DTMF digits are received on the channel.
26
+ #
27
+ # Command Reference: SAY NUMBER <number> <escape digits>
28
+ #
29
+ # - number : number to announce
30
+ # - escape_digit : if pressed, return from program
31
+ #
32
+ # failure: 200 result=-1
33
+ # success: 200 result=0
34
+ # digit pressed: 200 result=<digit>
35
+ #<digit> is the ascii code for the digit pressed.
36
+ #
37
+
38
+
39
+ class ReturnStatus
40
+ end
41
+
42
+ class SayNumber < ReturnStatus
43
+
44
+ def initialize(command, response)
45
+ super(command, response)
46
+ end
47
+
48
+ def success?
49
+ if @is_success.nil?
50
+ if result == '0'
51
+ @is_success = true
52
+ else
53
+ @is_success = false
54
+ end
55
+ end
56
+
57
+ return @is_success
58
+ end
59
+
60
+ def failure?
61
+ if @is_failure.nil?
62
+ if result == '-1'
63
+ @is_failure = true
64
+ else
65
+ @is_failure = false
66
+ end
67
+ end
68
+
69
+ return @is_failure
70
+ end
71
+
72
+ def digit
73
+ if @digit.nil?
74
+ @digit = result.to_i.chr
75
+ end
76
+
77
+ return @digit
78
+ end
79
+
80
+ def error?
81
+ return command_error?
82
+ end
83
+
84
+ def response
85
+ return message
86
+ end
87
+
88
+ end
@@ -0,0 +1,88 @@
1
+ #
2
+ # File: say_phonetic.rb
3
+ #
4
+ # ruby-agi: Ruby Language API for Asterisk
5
+ #
6
+ # Copyright (C) <2006> Mohammad Khan <info@beeplove.com>
7
+ #
8
+ # This program is free software; you can redistribute it and/or modify
9
+ # it under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation; either version 2 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # This program is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ # GNU General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU General Public License
19
+ # along with this program; if not, write to the Free Software
20
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
+ #
22
+
23
+ require 'ruby-agi/rs/return_status'
24
+
25
+ #
26
+ # Say a given character string with phonetics, returning early if any of the given DTMF digits are received on the channel.
27
+ #
28
+ # Command Reference: SAY PHONETIC <string> <escape digits>
29
+ #
30
+ # - string : character string to announce
31
+ # - escape_digit : digit to be pressed to escape from program
32
+ #
33
+ # failure: 200 result=-1
34
+ # success: 200 result=0
35
+ # digit pressed: 200 result=<digit>
36
+ # <digit> is the ascii code for the digit pressed.
37
+ #
38
+
39
+ class ReturnStatus
40
+ end
41
+
42
+ class SayPhonetic < ReturnStatus
43
+
44
+ def initialize(command, response)
45
+ super(command, response)
46
+ end
47
+
48
+ def success?
49
+ if @is_success.nil?
50
+ if result == '0'
51
+ @is_success = true
52
+ else
53
+ @is_success = false
54
+ end
55
+ end
56
+
57
+ return @is_success
58
+ end
59
+
60
+ def failure?
61
+ if @is_failure.nil?
62
+ if result == '-1'
63
+ @is_failure = true
64
+ else
65
+ @is_failure = false
66
+ end
67
+ end
68
+
69
+ return @is_failure
70
+ end
71
+
72
+ def digit
73
+ if @digit.nil?
74
+ @digit = result.to_i.chr
75
+ end
76
+
77
+ return @digit
78
+ end
79
+
80
+ def error?
81
+ return command_error?
82
+ end
83
+
84
+ def response
85
+ return message
86
+ end
87
+
88
+ end
@@ -0,0 +1,90 @@
1
+ #
2
+ # File: say_time.rb
3
+ #
4
+ # ruby-agi: Ruby Language API for Asterisk
5
+ #
6
+ # Copyright (C) <2006> Mohammad Khan <info@beeplove.com>
7
+ #
8
+ # This program is free software; you can redistribute it and/or modify
9
+ # it under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation; either version 2 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # This program is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ # GNU General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU General Public License
19
+ # along with this program; if not, write to the Free Software
20
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
+ #
22
+
23
+ require 'ruby-agi/rs/return_status'
24
+
25
+ #
26
+ # Say a given time, returning early if any of the given DTMF digits are received on the channel.
27
+ #
28
+ # Command Reference: SAY TIME <time> <escape digits>
29
+ #
30
+ # - time : number of seconds elapsed since 00:00:00 on January 1, 1970, Coordinated Universal Time (UTC).
31
+ # - escape_digits : digit to be pressed to escape from the program
32
+ #
33
+ # failure: 200 result=-1
34
+ # success: 200 result=0
35
+ # digit pressed: 200 result=<digit>
36
+ # <digit> is the ascii code for the digit pressed.
37
+ #
38
+ #
39
+
40
+
41
+ class ReturnStatus
42
+ end
43
+
44
+ class SayTime < ReturnStatus
45
+
46
+ def initialize(command, response)
47
+ super(command, response)
48
+ end
49
+
50
+ def success?
51
+ if @is_success.nil?
52
+ if result == '0'
53
+ @is_success = true
54
+ else
55
+ @is_success = false
56
+ end
57
+ end
58
+
59
+ return @is_success
60
+ end
61
+
62
+ def failure?
63
+ if @is_failure.nil?
64
+ if result == '-1'
65
+ @is_failure = true
66
+ else
67
+ @is_failure = false
68
+ end
69
+ end
70
+
71
+ return @is_failure
72
+ end
73
+
74
+ def digit
75
+ if @digit.nil?
76
+ @digit = result.to_i.chr
77
+ end
78
+
79
+ return @digit
80
+ end
81
+
82
+ def error?
83
+ return command_error?
84
+ end
85
+
86
+ def response
87
+ return message
88
+ end
89
+
90
+ end
@@ -0,0 +1,83 @@
1
+ #
2
+ # File: send_image.rb
3
+ #
4
+ # ruby-agi: Ruby Language API for Asterisk
5
+ #
6
+ # Copyright (C) <2006> Mohammad Khan <info@beeplove.com>
7
+ #
8
+ # This program is free software; you can redistribute it and/or modify
9
+ # it under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation; either version 2 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # This program is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ # GNU General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU General Public License
19
+ # along with this program; if not, write to the Free Software
20
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
+ #
22
+
23
+ require 'ruby-agi/rs/return_status'
24
+
25
+ #
26
+ # Sends the given image on a channel.
27
+ # Most channels do not support the transmission of images.
28
+ # Image names should not include extensions.
29
+ #
30
+ # <b>Parameters</b>
31
+ # - image : location of image
32
+ #
33
+ # <b>Returns</b>
34
+ # - ReturnStatus (object)
35
+ #
36
+ # failure: 200 result=-1
37
+ # success: 200 result=0
38
+ #
39
+ # Command Reference: SEND IMAGE <image>
40
+ #
41
+
42
+ class ReturnStatus
43
+ end
44
+
45
+ class SendImage < ReturnStatus
46
+
47
+ def initialize(command, response)
48
+ super(command, response)
49
+ end
50
+
51
+ def success?
52
+ if @is_success.nil?
53
+ if result == '0'
54
+ @is_success = true
55
+ else
56
+ @is_success = false
57
+ end
58
+ end
59
+
60
+ return @is_success
61
+ end
62
+
63
+ def failure?
64
+ if @is_failure.nil?
65
+ if result == '-1'
66
+ @is_failure = true
67
+ else
68
+ @is_failure = false
69
+ end
70
+ end
71
+
72
+ return @is_failure
73
+ end
74
+
75
+ def error?
76
+ return command_error?
77
+ end
78
+
79
+ def response
80
+ return message
81
+ end
82
+
83
+ end
@@ -0,0 +1,83 @@
1
+ #
2
+ # File: send_text.rb
3
+ #
4
+ # ruby-agi: Ruby Language API for Asterisk
5
+ #
6
+ # Copyright (C) <2006> Mohammad Khan <info@beeplove.com>
7
+ #
8
+ # This program is free software; you can redistribute it and/or modify
9
+ # it under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation; either version 2 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # This program is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ # GNU General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU General Public License
19
+ # along with this program; if not, write to the Free Software
20
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
+ #
22
+
23
+ require 'ruby-agi/rs/return_status'
24
+
25
+ #
26
+ # Sends the given text on a channel.
27
+ # Most channels do not support the transmission of text.
28
+ # Text consisting of greater than one word should be placed in quotes since the command only accepts a single argument.
29
+ #
30
+ # <b>Parameters</b>
31
+ # - text : text to be send
32
+ #
33
+ # <b>Returns</b>
34
+ # - ReturnStatus (object)
35
+ #
36
+ # failure: 200 result=-1
37
+ # success: 200 result=0
38
+ #
39
+ # Command Reference: SEND TEXT "<text to send>"
40
+ #
41
+
42
+ class ReturnStatus
43
+ end
44
+
45
+ class SendText < ReturnStatus
46
+
47
+ def initialize(command, response)
48
+ super(command, response)
49
+ end
50
+
51
+ def success?
52
+ if @is_success.nil?
53
+ if result == '0'
54
+ @is_success = true
55
+ else
56
+ @is_success = false
57
+ end
58
+ end
59
+
60
+ return @is_success
61
+ end
62
+
63
+ def failure?
64
+ if @is_failure.nil?
65
+ if result == '-1'
66
+ @is_failure = true
67
+ else
68
+ @is_failure = false
69
+ end
70
+ end
71
+
72
+ return @is_failure
73
+ end
74
+
75
+ def error?
76
+ return command_error?
77
+ end
78
+
79
+ def response
80
+ return message
81
+ end
82
+
83
+ end