adhearsion-asterisk 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,8 @@
1
+ # develop
2
+
3
+ # v1.2.0
4
+ * Feature: Added helper to execute AMI actions easily
5
+
1
6
  # v1.1.1
2
7
  * Fix error in header name for #agi_context
3
8
 
data/README.md CHANGED
@@ -52,45 +52,59 @@ Examples
52
52
 
53
53
 
54
54
  ```ruby
55
- vm {
56
- voicemail "8000"
57
- }
58
-
59
- echotest {
60
- play 'demo-echotest'
61
- execute 'Echo'
62
- play 'demo-echodone'
63
- }
64
-
65
- saytime {
66
- t = Time.now
67
- date = t.to_date
68
- date_format = 'ABdY'
69
- execute "SayUnixTime", t.to_i, date_format
70
- play_time date, :format => date_format
71
- }
72
-
73
- callqueue {
74
- case extension
75
- when 5001
76
- queue 'sales'
77
- when 5002
78
- queue 'support'
55
+ class Voicemail < Adhearsion::CallController
56
+ def run
57
+ voicemail "8000"
79
58
  end
80
- }
59
+ end
60
+
61
+ class EchoTest < Adhearsion::CallController
62
+ def run
63
+ play 'demo-echotest'
64
+ execute 'Echo'
65
+ play 'demo-echodone'
66
+ end
67
+ end
68
+
69
+ class SayTime < Adhearsion::CallController
70
+ def run
71
+ t = Time.now
72
+ date = t.to_date
73
+ date_format = 'ABdY'
74
+ execute "SayUnixTime", t.to_i, date_format
75
+ play_time date, :format => date_format
76
+ end
77
+ end
78
+
79
+ class CallQueue < Adhearsion::CallController
80
+ def run
81
+ case variables[:x_agi_extension]
82
+ when 5001
83
+ queue 'sales'
84
+ when 5002
85
+ queue 'support'
86
+ end
87
+ end
88
+ end
81
89
 
82
- salesagent {
83
- queue('sales').join!
84
- }
90
+ class SalesAgent < Adhearsion::CallController
91
+ def run
92
+ queue('sales').join!
93
+ end
94
+ end
85
95
 
86
- supportagent {
87
- queue('support').join!
88
- }
96
+ class SupportAgent < Adhearsion::CallController
97
+ def run
98
+ queue('support').join!
99
+ end
100
+ end
89
101
 
90
- operator {
91
- enable_feature :blind_transfer
92
- dial extension, :options => "Tt"
93
- }
102
+ class Operator < Adhearsion::CallController
103
+ def run
104
+ enable_feature :blind_transfer
105
+ dial extension, :options => "Tt"
106
+ end
107
+ end
94
108
 
95
109
 
96
110
  ```
@@ -10,5 +10,26 @@ module Adhearsion
10
10
  extend ActiveSupport::Autoload
11
11
 
12
12
  autoload :QueueProxy
13
+
14
+ #
15
+ # Execute an AMI action synchronously
16
+ #
17
+ # @param [String] name the name of the action to execute
18
+ # @param [Hash<String => Object>] options options to pass to the action
19
+ #
20
+ # @yield [Punchblock::Event::Asterisk::AMI::Event] block to handle each event resulting from the action
21
+ #
22
+ # @return [Punchblock::Event::Complete] action complete event
23
+ #
24
+ # @example Execute a CoreShowChannels action, handling each channel event:
25
+ #
26
+ # Adhearsion::Asterisk.execute_ami_action('CoreShowChannels') { |channel| puts channel.inspect }
27
+ #
28
+ def self.execute_ami_action(name, options = {}, &block)
29
+ component = Punchblock::Component::Asterisk::AMI::Action.new :name => name, :params => options
30
+ component.register_event_handler(Punchblock::Event::Asterisk::AMI::Event, &block) if block
31
+ Adhearsion::PunchblockPlugin.execute_component component
32
+ component.complete_event
33
+ end
13
34
  end
14
35
  end
@@ -1,5 +1,5 @@
1
1
  module Adhearsion
2
2
  module Asterisk
3
- VERSION = "1.1.1"
3
+ VERSION = "1.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adhearsion-asterisk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-04-22 00:00:00.000000000 Z
13
+ date: 2012-04-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: adhearsion
@@ -280,7 +280,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
280
280
  version: '0'
281
281
  segments:
282
282
  - 0
283
- hash: -599135187931532102
283
+ hash: -1875001914852062926
284
284
  required_rubygems_version: !ruby/object:Gem::Requirement
285
285
  none: false
286
286
  requirements:
@@ -289,10 +289,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
289
289
  version: '0'
290
290
  segments:
291
291
  - 0
292
- hash: -599135187931532102
292
+ hash: -1875001914852062926
293
293
  requirements: []
294
294
  rubyforge_project: adhearsion-asterisk
295
- rubygems_version: 1.8.23
295
+ rubygems_version: 1.8.21
296
296
  signing_key:
297
297
  specification_version: 3
298
298
  summary: Asterisk specific features for Adhearsion
@@ -310,4 +310,3 @@ test_files:
310
310
  - spec/has_agi_context.rb
311
311
  - spec/spec_helper.rb
312
312
  - spec/support/the_following_code.rb
313
- has_rdoc: