Moved the update of the queue_ent's rule list to just before we try to call
authorMark Michelson <mmichelson@digium.com>
Fri, 21 Dec 2007 01:14:32 +0000 (01:14 +0000)
committerMark Michelson <mmichelson@digium.com>
Fri, 21 Dec 2007 01:14:32 +0000 (01:14 +0000)
queue members. This allows for the change in penalty levels to be executed at
the most logical time frame.

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

apps/app_queue.c

index c6dbfa8..0f2df8d 100644 (file)
@@ -4266,6 +4266,11 @@ check_turns:
                                if ((res = say_periodic_announcement(&qe,ringing)))
                                        goto stop;
 
+                       /* see if we need to move to the next penalty level for this queue */
+                       while (qe.pr && ((time(NULL) - qe.start) > qe.pr->time)) {
+                               update_qe_rule(&qe);
+                       }
+
                        /* Try calling all queue members for 'timeout' seconds */
                        res = try_calling(&qe, args.options, args.announceoverride, args.url, &tries, &noption, args.agi, args.macro, args.gosub, ringing);
                        if (res) {
@@ -4317,11 +4322,6 @@ check_turns:
                                break;
                        }
 
-                       /* see if we need to move to the next penalty level for this queue */
-                       while (qe.pr && ((time(NULL) - qe.start) > qe.pr->time)) {
-                               update_qe_rule(&qe);
-                       }
-
                        /* If using dynamic realtime members, we should regenerate the member list for this queue */
                        update_realtime_members(qe.parent);