[asterisk-dev] MOH still playing after attended transfer

Jason TOMLINSON j.tomlinson at isi-com.com
Fri Jul 28 03:10:00 CDT 2017


Hi,

I raised an issue [ https://issues.asterisk.org/jira/browse/ASTERISK-27071 ] where music on hold keeps playing on the held channel after an attended transfer on asterisk 13
It affects calls coming in though a trunk from an alcatel pbx, but after digging though the code it seems likely that it might affect any trunk in general which requests an attended transfer via replaces

The invite/replaces arrives at chan_sip.c -> handle_invite_replaces which does its thing to do the transfer, but nowhere (it seems) is the moh stopped on the waiting channel (unlike in asterisk 11 pre-bridge changes where all channels are explicitely stopped).

So, after the transfer is done and we get the bridge concerned I added (in the if(bridge){...} block near the end):
                struct ast_bridge_channel *other;
                AST_LIST_TRAVERSE(&bridge->channels, other, entry) {
                               ast_moh_stop(other->chan); /*attended trf done, so stop all moh*/
                }

Which works.

So, is this a good way to go? Ie, is this the correct place to stop moh, and/or should I be queuing up an AST_CONTROL_UNHOLD frame instead on the channels?

Thanks for any advice!

Jason


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20170728/7a522373/attachment.html>


More information about the asterisk-dev mailing list