Merged revisions 317574 via svnmerge from

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

........
  r317574 | twilson | 2011-05-06 00:55:21 -0700 (Fri, 06 May 2011) | 6 lines
  
  Re-fix queue round-robin
  
  This part of the change for r315596 was incorrect. No bridge occurs
  when doing a roundrobin dial and no one answers, so this code shouldn't
  have been removed.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.2@317575 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.2
Terry Wilson 16 years ago
parent 5fa33b9e28
commit 30e8e7dedb

@ -3843,6 +3843,17 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
if (need_weight)
ao2_unlock(queues);
lpeer = wait_for_answer(qe, outgoing, &to, &digit, numbusies, ast_test_flag(&(bridge_config.features_caller), AST_FEATURE_DISCONNECT), forwardsallowed);
/* The ast_channel_datastore_remove() function could fail here if the
* datastore was moved to another channel during a masquerade. If this is
* the case, don't free the datastore here because later, when the channel
* to which the datastore was moved hangs up, it will attempt to free this
* datastore again, causing a crash
*/
ast_channel_lock(qe->chan);
if (datastore && !ast_channel_datastore_remove(qe->chan, datastore)) {
ast_datastore_free(datastore);
}
ast_channel_unlock(qe->chan);
ao2_lock(qe->parent);
if (qe->parent->strategy == QUEUE_STRATEGY_RRMEMORY || qe->parent->strategy == QUEUE_STRATEGY_RRORDERED) {
store_next_rr(qe, outgoing);

Loading…
Cancel
Save