[asterisk-dev] New agents does not get noted for waiting callers in the queue

Kristijan Vrban vrban.lkml at googlemail.com
Mon Feb 13 04:58:07 CST 2012


Hello, a customer criticised that when one or more caller are waiting
in a queue (i use realtime queues) to get a free agent, and a new
agent logged in,
the new agent does not get the callers which are wating in the queue.
Beacause when a caller enters the queue, the lookup which agents are
available, passed only once when the caller enters the queue.

So i made a simple hack, i added the "load_realtime_queue" function
into "is_our_turn" which was the solution. Not a beauty, because every
caller wainting
in a queue produced in every run of "is_our_turn" a new database
lookup. It would be lovelier, if there is one globel thread for the
one queue that renew
,in a configurable interval, the available queue agents.

But the main problem i got stuck, plenty of times the caller get Moh
dropout when "load_realtime_queue" get called in the "is_our_turn"
function.
As described in:
https://issues.asterisk.org/jira/browse/ASTERISK-18989 I reckon that
"load_realtime_queue" set some locks, which caused the
res_timing_timerfd
and res_rtp_asterisk issues as seen in the debug log which reason the
Moh dropout.

Question: how to design a function for app_queue that the new agents
get noted? suggestions?

Kristijan



More information about the asterisk-dev mailing list