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.4@306672 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
parent
0665763362
commit
d7bd1ee0ab
|
@ -3288,7 +3288,8 @@ int ast_pickup_call(struct ast_channel *chan)
|
|||
(cur != chan) &&
|
||||
(chan->pickupgroup & cur->callgroup) &&
|
||||
((cur->_state == AST_STATE_RINGING) ||
|
||||
(cur->_state == AST_STATE_RING))) {
|
||||
(cur->_state == AST_STATE_RING)) &&
|
||||
!cur->masq) {
|
||||
break;
|
||||
}
|
||||
ast_channel_unlock(cur);
|
||||
|
|
Reference in New Issue