Ensure that the Queue application tracks busy members in off nominal situations

There are a few code paths where the Queue application fails to count a paused
or in use queue member as being 'busy'.  This can cause callers to get stuck
in the Queue until a paused agent unpauses themselves.

(closes issue ASTERISK-20623)
Reported by: Bryan Walters
patches:
  app_queue.patch uploaded by Bryan Walters (license 5851)




git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@375450 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Matthew Jordan
2012-10-30 02:07:32 +00:00
parent 26267c1a9c
commit 7a8ba7aa08
+2
View File
@@ -3118,6 +3118,7 @@ static int ring_entry(struct queue_ent *qe, struct callattempt *tmp, int *busies
if (qe->chan->cdr)
ast_cdr_busy(qe->chan->cdr);
tmp->stillgoing = 0;
(*busies)++;
return 0;
}
@@ -3126,6 +3127,7 @@ static int ring_entry(struct queue_ent *qe, struct callattempt *tmp, int *busies
if (qe->chan->cdr)
ast_cdr_busy(qe->chan->cdr);
tmp->stillgoing = 0;
(*busies)++;
return 0;
}
if (use_weight && compare_weight(qe->parent,tmp->member)) {