[asterisk-bugs] [Asterisk 0015113]: autofill problem when coming back from paused on realtime

Asterisk Bug Tracker noreply at bugs.digium.com
Sat May 16 10:12:45 CDT 2009


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=15113 
====================================================================== 
Reported By:                elbriga
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   15113
Category:                   Applications/app_queue
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     new
Asterisk Version:           1.4.19 
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2009-05-14 13:29 CDT
Last Modified:              2009-05-16 10:12 CDT
====================================================================== 
Summary:                    autofill problem when coming back from paused on
realtime
Description: 
I'm testing this on 1.4.19, but I dont see anything related on the latest
changelog (maybe something on 1.4.25-rc1, but right now I dont have SVN
access to get it).

I have my queues setup on realtime and i directly access the 'paused'
column on the queue members table to change their status. When I enable
'autofill' (directly on the table, not in the conf file) it will do the
autofill behavior OK, until this scenario...

- A queue member is paused
- A call enters the queue, and here it will be looping in the
"wait_out_turn" function, that calls "is_our_turn"
- The queue member gets unpaused (directly via SQL on the respective
paused column)
- The call is still on the "wait_out_turn" loop, and inside it there are
no direct call to refresh the realtime data, so it will "never" know that
the member get unpaused (but if I, for eg, do a "queue show" CLI command it
will ring that agent right away, because the queue struct got refreshed)

I was thinking about doing a "update_realtime_members" at some frequency
inside the "wait_out_turn" loop, but then it would get executes for every
call on the queue, so I think the best way flag the need of a refresh
inside the "wait_out_turn" loop and actually refresh some place else
(where?)
====================================================================== 

---------------------------------------------------------------------- 
 (0104883) elbriga (reporter) - 2009-05-16 10:12
 https://issues.asterisk.org/view.php?id=15113#c104883 
---------------------------------------------------------------------- 
mmichelson,

I had my problem solved by deciding to use only dynamic members with
persistentmember=yes, and doing manager commands to Add/Remove/Pause
members instead of changing teh DB directly.

But along the way I had the same toughts as you on the need of a periodic
refreshing system. Regarding this I came up with this idea:
The various parts of the queue system would flag (in the queue struct) the
need of a refresh, doing so the refresh thread could be as quick as a 5
seconds delay, but it would only actually performing it if the flag tell it
to.

What do you think? 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-05-16 10:12 elbriga        Note Added: 0104883                          
======================================================================




More information about the asterisk-bugs mailing list