aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortwilson <twilson@f38db490-d61c-443f-a65b-d21fe96a405b>2011-02-07 22:40:20 +0000
committertwilson <twilson@f38db490-d61c-443f-a65b-d21fe96a405b>2011-02-07 22:40:20 +0000
commit430b345ec2a791bd8df7cffc53699fc5c1021af8 (patch)
tree8674d8d097e72fcb926db1e138cefabb4804ce61
parent58fd41329f49b8a75d00e6a8c65ec8d38c0053ce (diff)
Merged revisions 306672 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r306672 | twilson | 2011-02-07 14:35:20 -0800 (Mon, 07 Feb 2011) | 10 lines Don't try to pickup a call in the middle of a masquerade If A calls B which doesn't answer and C & D both try to do a call pickup, it is possible for ast_pickup_call to answer the call, then fail to masquerade one of the calls because the other one is already in the process of masquerading. This patch checks to see if the channel is in the process of masquerading before call before selecting it for a pickup. Review: https://reviewboard.asterisk.org/r/1094/ ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@306673 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--main/features.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/main/features.c b/main/features.c
index 10a4bdf5d..f89d5fc5d 100644
--- a/main/features.c
+++ b/main/features.c
@@ -4882,7 +4882,8 @@ static int find_channel_by_group(struct ast_channel *c, void *data) {
change while we're here, but that isn't a problem. */
(c != chan) &&
(chan->pickupgroup & c->callgroup) &&
- ((c->_state == AST_STATE_RINGING) || (c->_state == AST_STATE_RING));
+ ((c->_state == AST_STATE_RINGING) || (c->_state == AST_STATE_RING)) &&
+ !c->masq;
}
/*!