punchblock 1.9.3 → 1.9.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/punchblock/translator/asterisk/call.rb +1 -0
- data/lib/punchblock/translator/asterisk/component/output.rb +4 -2
- data/lib/punchblock/version.rb +1 -1
- data/spec/punchblock/translator/asterisk/call_spec.rb +11 -0
- data/spec/punchblock/translator/asterisk/component/output_spec.rb +25 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1cb4362475b7ff78950c6a3b6c26079e98f5741a
|
4
|
+
data.tar.gz: 6e6bf5c7f14bf24e1ea4ca9cb84b1f8e2365935b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5b5d40cd306d3e292b56189f085165c3a39f2e4f069f7b7298cafee1ad65f7b3a597a1db49c79771f1027b3026d0ee6bb9576020b4114c7e08c4ce19aef6b48
|
7
|
+
data.tar.gz: 93b07c8cc0bdb8472c4b511008e054068c13a79dfa780fe08a3f09ac4b9dbc76b195e55505128291bdef3262461bfb7fb634ba672a8670589c1c6ca3928f664b
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# [develop](https://github.com/adhearsion/punchblock)
|
2
2
|
|
3
|
+
# [v1.9.4](https://github.com/adhearsion/punchblock/compare/v1.9.3...v1.9.4) - [2013-06-08](https://rubygems.org/gems/punchblock/versions/1.9.4)
|
4
|
+
* Bugfix: Finish more setup before sending output ref on Asterisk
|
5
|
+
* Bugfix: Allow early media TTS on Asterisk in addition to audio playback
|
6
|
+
* Bugfix: Correctly mark Asterisk calls as answered after successfully executing an answer command
|
7
|
+
|
3
8
|
# [v1.9.3](https://github.com/adhearsion/punchblock/compare/v1.9.2...v1.9.3) - [2013-05-16](https://rubygems.org/gems/punchblock/versions/1.9.3)
|
4
9
|
* Bugfix: Improve error messages when trying to execute stop commands on components in an invalid state
|
5
10
|
|
@@ -39,8 +39,6 @@ module Punchblock
|
|
39
39
|
|
40
40
|
path = filenames.join '&'
|
41
41
|
|
42
|
-
send_ref
|
43
|
-
|
44
42
|
@call.send_progress if early
|
45
43
|
|
46
44
|
if interrupt
|
@@ -50,12 +48,16 @@ module Punchblock
|
|
50
48
|
end
|
51
49
|
end
|
52
50
|
|
51
|
+
send_ref
|
52
|
+
|
53
53
|
opts = early ? "#{path},noanswer" : path
|
54
54
|
@call.execute_agi_command 'EXEC Playback', opts
|
55
55
|
when :unimrcp
|
56
|
+
@call.send_progress if early
|
56
57
|
send_ref
|
57
58
|
@call.execute_agi_command 'EXEC MRCPSynth', escape_commas(escaped_doc), mrcpsynth_options
|
58
59
|
when :swift
|
60
|
+
@call.send_progress if early
|
59
61
|
send_ref
|
60
62
|
@call.execute_agi_command 'EXEC Swift', swift_doc
|
61
63
|
else
|
data/lib/punchblock/version.rb
CHANGED
@@ -929,6 +929,12 @@ module Punchblock
|
|
929
929
|
command.response(0.5).should be true
|
930
930
|
end
|
931
931
|
|
932
|
+
it "should be answered" do
|
933
|
+
subject.wrapped_object.should_receive(:execute_agi_command)
|
934
|
+
subject.execute_command command
|
935
|
+
subject.should be_answered
|
936
|
+
end
|
937
|
+
|
932
938
|
context "when the AMI commannd raises an error" do
|
933
939
|
let(:message) { 'Some error' }
|
934
940
|
let(:error) { RubyAMI::Error.new.tap { |e| e.message = message } }
|
@@ -940,6 +946,11 @@ module Punchblock
|
|
940
946
|
command.response(0.5).should be == ProtocolError.new.setup('error', message, subject.id)
|
941
947
|
end
|
942
948
|
|
949
|
+
it "should not be answered" do
|
950
|
+
subject.execute_command command
|
951
|
+
subject.should_not be_answered
|
952
|
+
end
|
953
|
+
|
943
954
|
context "with message 'No such channel'" do
|
944
955
|
let(:message) { 'No such channel' }
|
945
956
|
|
@@ -31,7 +31,7 @@ module Punchblock
|
|
31
31
|
subject { Output.new original_command, mock_call }
|
32
32
|
|
33
33
|
def expect_answered(value = true)
|
34
|
-
mock_call.
|
34
|
+
mock_call.stub(:answered?).and_return(value)
|
35
35
|
end
|
36
36
|
|
37
37
|
describe '#execute' do
|
@@ -70,6 +70,8 @@ module Punchblock
|
|
70
70
|
prefix + base_doc + postfix
|
71
71
|
end
|
72
72
|
|
73
|
+
before { expect_answered }
|
74
|
+
|
73
75
|
it "should execute Swift" do
|
74
76
|
mock_call.should_receive(:execute_agi_command).once.with 'EXEC Swift', ssml_with_options
|
75
77
|
subject.execute
|
@@ -92,6 +94,16 @@ module Punchblock
|
|
92
94
|
end
|
93
95
|
end
|
94
96
|
|
97
|
+
context "when the call is not answered" do
|
98
|
+
before { expect_answered false }
|
99
|
+
|
100
|
+
it "should send progress" do
|
101
|
+
mock_call.should_receive(:send_progress)
|
102
|
+
mock_call.should_receive(:execute_agi_command).and_return code: 200, result: 1
|
103
|
+
subject.execute
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
95
107
|
describe 'interrupt_on' do
|
96
108
|
context "set to nil" do
|
97
109
|
let(:command_opts) { { :interrupt_on => nil } }
|
@@ -104,7 +116,6 @@ module Punchblock
|
|
104
116
|
context "set to :any" do
|
105
117
|
let(:command_opts) { { :interrupt_on => :any } }
|
106
118
|
it "should add the interrupt options to the argument" do
|
107
|
-
expect_answered
|
108
119
|
mock_call.should_receive(:execute_agi_command).once.with('EXEC Swift', ssml_with_options('', '|1|1')).and_return code: 200, result: 1
|
109
120
|
subject.execute
|
110
121
|
end
|
@@ -113,7 +124,6 @@ module Punchblock
|
|
113
124
|
context "set to :dtmf" do
|
114
125
|
let(:command_opts) { { :interrupt_on => :dtmf } }
|
115
126
|
it "should add the interrupt options to the argument" do
|
116
|
-
expect_answered
|
117
127
|
mock_call.should_receive(:execute_agi_command).once.with('EXEC Swift', ssml_with_options('', '|1|1')).and_return code: 200, result: 1
|
118
128
|
subject.execute
|
119
129
|
end
|
@@ -174,6 +184,8 @@ module Punchblock
|
|
174
184
|
end.and_return code: 200, result: 1
|
175
185
|
end
|
176
186
|
|
187
|
+
before { expect_answered }
|
188
|
+
|
177
189
|
it "should execute MRCPSynth" do
|
178
190
|
mock_call.should_receive(:execute_agi_command).once.with('EXEC MRCPSynth', ssml_doc.to_s.squish.gsub(/["\\]/) { |m| "\\#{m}" }, '').and_return code: 200, result: 1
|
179
191
|
subject.execute
|
@@ -212,6 +224,16 @@ module Punchblock
|
|
212
224
|
end
|
213
225
|
end
|
214
226
|
|
227
|
+
context "when the call is not answered" do
|
228
|
+
before { expect_answered false }
|
229
|
+
|
230
|
+
it "should send progress" do
|
231
|
+
mock_call.should_receive(:send_progress)
|
232
|
+
mock_call.should_receive(:execute_agi_command).and_return code: 200, result: 1
|
233
|
+
subject.execute
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
215
237
|
describe 'ssml' do
|
216
238
|
context 'unset' do
|
217
239
|
let(:command_opts) { { :ssml => nil } }
|
@@ -348,7 +370,6 @@ module Punchblock
|
|
348
370
|
context "set to :any" do
|
349
371
|
let(:command_opts) { { :interrupt_on => :any } }
|
350
372
|
it "should pass the i option to MRCPSynth" do
|
351
|
-
expect_answered
|
352
373
|
expect_mrcpsynth_with_options(/i=any/)
|
353
374
|
subject.execute
|
354
375
|
end
|
@@ -357,7 +378,6 @@ module Punchblock
|
|
357
378
|
context "set to :dtmf" do
|
358
379
|
let(:command_opts) { { :interrupt_on => :dtmf } }
|
359
380
|
it "should pass the i option to MRCPSynth" do
|
360
|
-
expect_answered
|
361
381
|
expect_mrcpsynth_with_options(/i=any/)
|
362
382
|
subject.execute
|
363
383
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: punchblock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
4
|
+
version: 1.9.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Goecke
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-06-08 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: niceogiri
|
@@ -476,7 +476,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
476
476
|
version: 1.3.7
|
477
477
|
requirements: []
|
478
478
|
rubyforge_project: punchblock
|
479
|
-
rubygems_version: 2.0.
|
479
|
+
rubygems_version: 2.0.3
|
480
480
|
signing_key:
|
481
481
|
specification_version: 4
|
482
482
|
summary: Punchblock is a telephony middleware library
|