-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/4336/
-----------------------------------------------------------

(Updated Jan. 14, 2015, 12:07 p.m.)


Review request for Asterisk Developers.


Changes
-------

Addressed Richard's points.

Note that I took a pessimistic view of the world here, and am quite defensive 
with the logic on whether or not a DialEnd event needs to be raised. This is 
for two reasons:
(1) The Dial code is long, sequential, and filled with blocks that can easily 
have additional logic inserted where you would not expect. Hence, everyone 
check that they should raise the DialEnd event before doing so.
(2) Multiple DialEnd events are very, very, very, very bad.


Bugs: ASTERISK-24682
    https://issues.asterisk.org/jira/browse/ASTERISK-24682


Repository: Asterisk


Description
-------

The Dial application has some interesting options with the mid-call Macro (M) 
and GoSub (U) options. If the MACRO_RESULT/GOSUB_RESULT returns specific 
values, the Dial application will take some action upon the channels involved 
in the dial operation (such as hanging up a particular party, etc.) The Dial 
application ensures that a Stasis message is published in the event that 
MACRO_RESULT/GOSUB_RESULT returns a value that kills the dial operation, so 
that there is a corresponding DialEnd event published in AMI/ARI for the 
DialBegin event that preceeded it.

A bug exists where that same DialEnd event will be published on Stasis even if 
the value returned in MACRO_RESULT/GOSUB_RESULT is not one that the Dial 
application cares about. This causes two DialEnd events to be published - one 
with the MACRO_RESULT/GOSUB_RESULT and another with "ANSWERED" - which is all 
sorts of wrong.

This patch fixes the bug by ensuring that we only publish a DialEnd message to 
Stasis if the Dial application's mid-call Macro/GoSub returns something that 
Dial cares about.


Diffs (updated)
-----

  /branches/13/apps/app_dial.c 430607 

Diff: https://reviewboard.asterisk.org/r/4336/diff/


Testing
-------

See https://reviewboard.asterisk.org/r/4337 for tests.


Thanks,

Matt Jordan

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to