summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2004-11-08 18:23:01 +0000
committerMark Spencer <markster@digium.com>2004-11-08 18:23:01 +0000
commit0a2fff51c721c231ca254f4d80a3c2807d3176a0 (patch)
tree6c1316ef952817db28b92a1d72b7b0658569de26 /channels
parent6e8537634323b78bfe0c190269729a4ff7a90f91 (diff)
Fix supervised transfer (bug #2813)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4189 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rwxr-xr-xchannels/chan_sip.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 6f1829e63..ec20596e9 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -6994,7 +6994,8 @@ static int attempt_transfer(struct sip_pvt *p1, struct sip_pvt *p2)
*bridgeb = NULL,
*peera = NULL,
*peerb = NULL,
- *peerc = NULL;
+ *peerc = NULL,
+ *peerd = NULL;
if (!p1->owner || !p2->owner) {
ast_log(LOG_WARNING, "Transfer attempted without dual ownership?\n");
@@ -7009,16 +7010,19 @@ static int attempt_transfer(struct sip_pvt *p1, struct sip_pvt *p2)
peera = chana;
peerb = chanb;
peerc = bridgea;
+ peerd = bridgeb;
} else if (bridgeb) {
peera = chanb;
peerb = chana;
peerc = bridgeb;
+ peerd = bridgea;
}
if (peera && peerb && peerc) {
ast_quiet_chan(peera);
ast_quiet_chan(peerb);
ast_quiet_chan(peerc);
+ ast_quiet_chan(peerd);
if (peera->cdr && peerb->cdr) {
peerb->cdr = ast_cdr_append(peerb->cdr, peera->cdr);