[Asterisk-Users] Queue and Agent functionality

Chris Icide cicide at gmail.com
Sat Sep 25 11:34:23 MST 2004


I've seen alot of posts lately on Queue and Agent functionality, and
alot of hacks to make them do different things that most call center
managers want.

In the sake of doing this one time, I'd like to develop a single list
of request so we can consolidate a feature request for the Queue/Agent
system.

Here are the ones that I run into the most:

1.  Queue should know the status of agents assigned to a queue and act
accordingly.

 Here are a couple examples of the problem.  

A queue has no agents logged in and handling the queue, a call comes
in for the queue, the call remains in the queue until either an agent
logs in, or the queue reaches it's timeout.  What it should do is
immediately time out setting priority +101.  Normal timeout (caller in
busy queue with agents active) should exit with priority set +1.

A Queue has active agents in a prioritized fashion.  Agent 1 is
priority 1, 2 is 2, 3 is 3, and 4 is 4.  Agent 1 needs to make an
outbound call as does agent 2.  Both are now 'busy'.  The Queue still
attempts to call agent 1, gets 'busy' back from the sip device (i've
only tried this with sip), and then the system appears to wait for
something like 7-8 seconds before trying the next agent in line.

2. The queue system should allow a set of messages to be played at
specific times.  For example, a message that is played upon entry into
the queue and no other time, the current set of messages played every
frequency=XX, a message played to the caller when the call is accepted
by an agent (eg "transfering"), finally, a set of messages played to
the user based upon a predefined period int he config file.. see
example below

message1-time=<time in seconds>
message1-frequency=<never|once|always>
message1=<message1-file-loc>

message2-time=<time in seconds>
message2-frequency=<never|once|always>
message2=<message2-file-loc>

Where a message <messageX-file-loc> is played <never|once|always>
every <time in seconds>.

if time is set to 0, or freqency is set to never, the message is not played.

If time is set to >0, and frequency is set to once, message is played
at messagex-time, and never again.

if time is set to >0 and frequency is set to always, message is played
every messagex-time in seconds.

3.  Agent timeout (logs the agent off if they do not respond to a ring
in a defined about of time) does not track across calls.  For example,
if an agent steps away and forgets to log out, then thier phone will
ring based upon whatever call strategy is used.  If the agent timeout
is set higher than the time the queue polls a set of agents they will
never be logged out.  The timer needs to increment per agent across
multiple polls.  So if my queue poll timer is 20 secons, but the agent
timeout is set to 60 seconds, the preferred function would be to log
the agent out of the queue if they completely miss three poll events.

4. If a caller empties a handled queue (active agents) with no
callers, the caller will still hear messages (you are first in queue,
etc.).  This should not occur.  Someone posted a 2-line patch on -dev
list recently to fix this issue.



-Chris



More information about the asterisk-users mailing list