From: Jeff Peeler Date: Mon, 9 Aug 2010 23:04:59 +0000 (+0000) Subject: Merged revisions 281466 via svnmerge from X-Git-Tag: 11.0.0-beta1~2483 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a0460f3b9c3a2bef627ca20f7f539462c647729c;p=thirdparty%2Fasterisk.git Merged revisions 281466 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r281466 | jpeeler | 2010-08-09 18:04:02 -0500 (Mon, 09 Aug 2010) | 2 lines Add some more stuff to copy from 281429. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@281467 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_local.c b/channels/chan_local.c index 720423c25e..aebca441ae 100644 --- a/channels/chan_local.c +++ b/channels/chan_local.c @@ -417,14 +417,29 @@ static void check_bridge(struct local_pvt *p) * thread (which is the to be masqueraded away local channel) before both local * channels are optimized away. */ - if (p->owner->caller.id.name.valid || p->owner->caller.id.number.valid || - p->owner->caller.id.subaddress.valid) { - + if (p->owner->caller.id.name.valid || p->owner->caller.id.number.valid + || p->owner->caller.id.subaddress.valid || p->owner->caller.ani.name.valid + || p->owner->caller.ani.number.valid || p->owner->caller.ani.subaddress.valid) { struct ast_party_caller tmp; tmp = p->owner->caller; p->owner->caller = p->chan->_bridge->caller; p->chan->_bridge->caller = tmp; } + if (p->owner->redirecting.from.name.valid || p->owner->redirecting.from.number.valid + || p->owner->redirecting.from.subaddress.valid || p->owner->redirecting.to.name.valid + || p->owner->redirecting.to.number.valid || p->owner->redirecting.to.subaddress.valid) { + struct ast_party_redirecting tmp; + tmp = p->owner->redirecting; + p->owner->redirecting = p->chan->_bridge->redirecting; + p->chan->_bridge->redirecting = tmp; + } + if (p->owner->dialed.number.str || p->owner->dialed.subaddress.valid) { + struct ast_party_dialed tmp; + tmp = p->owner->dialed; + p->owner->dialed = p->chan->_bridge->dialed; + p->chan->_bridge->dialed = tmp; + } + ast_app_group_update(p->chan, p->owner); ast_channel_masquerade(p->owner, p->chan->_bridge);