[asterisk-dev] [Code Review] Gently reduce masquerade insanity

David Lee reviewboard at asterisk.org
Mon Jan 7 14:04:38 CST 2013


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

Review request for Asterisk Developers.


Summary
-------

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.


Diffs
-----

  /trunk/UPGRADE.txt 378651 
  /trunk/include/asterisk/manager.h 378651 
  /trunk/main/channel.c 378651 

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


Testing
-------

I've run a few SIP transfers and parking scenarios. AMI masquerade events seem
reasonable, and the Uniqueid and Linkedid fields in CELs made more sense.


Thanks,

David

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20130107/b9deb295/attachment.htm>


More information about the asterisk-dev mailing list