punchblock 2.1.0 → 2.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/punchblock/component/output.rb +1 -1
- data/lib/punchblock/translator/asterisk/call.rb +7 -4
- data/lib/punchblock/version.rb +1 -1
- data/spec/punchblock/component/output_spec.rb +13 -0
- data/spec/punchblock/translator/asterisk/call_spec.rb +13 -9
- 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: d1695be81bb0d8afb829d648392c00705f8ec56a
|
|
4
|
+
data.tar.gz: 1a2fd855be244f16d1858b00aeca5309bd865af8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8fc40e0dbcad7bf5435a1fff4e37a3237c0768cea38bab9bdacc5bcce20df41baf74cff01160a3a39db566198c92a049461ebcd7e9f8152ace80d05b65be23a4
|
|
7
|
+
data.tar.gz: 43917ff261fa61ddfce65cc0260e07a04d7b673d59bce5fc73149ab8e29056e9fbb04747bafcd8fba949274ad4fef45453e7ba36347d2da3d733997b7cff5434
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# [develop](https://github.com/adhearsion/punchblock)
|
|
2
2
|
|
|
3
|
+
# [v2.1.1](https://github.com/adhearsion/punchblock/compare/v2.1.0...v2.1.1) - [2013-12-19](https://rubygems.org/gems/punchblock/versions/2.1.1)
|
|
4
|
+
* Bugfix: Allow sending string SSML docs via Rayo
|
|
5
|
+
* Bugfix: Ensure that joined calls on Asterisk do not have implicitly linked lifecycles. Previously, joinees would be hungup when the joiner exited the bridge.
|
|
6
|
+
|
|
3
7
|
# [v2.1.0](https://github.com/adhearsion/punchblock/compare/v2.0.2...v2.1.0) - [2013-11-12](https://rubygems.org/gems/punchblock/versions/2.1.0)
|
|
4
8
|
* Feature: Support RubySpeech builtin grammars on Asterisk and FreeSWITCH
|
|
5
9
|
* Update: Update to stable release of Virtus
|
|
@@ -15,6 +15,8 @@ module Punchblock
|
|
|
15
15
|
|
|
16
16
|
InvalidCommandError = Class.new Punchblock::Error
|
|
17
17
|
|
|
18
|
+
OUTBOUND_CHANNEL_MATCH = /.* <(?<channel>.*)>/.freeze
|
|
19
|
+
|
|
18
20
|
attr_reader :id, :channel, :translator, :agi_env, :direction
|
|
19
21
|
|
|
20
22
|
HANGUP_CAUSE_TO_END_REASON = Hash.new { :error }
|
|
@@ -70,10 +72,11 @@ module Punchblock
|
|
|
70
72
|
def dial(dial_command)
|
|
71
73
|
@direction = :outbound
|
|
72
74
|
channel = dial_command.to || ''
|
|
73
|
-
channel.match(
|
|
75
|
+
channel.match(OUTBOUND_CHANNEL_MATCH) { |m| channel = m[:channel] }
|
|
74
76
|
params = { :async => true,
|
|
75
|
-
:
|
|
76
|
-
:
|
|
77
|
+
:context => REDIRECT_CONTEXT,
|
|
78
|
+
:exten => REDIRECT_EXTENSION,
|
|
79
|
+
:priority => REDIRECT_PRIORITY,
|
|
77
80
|
:channel => channel,
|
|
78
81
|
:callerid => dial_command.from
|
|
79
82
|
}
|
|
@@ -188,7 +191,7 @@ module Punchblock
|
|
|
188
191
|
when Command::Join
|
|
189
192
|
other_call = translator.call_with_id command.call_uri
|
|
190
193
|
@pending_joins[other_call.channel] = command
|
|
191
|
-
execute_agi_command 'EXEC Bridge', other_call.channel
|
|
194
|
+
execute_agi_command 'EXEC Bridge', "#{other_call.channel},F(#{REDIRECT_CONTEXT},#{REDIRECT_EXTENSION},#{REDIRECT_PRIORITY})"
|
|
192
195
|
when Command::Unjoin
|
|
193
196
|
other_call = translator.call_with_id command.call_uri
|
|
194
197
|
redirect_back other_call
|
data/lib/punchblock/version.rb
CHANGED
|
@@ -131,6 +131,19 @@ module Punchblock
|
|
|
131
131
|
rayo_doc = subject.to_rayo(parent)
|
|
132
132
|
rayo_doc.should == parent
|
|
133
133
|
end
|
|
134
|
+
|
|
135
|
+
context "with a string SSML document" do
|
|
136
|
+
let(:ssml_string) { "<speak/>" }
|
|
137
|
+
|
|
138
|
+
subject do
|
|
139
|
+
Output.new ssml: ssml_string
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
it "passes the string right through" do
|
|
143
|
+
content = subject.to_rayo.at_xpath('//ns:output/ns:document/text()', ns: described_class.registered_ns).content
|
|
144
|
+
content.should == ssml_string
|
|
145
|
+
end
|
|
146
|
+
end
|
|
134
147
|
end
|
|
135
148
|
end
|
|
136
149
|
|
|
@@ -182,8 +182,9 @@ module Punchblock
|
|
|
182
182
|
expected_action = Punchblock::Component::Asterisk::AMI::Action.new(:name => 'Originate',
|
|
183
183
|
:params => {
|
|
184
184
|
:async => true,
|
|
185
|
-
:
|
|
186
|
-
:
|
|
185
|
+
:context => REDIRECT_CONTEXT,
|
|
186
|
+
:exten => REDIRECT_EXTENSION,
|
|
187
|
+
:priority => REDIRECT_PRIORITY,
|
|
187
188
|
:channel => 'SIP/1234',
|
|
188
189
|
:callerid => 'sip:foo@bar.com',
|
|
189
190
|
:variable => "punchblock_call_id=#{subject.id}"
|
|
@@ -200,8 +201,9 @@ module Punchblock
|
|
|
200
201
|
expected_action = Punchblock::Component::Asterisk::AMI::Action.new(:name => 'Originate',
|
|
201
202
|
:params => {
|
|
202
203
|
:async => true,
|
|
203
|
-
:
|
|
204
|
-
:
|
|
204
|
+
:context => REDIRECT_CONTEXT,
|
|
205
|
+
:exten => REDIRECT_EXTENSION,
|
|
206
|
+
:priority => REDIRECT_PRIORITY,
|
|
205
207
|
:channel => 'SIP/5678',
|
|
206
208
|
:callerid => 'sip:foo@bar.com',
|
|
207
209
|
:variable => "punchblock_call_id=#{subject.id}"
|
|
@@ -221,8 +223,9 @@ module Punchblock
|
|
|
221
223
|
expected_action = Punchblock::Component::Asterisk::AMI::Action.new(:name => 'Originate',
|
|
222
224
|
:params => {
|
|
223
225
|
:async => true,
|
|
224
|
-
:
|
|
225
|
-
:
|
|
226
|
+
:context => REDIRECT_CONTEXT,
|
|
227
|
+
:exten => REDIRECT_EXTENSION,
|
|
228
|
+
:priority => REDIRECT_PRIORITY,
|
|
226
229
|
:channel => 'SIP/1234',
|
|
227
230
|
:callerid => 'sip:foo@bar.com',
|
|
228
231
|
:variable => "punchblock_call_id=#{subject.id}",
|
|
@@ -243,8 +246,9 @@ module Punchblock
|
|
|
243
246
|
expected_action = Punchblock::Component::Asterisk::AMI::Action.new(:name => 'Originate',
|
|
244
247
|
:params => {
|
|
245
248
|
:async => true,
|
|
246
|
-
:
|
|
247
|
-
:
|
|
249
|
+
:context => REDIRECT_CONTEXT,
|
|
250
|
+
:exten => REDIRECT_EXTENSION,
|
|
251
|
+
:priority => REDIRECT_PRIORITY,
|
|
248
252
|
:channel => 'SIP/1234',
|
|
249
253
|
:callerid => 'sip:foo@bar.com',
|
|
250
254
|
:variable => "punchblock_call_id=#{subject.id},SIPADDHEADER51=\"X-foo: bar\",SIPADDHEADER52=\"X-doo: dah\""
|
|
@@ -1038,7 +1042,7 @@ module Punchblock
|
|
|
1038
1042
|
before { translator.should_receive(:call_with_id).with(other_call_id).and_return(other_call) }
|
|
1039
1043
|
|
|
1040
1044
|
it "executes the proper dialplan Bridge application" do
|
|
1041
|
-
subject.wrapped_object.should_receive(:execute_agi_command).with('EXEC Bridge', other_channel).and_return code: 200
|
|
1045
|
+
subject.wrapped_object.should_receive(:execute_agi_command).with('EXEC Bridge', "#{other_channel},F(#{REDIRECT_CONTEXT},#{REDIRECT_EXTENSION},#{REDIRECT_PRIORITY})").and_return code: 200
|
|
1042
1046
|
subject.execute_command command
|
|
1043
1047
|
end
|
|
1044
1048
|
|
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: 2.1.
|
|
4
|
+
version: 2.1.1
|
|
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-12-19 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: nokogiri
|
|
@@ -552,7 +552,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
552
552
|
version: 1.3.7
|
|
553
553
|
requirements: []
|
|
554
554
|
rubyforge_project: punchblock
|
|
555
|
-
rubygems_version: 2.0.
|
|
555
|
+
rubygems_version: 2.0.2
|
|
556
556
|
signing_key:
|
|
557
557
|
specification_version: 4
|
|
558
558
|
summary: Punchblock is a telephony middleware library
|