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

Kevin P. Fleming kpfleming at digium.com
Mon Feb 13 10:46:15 CST 2012


On 02/13/2012 10:33 AM, Kristijan Vrban wrote:
> Sure, the non polling solution would be the preferred. But the polling
> solution by adding the "load_realtime_queue" into "is_our_turn"
> function would be an
> acceptable quick fix solution. But the issues, that the audio get
> dropout while doing some functional queue processing (make a sql
> loopkup) irritated me.
> Why depend audio processing from what the queue do? Because that
> means, even if the queue does "normal" things, this can always be the
> source of audio dropout.
> e.g. add a sleep(1) into "is_our_turn" function, then you have 1sec
> audio dropout.
>
> Without know the hole asterisk structural, but shouldn't be the audio
> processing independent from any logical processing?

That is not how Asterisk works. The thread servicing a channel is 
responsible for everything that channel needs; the code in Asterisk 
modules does not sit 'outside' the channels themselves, just directing 
their activities. The code you are seeing in app_queue is run *by* the 
channel thread for that channel, so yes, if its processing takes too 
long, then there will be audio disruptions.

This is why the most popular high-volume queuing applications (Aheeva, 
ViciDial, others) aren't written that way; they are external 
applications that control channels in Asterisk via AMI/AGI and similar 
interfaces.

-- 
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
Jabber: kfleming at digium.com | SIP: kpfleming at digium.com | Skype: kpfleming
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at www.digium.com & www.asterisk.org



More information about the asterisk-dev mailing list