Hello everyone, Review 3063 [1] is posted to address audio quality failure experienced when certain masquerades occur on a channel with func_jitterbuffer active. The goal of this change is to address situations where a masquerade occurs due to Local channel optimization, and one or both of the channels have active JB. This email refers to the channels of the masquerade using variable names clonechan and original. Since these are not very good names I will explain that clonechan is the source and original is the destination of the masquerade. So by default all the datastores / framehooks / etc should be copied from clonechan to original. After the masquerade clonechan will soon die.
There are 3 possible scenarios involving masquerades with func_jitterbuffer active: 1) JB is active on original but not clonechan 2) JB is active on clonechan but not original 3) JB is active on both With the current code scenario 1 causes complete failure of audio quality. This is caused by AST_JITTERBUFFER_FD being cleared on original while the framehook is still active. This causes the framehook to run without a functioning ast_timer, and nearly all packets are rejected by the jitterbuffer. The change I am proposing is that we always have an active JB after masquerade if either side had one before the masquerade. So in scenario 1 and 2 listed above this would cause the only active jitterbuffer to remain active after a masquerade. For situations where both channels have active jitterbuffer, we would always prefer the jitterbuffer settings from clonechan. [1] https://reviewboard.asterisk.org/r/3603/ -- _____________________________________________________________________ -- 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