Summary:ASTERISK-02639: app_queue rings dynamic agents who are already on the phone
Reporter:chadscott (chadscott)Labels:
Date Opened:2004-10-20 11:09:57Date Closed:2011-06-07 14:10:00
Versions:Frequency of
Description:I have ten agents, each on a SIP phone.  Each is added dynamically (i.e. we're not using Agents) so that we can utilize SIP transfers and conferencing.  When an agent answers a call from the queue, everything is fine until another call arrives in the queue.  At this point, Queue rings the agents as expected, except it doesn't skip over those who are handling a call.  The result is a *lot* of calls coming into agents who are not available to receive them.  Since we're using the "rrmemory" method, this can cause long delays.

I'm sure using the "Agent"s would prevent this, but we simply can't do that because we have to be able to transfer and conference.

I'm a bit stuck!
Comments:By: rwjblue (rwjblue) 2004-10-20 11:22:11

I agree that this is an issue, but it is more of an irritation.  Here is a work around using the dialplan.  

For example if you specify a context when they are logging in, like so:

; ACD Login/Logout.
exten => 730,1,Answer
exten => 730,2,AgentCallbackLogin(|@internal-acd)

Then use SetGroup and CheckGroup in that context like so:

exten => _2[34567]XX,1,SetGroup(${EXTEN})
exten => _2[34567]XX,2,CheckGroup(1)
exten => _2[34567]XX,3,SetVar(TRANSFER_CONTEXT=internal)
exten => _2[34567]XX,4,Dial(SIP/${EXTEN},15,t)
exten => _2[34567]XX,103,Busy

This will prevent multiple calls to the same agent.

If you also use SetGroup(${CALLERIDNUM} for your outbound calls you will prevent them from recieving queued callers while on an outbound call.

Just my $.02


By: chadscott (chadscott) 2004-10-20 11:53:30

Unfortunately, I can't use the "Agent" within Asterisk because I need to be able to do SIP transfers and conferencing.  Mostly transfers.  Early in my testing, I found that transferring an "Agent" using the SIP "transfer" soft-button didn't work.

By: rwjblue (rwjblue) 2004-10-20 12:26:09

The same concept will work with either static member's specified with the members line in queues.conf and via dynamic members with AddQueueMember.

For use without agents try specifying the member with Local/1234@internal-acd instead of SIP/1234.  Then the logic works the same as with agents.

By: chadscott (chadscott) 2004-10-20 12:56:04

Great minds think alike.  I just finished implementing and testing exactly what you suggested just as you suggested it. :)

I ended up losing the ability to monitor from within the queue itself, so I just added a Monitor statement within that logic instead.

Thanks for the help!

By: Brian West (bkw918) 2004-10-20 21:57:22

1. This is NOT a major bug.
2. This is NOT really a bug.

This is working how its designed to work.


By: Brian West (bkw918) 2004-10-21 23:59:58

Not a bug, working as designed.