]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Ensure that the Queue application tracks busy members in off nominal situations
authorMatthew Jordan <mjordan@digium.com>
Tue, 30 Oct 2012 02:14:01 +0000 (02:14 +0000)
committerMatthew Jordan <mjordan@digium.com>
Tue, 30 Oct 2012 02:14:01 +0000 (02:14 +0000)
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)
........

Merged revisions 375450 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@375451 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_queue.c

index f7c3d18ab26c61a0429774e7691eab3dba737ba5..96189f0e853dca560ebedbb38ca2063e4adf866e 100644 (file)
@@ -3164,6 +3164,7 @@ static int ring_entry(struct queue_ent *qe, struct callattempt *tmp, int *busies
                        ast_cdr_busy(qe->chan->cdr);
                }
                tmp->stillgoing = 0;
+               (*busies)++;
                return 0;
        }
 
@@ -3194,6 +3195,7 @@ static int ring_entry(struct queue_ent *qe, struct callattempt *tmp, int *busies
                                ast_cdr_busy(qe->chan->cdr);
                        }
                        tmp->stillgoing = 0;
+                       (*busies)++;
                        return 0;
                }
        }