Merged revisions 306673 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r306673 | twilson | 2011-02-07 14:40:20 -0800 (Mon, 07 Feb 2011) | 17 lines
  
  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: https://origsvn.digium.com/svn/asterisk/branches/1.8@306674 65c4cc65-6c06-0410-ace0-fbb531ad65f3
certified/1.8.6
Terry Wilson 15 years ago
parent 4b54ce5ce5
commit 36f5dd0013

@ -5570,7 +5570,8 @@ static int find_channel_by_group(void *obj, void *arg, void *data, int flags)
change while we're here, but that isn't a problem. */
(c != chan) &&
(chan->pickupgroup & c->callgroup) &&
((chan->_state == AST_STATE_RINGING) || (chan->_state == AST_STATE_RING));
((chan->_state == AST_STATE_RINGING) || (chan->_state == AST_STATE_RING)) &&
!c->masq;
return i ? CMP_MATCH | CMP_STOP : 0;
}

Loading…
Cancel
Save