punchblock 2.2.1 → 2.2.2
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 +3 -0
- data/lib/punchblock/translator/asterisk/call.rb +5 -3
- data/lib/punchblock/version.rb +1 -1
- data/spec/punchblock/translator/asterisk/call_spec.rb +36 -17
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 60e6ce85c4eb99dac8e18f5b06f868e13562fa64
|
|
4
|
+
data.tar.gz: 70ce395958873bbb5078caf5bd9ba517015d4e35
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: deb55ad4aa2888d889f33b55c769d567b837849475fd594ba9e8a07b3628d43880ccb25ef8e9ea1d05889481b4c423b994ce15cad5fe015791baa3525b3f11a5
|
|
7
|
+
data.tar.gz: 758ccbfed733614dbede05e2dd94525103085c7b5a0b6cf5e0bccb6e89f024e93a802716ae862157c6d87dd3d9a5a97d18444fe0673b471ddfc1520598a42a3c
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# [develop](https://github.com/adhearsion/punchblock)
|
|
2
2
|
|
|
3
|
+
# [v2.2.2](https://github.com/adhearsion/punchblock/compare/v2.2.1...v2.2.2) - [2014-01-21](https://rubygems.org/gems/punchblock/versions/2.2.2)
|
|
4
|
+
* Bugfix: Delay sending Answered event on call until AsyncAGI is invoked
|
|
5
|
+
|
|
3
6
|
# [v2.2.1](https://github.com/adhearsion/punchblock/compare/v2.2.0...v2.2.1) - [2014-01-17](https://rubygems.org/gems/punchblock/versions/2.2.1)
|
|
4
7
|
* Bugfix: `Punchblock::Event::Complete::Reason` is now a `Punchblock::Event`
|
|
5
8
|
|
|
@@ -118,13 +118,15 @@ module Punchblock
|
|
|
118
118
|
if component = component_with_id(ami_event['CommandID'])
|
|
119
119
|
component.handle_ami_event ami_event
|
|
120
120
|
end
|
|
121
|
+
|
|
122
|
+
if @answered == false && ami_event['SubEvent'] == 'Start'
|
|
123
|
+
@answered = true
|
|
124
|
+
send_pb_event Event::Answered.new
|
|
125
|
+
end
|
|
121
126
|
when 'Newstate'
|
|
122
127
|
case ami_event['ChannelState']
|
|
123
128
|
when '5'
|
|
124
129
|
send_pb_event Event::Ringing.new
|
|
125
|
-
when '6'
|
|
126
|
-
@answered = true
|
|
127
|
-
send_pb_event Event::Answered.new
|
|
128
130
|
end
|
|
129
131
|
when 'OriginateResponse'
|
|
130
132
|
if ami_event['Response'] == 'Failure' && ami_event['Uniqueid'] == '<null>'
|
data/lib/punchblock/version.rb
CHANGED
|
@@ -498,6 +498,42 @@ module Punchblock
|
|
|
498
498
|
component.should_receive(:handle_ami_event).once.with ami_event
|
|
499
499
|
subject.process_ami_event ami_event
|
|
500
500
|
end
|
|
501
|
+
|
|
502
|
+
it 'should not send an answered event' do
|
|
503
|
+
translator.should_receive(:handle_pb_event).with(kind_of(Punchblock::Event::Answered)).never
|
|
504
|
+
subject.process_ami_event ami_event
|
|
505
|
+
end
|
|
506
|
+
end
|
|
507
|
+
|
|
508
|
+
context 'with an AsyncAGI Start event' do
|
|
509
|
+
let(:ami_event) do
|
|
510
|
+
RubyAMI::Event.new "AsyncAGI",
|
|
511
|
+
"SubEvent" => "Start",
|
|
512
|
+
"Channel" => "SIP/1234-00000000",
|
|
513
|
+
"Env" => "agi_request%3A%20async%0Aagi_channel%3A%20SIP%2Fuserb-00000006%0Aagi_language%3A%20en%0Aagi_type%3A%20SIP%0Aagi_uniqueid%3A%201390303636.6%0Aagi_version%3A%2011.7.0%0Aagi_callerid%3A%20userb%0Aagi_calleridname%3A%20User%20B%0Aagi_callingpres%3A%200%0Aagi_callingani2%3A%200%0Aagi_callington%3A%200%0Aagi_callingtns%3A%200%0Aagi_dnid%3A%20unknown%0Aagi_rdnis%3A%20unknown%0Aagi_context%3A%20adhearsion-redirect%0Aagi_extension%3A%201%0Aagi_priority%3A%201%0Aagi_enhanced%3A%200.0%0Aagi_accountcode%3A%20%0Aagi_threadid%3A%20139696536876800%0A%0A"
|
|
514
|
+
end
|
|
515
|
+
|
|
516
|
+
it 'should send an answered event' do
|
|
517
|
+
expected_answered = Punchblock::Event::Answered.new
|
|
518
|
+
expected_answered.target_call_id = subject.id
|
|
519
|
+
translator.should_receive(:handle_pb_event).with expected_answered
|
|
520
|
+
subject.process_ami_event ami_event
|
|
521
|
+
end
|
|
522
|
+
|
|
523
|
+
it '#answered? should be true' do
|
|
524
|
+
subject.process_ami_event ami_event
|
|
525
|
+
subject.answered?.should be_true
|
|
526
|
+
end
|
|
527
|
+
|
|
528
|
+
context "for a second time" do
|
|
529
|
+
it 'should only send one answered event' do
|
|
530
|
+
expected_answered = Punchblock::Event::Answered.new
|
|
531
|
+
expected_answered.target_call_id = subject.id
|
|
532
|
+
translator.should_receive(:handle_pb_event).with(expected_answered).once
|
|
533
|
+
subject.process_ami_event ami_event
|
|
534
|
+
subject.process_ami_event ami_event
|
|
535
|
+
end
|
|
536
|
+
end
|
|
501
537
|
end
|
|
502
538
|
|
|
503
539
|
context 'with a Newstate event' do
|
|
@@ -530,23 +566,6 @@ module Punchblock
|
|
|
530
566
|
subject.answered?.should be_false
|
|
531
567
|
end
|
|
532
568
|
end
|
|
533
|
-
|
|
534
|
-
context 'up' do
|
|
535
|
-
let(:channel_state) { '6' }
|
|
536
|
-
let(:channel_state_desc) { 'Up' }
|
|
537
|
-
|
|
538
|
-
it 'should send a ringing event' do
|
|
539
|
-
expected_answered = Punchblock::Event::Answered.new
|
|
540
|
-
expected_answered.target_call_id = subject.id
|
|
541
|
-
translator.should_receive(:handle_pb_event).with expected_answered
|
|
542
|
-
subject.process_ami_event ami_event
|
|
543
|
-
end
|
|
544
|
-
|
|
545
|
-
it '#answered? should be true' do
|
|
546
|
-
subject.process_ami_event ami_event
|
|
547
|
-
subject.answered?.should be_true
|
|
548
|
-
end
|
|
549
|
-
end
|
|
550
569
|
end
|
|
551
570
|
|
|
552
571
|
context 'with an OriginateResponse event' 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.2.
|
|
4
|
+
version: 2.2.2
|
|
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: 2014-01-
|
|
13
|
+
date: 2014-01-21 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: nokogiri
|