redial-ruby-agi 2.0.1

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 (44) hide show
  1. data/ChangeLog +44 -0
  2. data/LICENSE +222 -0
  3. data/README.md +25 -0
  4. data/Rakefile +20 -0
  5. data/VERSION +1 -0
  6. data/examples/call_log.rb +18 -0
  7. data/lib/ruby-agi.rb +5 -0
  8. data/lib/ruby-agi/agi.rb +891 -0
  9. data/lib/ruby-agi/asterisk_variable.rb +242 -0
  10. data/lib/ruby-agi/command.rb +911 -0
  11. data/lib/ruby-agi/error.rb +48 -0
  12. data/lib/ruby-agi/return_status.rb +31 -0
  13. data/lib/ruby-agi/rs/answer.rb +68 -0
  14. data/lib/ruby-agi/rs/channel_status.rb +127 -0
  15. data/lib/ruby-agi/rs/exec.rb +69 -0
  16. data/lib/ruby-agi/rs/get_variable.rb +76 -0
  17. data/lib/ruby-agi/rs/hangup.rb +76 -0
  18. data/lib/ruby-agi/rs/noop.rb +68 -0
  19. data/lib/ruby-agi/rs/receive_char.rb +112 -0
  20. data/lib/ruby-agi/rs/receive_text.rb +73 -0
  21. data/lib/ruby-agi/rs/record_file.rb +184 -0
  22. data/lib/ruby-agi/rs/result.rb +47 -0
  23. data/lib/ruby-agi/rs/return_status.rb +98 -0
  24. data/lib/ruby-agi/rs/say_digits.rb +85 -0
  25. data/lib/ruby-agi/rs/say_number.rb +88 -0
  26. data/lib/ruby-agi/rs/say_phonetic.rb +88 -0
  27. data/lib/ruby-agi/rs/say_time.rb +90 -0
  28. data/lib/ruby-agi/rs/send_image.rb +83 -0
  29. data/lib/ruby-agi/rs/send_text.rb +83 -0
  30. data/lib/ruby-agi/rs/set_auto_hangup.rb +69 -0
  31. data/lib/ruby-agi/rs/set_caller_id.rb +72 -0
  32. data/lib/ruby-agi/rs/set_context.rb +71 -0
  33. data/lib/ruby-agi/rs/set_extension.rb +72 -0
  34. data/lib/ruby-agi/rs/set_music.rb +71 -0
  35. data/lib/ruby-agi/rs/set_priority.rb +69 -0
  36. data/lib/ruby-agi/rs/set_variable.rb +76 -0
  37. data/lib/ruby-agi/rs/stream_file.rb +138 -0
  38. data/lib/ruby-agi/rs/tdd_mode.rb +95 -0
  39. data/lib/ruby-agi/rs/verbose.rb +73 -0
  40. data/lib/ruby-agi/rs/wait_for_digit.rb +90 -0
  41. data/lib/ruby-agi/rs/wait_for_digits.rb +88 -0
  42. data/ruby-agi.gemspec +51 -0
  43. data/test/unit.rb +37 -0
  44. metadata +94 -0
@@ -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
@@ -0,0 +1,69 @@
1
+ #
2
+ # File: set_auto_hangup.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
+ # class to handle return status of Command#set_auto_hangup
27
+ # Cause the channel to automatically hangup at <time> seconds in the future.
28
+ # Of course it can be hungup before then as well.
29
+ # Setting to 0 will cause the autohangup feature to be disabled on this channel.
30
+ #
31
+ # Command Reference: SET AUTOHANGUP <time>
32
+ #
33
+ # 200 result=0
34
+ #
35
+
36
+ class ReturnStatus
37
+ end
38
+
39
+ class SetAutoHangup < 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
+ return (not success?)
59
+ end
60
+
61
+ def error?
62
+ return command_error?
63
+ end
64
+
65
+ def response
66
+ return message
67
+ end
68
+
69
+ end
@@ -0,0 +1,72 @@
1
+ #
2
+ # File: set_caller_id.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
+ # Changes the callerid of the current channel.
27
+ #
28
+ # <b>Parameters</b>
29
+ # - number : number to be set a callerid
30
+ #
31
+ # <b>Returns</b>
32
+ # - ReturnStatus (object)
33
+ #
34
+ # 200 result=1
35
+ #
36
+ # Command Reference: SET CALLERID <number>
37
+ #
38
+
39
+ class ReturnStatus
40
+ end
41
+
42
+ class SetCallerID < 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 == '1'
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
+ return (not failure?)
62
+ end
63
+
64
+ def error?
65
+ return command_error?
66
+ end
67
+
68
+ def response
69
+ return message
70
+ end
71
+
72
+ end
@@ -0,0 +1,71 @@
1
+ #
2
+ # File: set_context.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
+ # Sets the context for continuation upon exiting the application.
27
+ #
28
+ # Command Reference: SET CONTEXT <desired context>
29
+ #
30
+ # - context : name of the context
31
+ #
32
+ # 200 result=0
33
+ # Note: no checking is done to verify that the context is valid.
34
+ # Specifying an invalid context will cause the call to drop
35
+ #
36
+
37
+
38
+ class ReturnStatus
39
+ end
40
+
41
+ class SetContext < ReturnStatus
42
+
43
+ def initialize(command, response)
44
+ super(command, response)
45
+ end
46
+
47
+ def success?
48
+ if @is_success.nil?
49
+ if result == '0'
50
+ @is_success = true
51
+ else
52
+ @is_success = false
53
+ end
54
+ end
55
+
56
+ return @is_success
57
+ end
58
+
59
+ def failure?
60
+ return (not failure?)
61
+ end
62
+
63
+ def error?
64
+ return command_error?
65
+ end
66
+
67
+ def response
68
+ return message
69
+ end
70
+
71
+ end
@@ -0,0 +1,72 @@
1
+ #
2
+ # File: set_extension.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
+ # Changes the extension for continuation upon exiting the application.
27
+ #
28
+ # Command Reference: SET EXTENSION <new extension>
29
+ #
30
+ # - extension: name or number of extension to be set
31
+ #
32
+ # 200 result=0
33
+ # Note: no checking is done to verify that the extension extists.
34
+ # If the extension does not exist, the PBX will attempt to move to the "i" (invalid) extension.
35
+ # If the invalid "i" extension does not exist, the call will drop
36
+ #
37
+
38
+
39
+ class ReturnStatus
40
+ end
41
+
42
+ class SetExtension < 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
+ return (not failure?)
62
+ end
63
+
64
+ def error?
65
+ return command_error?
66
+ end
67
+
68
+ def response
69
+ return message
70
+ end
71
+
72
+ end