Skip to content
Snippets Groups Projects
  • David M. Lee's avatar
    d3bb2506
    Gently reduce masquerade insanity · d3bb2506
    David M. Lee authored
    Masquerades are an insane implementation detail within Asterisk. It generates
    a number of useless and confusing events, and manipulates channels in a way
    that semantically doesn't make sense. I've given a fairly thorough review of
    masquerade code and its usage on the wiki at
    https://wiki.asterisk.org/wiki/x/IwBRAQ.
    
    While ultimately it makes the most sense to abandon masquerades altogether,
    it will take some time to completely irradicate. Even then, there may always
    be code that's not worth rewriting to get rid of the masquerade.
    
    This patch does two things to make masquerades slightly less insane:
     * When swapping the names of the original and clone channel, only emit a
       single rename event of original -> original<ZOMBIE>. The original code
       issued three rename events to accomplish the same end.
     * In addition to swapping the names of the channels, also swap their
       uniqueid's. This allows the 'Uniqueid' field to be used as a stable
       identifier for a channel from and external interface, such as AMI.
    
    Review: https://reviewboard.asterisk.org/r/2266/
    
    
    git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@379023 65c4cc65-6c06-0410-ace0-fbb531ad65f3
    d3bb2506
    History
    Gently reduce masquerade insanity
    David M. Lee authored
    Masquerades are an insane implementation detail within Asterisk. It generates
    a number of useless and confusing events, and manipulates channels in a way
    that semantically doesn't make sense. I've given a fairly thorough review of
    masquerade code and its usage on the wiki at
    https://wiki.asterisk.org/wiki/x/IwBRAQ.
    
    While ultimately it makes the most sense to abandon masquerades altogether,
    it will take some time to completely irradicate. Even then, there may always
    be code that's not worth rewriting to get rid of the masquerade.
    
    This patch does two things to make masquerades slightly less insane:
     * When swapping the names of the original and clone channel, only emit a
       single rename event of original -> original<ZOMBIE>. The original code
       issued three rename events to accomplish the same end.
     * In addition to swapping the names of the channels, also swap their
       uniqueid's. This allows the 'Uniqueid' field to be used as a stable
       identifier for a channel from and external interface, such as AMI.
    
    Review: https://reviewboard.asterisk.org/r/2266/
    
    
    git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@379023 65c4cc65-6c06-0410-ace0-fbb531ad65f3