Skip to content
Snippets Groups Projects
  • Matthew Jordan's avatar
    4740ef50
    apps/app_dial: Don't publish DialEnd twice on unexpected GoSub/Macro values · 4740ef50
    Matthew Jordan authored
    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.
    
    Review: https://reviewboard.asterisk.org/r/4336
    
    ASTERISK-24682 #close
    Reported by: Matt Jordan
    ........
    
    Merged revisions 430842 from http://svn.asterisk.org/svn/asterisk/branches/13
    
    
    git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@430844 65c4cc65-6c06-0410-ace0-fbb531ad65f3
    4740ef50
    History
    apps/app_dial: Don't publish DialEnd twice on unexpected GoSub/Macro values
    Matthew Jordan authored
    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.
    
    Review: https://reviewboard.asterisk.org/r/4336
    
    ASTERISK-24682 #close
    Reported by: Matt Jordan
    ........
    
    Merged revisions 430842 from http://svn.asterisk.org/svn/asterisk/branches/13
    
    
    git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@430844 65c4cc65-6c06-0410-ace0-fbb531ad65f3