Skip to content

Commit

Permalink
Merge branch 'release/2.2.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
benlangfeld committed Jan 21, 2014
2 parents 9f18a6c + 46e8866 commit 8f849c7
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 21 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,8 @@
# [develop](https://github.com/adhearsion/punchblock)

# [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)
* Bugfix: Delay sending Answered event on call until AsyncAGI is invoked

# [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)
* Bugfix: `Punchblock::Event::Complete::Reason` is now a `Punchblock::Event`

Expand Down
8 changes: 5 additions & 3 deletions lib/punchblock/translator/asterisk/call.rb
Expand Up @@ -118,13 +118,15 @@ def process_ami_event(ami_event)
if component = component_with_id(ami_event['CommandID'])
component.handle_ami_event ami_event
end

if @answered == false && ami_event['SubEvent'] == 'Start'
@answered = true
send_pb_event Event::Answered.new
end
when 'Newstate'
case ami_event['ChannelState']
when '5'
send_pb_event Event::Ringing.new
when '6'
@answered = true
send_pb_event Event::Answered.new
end
when 'OriginateResponse'
if ami_event['Response'] == 'Failure' && ami_event['Uniqueid'] == '<null>'
Expand Down
2 changes: 1 addition & 1 deletion lib/punchblock/version.rb
@@ -1,5 +1,5 @@
# encoding: utf-8

module Punchblock
VERSION = "2.2.1"
VERSION = "2.2.2"
end
53 changes: 36 additions & 17 deletions spec/punchblock/translator/asterisk/call_spec.rb
Expand Up @@ -498,6 +498,42 @@ class Asterisk
component.should_receive(:handle_ami_event).once.with ami_event
subject.process_ami_event ami_event
end

it 'should not send an answered event' do
translator.should_receive(:handle_pb_event).with(kind_of(Punchblock::Event::Answered)).never
subject.process_ami_event ami_event
end
end

context 'with an AsyncAGI Start event' do
let(:ami_event) do
RubyAMI::Event.new "AsyncAGI",
"SubEvent" => "Start",
"Channel" => "SIP/1234-00000000",
"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"
end

it 'should send an answered event' do
expected_answered = Punchblock::Event::Answered.new
expected_answered.target_call_id = subject.id
translator.should_receive(:handle_pb_event).with expected_answered
subject.process_ami_event ami_event
end

it '#answered? should be true' do
subject.process_ami_event ami_event
subject.answered?.should be_true
end

context "for a second time" do
it 'should only send one answered event' do
expected_answered = Punchblock::Event::Answered.new
expected_answered.target_call_id = subject.id
translator.should_receive(:handle_pb_event).with(expected_answered).once
subject.process_ami_event ami_event
subject.process_ami_event ami_event
end
end
end

context 'with a Newstate event' do
Expand Down Expand Up @@ -530,23 +566,6 @@ class Asterisk
subject.answered?.should be_false
end
end

context 'up' do
let(:channel_state) { '6' }
let(:channel_state_desc) { 'Up' }

it 'should send a ringing event' do
expected_answered = Punchblock::Event::Answered.new
expected_answered.target_call_id = subject.id
translator.should_receive(:handle_pb_event).with expected_answered
subject.process_ami_event ami_event
end

it '#answered? should be true' do
subject.process_ami_event ami_event
subject.answered?.should be_true
end
end
end

context 'with an OriginateResponse event' do
Expand Down

0 comments on commit 8f849c7

Please sign in to comment.