punchblock 2.7.3 → 2.7.5
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad809b46c952fab2dde14ff9fa2076444fc3ca1f
|
4
|
+
data.tar.gz: 012e3cdd57292c29de4ec7b5b24592d8119e9b29
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb5d7c573f2727bb01dabb7bacfb91dced011bc721e82cc718504f2fc18f5a8884d9e04dd0328323f1ed7bd11670f1f0ae2765a8dda8a5e4cc9ebf672849b1cd
|
7
|
+
data.tar.gz: ea88f1bd43911acb79b3684d313aa3c76137fd18e7a38c4e8ffdaa47a85129dcfe0d19113967d470843a3f5fc9db9bda1ab13fff563a145908e9fc47ea20fecc
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# [develop](https://github.com/adhearsion/punchblock)
|
2
2
|
|
3
|
+
# [v2.7.5](https://github.com/adhearsion/punchblock/compare/v2.7.4...v2.7.5) - [2015-08-27](https://rubygems.org/gems/punchblock/versions/2.7.5)
|
4
|
+
* Bugfix: Alternative fix for "Avoid race conditions in processing calls with interactions between them". The original fix in 2.7.4 introduced crashes relating to creating call actors at high call volume.
|
5
|
+
|
6
|
+
# [v2.7.4](https://github.com/adhearsion/punchblock/compare/v2.7.3...v2.7.4) - [2015-08-19](https://rubygems.org/gems/punchblock/versions/2.7.4)
|
7
|
+
* YANKED
|
8
|
+
* Bugfix: Avoid race conditions in processing calls with interactions between them
|
9
|
+
|
3
10
|
# [v2.7.3](https://github.com/adhearsion/punchblock/compare/v2.7.2...v2.7.3) - [2015-08-18](https://rubygems.org/gems/punchblock/versions/2.7.3)
|
4
11
|
* Bugfix: Handle correct event for confirming that a component stop was completed on Asterisk 13
|
5
12
|
|
@@ -18,7 +18,7 @@ module Punchblock
|
|
18
18
|
autoload :Channel
|
19
19
|
autoload :Component
|
20
20
|
|
21
|
-
attr_reader :ami_client, :connection, :calls
|
21
|
+
attr_reader :ami_client, :connection, :calls
|
22
22
|
|
23
23
|
REDIRECT_CONTEXT = 'adhearsion-redirect'
|
24
24
|
REDIRECT_EXTENSION = '1'
|
@@ -83,10 +83,28 @@ module Punchblock
|
|
83
83
|
def handle_ami_event(event)
|
84
84
|
return unless event.is_a? RubyAMI::Event
|
85
85
|
|
86
|
-
|
86
|
+
case event.name
|
87
|
+
when 'FullyBooted'
|
87
88
|
handle_pb_event Connection::Connected.new
|
88
89
|
run_at_fully_booted
|
89
90
|
return
|
91
|
+
when 'BridgeEnter'
|
92
|
+
if other_channel = @bridges.delete(event['BridgeUniqueid'])
|
93
|
+
if event['OtherCall'] = call_for_channel(other_channel)
|
94
|
+
join_command = event['OtherCall'].pending_joins.delete event['Channel']
|
95
|
+
call = call_for_channel(event['Channel'])
|
96
|
+
join_command ||= call.pending_joins.delete other_channel if call
|
97
|
+
join_command.response = true if join_command
|
98
|
+
end
|
99
|
+
else
|
100
|
+
@bridges[event['BridgeUniqueid']] = event['Channel']
|
101
|
+
end
|
102
|
+
when 'BridgeLeave'
|
103
|
+
if other_channel = @bridges.delete(event['BridgeUniqueid'] + '_leave')
|
104
|
+
event['OtherCall'] = call_for_channel(other_channel)
|
105
|
+
else
|
106
|
+
@bridges[event['BridgeUniqueid'] + '_leave'] = event['Channel']
|
107
|
+
end
|
90
108
|
end
|
91
109
|
|
92
110
|
handle_varset_ami_event event
|
@@ -137,34 +137,22 @@ module Punchblock
|
|
137
137
|
send_pb_event Event::Ringing.new(timestamp: ami_event.best_time)
|
138
138
|
end
|
139
139
|
when 'BridgeEnter'
|
140
|
-
if
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
send_pb_event event
|
148
|
-
|
149
|
-
other_call_event = Event::Joined.new call_uri: id, timestamp: ami_event.best_time
|
150
|
-
other_call_event.target_call_id = other_call.id
|
151
|
-
translator.handle_pb_event other_call_event
|
152
|
-
end
|
153
|
-
else
|
154
|
-
translator.bridges[ami_event['BridgeUniqueid']] = ami_event['Channel']
|
140
|
+
if other_call = ami_event['OtherCall']
|
141
|
+
event = Event::Joined.new call_uri: other_call.id, timestamp: ami_event.best_time
|
142
|
+
send_pb_event event
|
143
|
+
|
144
|
+
other_call_event = Event::Joined.new call_uri: id, timestamp: ami_event.best_time
|
145
|
+
other_call_event.target_call_id = other_call.id
|
146
|
+
translator.handle_pb_event other_call_event
|
155
147
|
end
|
156
148
|
when 'BridgeLeave'
|
157
|
-
if
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
translator.handle_pb_event other_call_event
|
165
|
-
end
|
166
|
-
else
|
167
|
-
translator.bridges[ami_event['BridgeUniqueid'] + '_leave'] = ami_event['Channel']
|
149
|
+
if other_call = ami_event['OtherCall']
|
150
|
+
event = Event::Unjoined.new call_uri: other_call.id, timestamp: ami_event.best_time
|
151
|
+
send_pb_event event
|
152
|
+
|
153
|
+
other_call_event = Event::Unjoined.new call_uri: id, timestamp: ami_event.best_time
|
154
|
+
other_call_event.target_call_id = other_call.id
|
155
|
+
translator.handle_pb_event other_call_event
|
168
156
|
end
|
169
157
|
when 'OriginateResponse'
|
170
158
|
if ami_event['Response'] == 'Failure' && ami_event['Uniqueid'] == '<null>'
|
data/lib/punchblock/version.rb
CHANGED
@@ -818,13 +818,6 @@ module Punchblock
|
|
818
818
|
'Channel' => call_channel
|
819
819
|
end
|
820
820
|
|
821
|
-
context 'when the event is received the first time' do
|
822
|
-
it 'sets an entry in translator.bridges' do
|
823
|
-
subject.process_ami_event ami_event
|
824
|
-
expect(translator.bridges[bridge_uniqueid]).to eq call_channel
|
825
|
-
end
|
826
|
-
end
|
827
|
-
|
828
821
|
context 'when the event is received a second time for the same BridgeUniqueid' do
|
829
822
|
let(:other_channel) { 'SIP/5678-00000000' }
|
830
823
|
let :other_call do
|
@@ -904,13 +897,6 @@ module Punchblock
|
|
904
897
|
'Channel' => call_channel
|
905
898
|
end
|
906
899
|
|
907
|
-
context 'when the event is received the first time' do
|
908
|
-
it 'sets an entry in translator.bridges' do
|
909
|
-
subject.process_ami_event ami_event
|
910
|
-
expect(translator.bridges[bridge_uniqueid + '_leave']).to eq call_channel
|
911
|
-
end
|
912
|
-
end
|
913
|
-
|
914
900
|
context 'when the event is received a second time for the same BridgeUniqueid' do
|
915
901
|
let(:other_channel) { 'SIP/5678-00000000' }
|
916
902
|
let :other_call do
|
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.7.
|
4
|
+
version: 2.7.5
|
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: 2015-08-
|
13
|
+
date: 2015-08-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: nokogiri
|