ruby-agi 1.1.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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