[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