Queue only ringing one at a time

My question is this:

I have lets say 10 available agents and 12 waiting callers in the queue. Only one telephone of all 10 available agents starts to ring, eventhough there are still 11 more waiting callers in the queue.

How could I make all of those waiting calls to start ringing (one caller to one agent, NOT one caller to all agents - like ringall does)?

Hi,

Post your files ie queues.conf, agents.conf, extensions.conf. It is really hard to tell what may be wrong without this information. One thing I would check is in the queues file. Are you using groups or are you designating each agent separately. There is a problem with the group function ie it does not work.

Thanks

Of course, here are the files:

This is the part of extensions.conf that handles agents and queue (queue is on extension 991):

[to-sip]
; Klicemo na eksterne stevilke
exten => _8.,1,Dial(SIP/${EXTEN:1}@111.111.111.200)

; Agenti se registrirajo v sistem tako, da poklicejo na svojo registracijsko interno
exten => 9000,1,Goto(from-sip,9000,1)
exten => 9001,1,Goto(from-sip,9001,1)
exten => 9002,1,Goto(from-sip,9002,1)

; Agenti se odregistrirajo v sistem tako, da poklicejo na svojo registracijsko interno
exten => 9900,1,Goto(from-sip,9900,1)
exten => 9901,1,Goto(from-sip,9901,1)
exten => 9902,1,Goto(from-sip,9902,1)

; Dosegljivost agentov
exten => 1000,1,Dial(SIP/To1000,20,tr)
exten => 1000,2,HangUp()
exten => 1001,1,Dial(SIP/To1001,20,tr)
exten => 1001,2,HangUp()
exten => 1002,1,Dial(SIP/To1002,20,tr)
exten => 1002,2,HangUp()

exten => 991,1,Goto(from-sip,991,1)

[from-sip]
; Klicemo na eksterne stevilke
exten => _8.,1,Dial(SIP/${EXTEN:1}@111.111.111.200)

; Klicemo testno cakalno vrsto tako, da poklicemo interno 991
exten => 991,1,Answer()
exten => 991,n,Playtones(ring)
exten => 991,n,Wait(5)
exten => 991,n,Stopplaytones()
exten => 991,n,Queue(AbraxasQueue|tT|||240)
exten => 991,1,Playtones(busy)
exten => 991,n,Wait(10)
exten => 991,n,StopPlaytones()
exten => 991,n,HangUp()

; Agenti se registrirajo v sistem tako, da poklicejo na svojo registracijsko interno
exten => 9000,1,AgentCallbackLogin(9000,,1000@to-sip)
exten => 9001,1,AgentCallbackLogin(9001,,1001@to-sip)
exten => 9002,1,AgentCallbackLogin(9002,,1002@to-sip)

; Agenti se odregistrirajo v sistem tako, da poklicejo na svojo registracijsko interno
exten => 9900,1,AgentCallbackLogin(9000,#)
exten => 9901,1,AgentCallbackLogin(9001,#)
exten => 9902,1,AgentCallbackLogin(9002,#)

this is the agents.conf:

[code]
[general]
;
; Define whether callbacklogins should be stored in astdb for
; persistence. Persistent logins will be reloaded after
; Asterisk restarts.
;
persistentagents=yes
;
; Agent configuration
;
;
[agents]
;
; Define autologoff times if appropriate. This is how long
; the phone has to ring with no answer before the agent is
; automatically logged off (in seconds)
;
;autologoff=15
;
; Define ackcall to require an acknowledgement by ‘#’ when
; an agent logs in using agentcallbacklogin. Default is “no”.
;
ackcall=no
;
; Define wrapuptime. This is the minimum amount of time when
; after disconnecting before the caller can receive a new call
; note this is in milliseconds.
;
wrapuptime=0
;
; Define the default musiconhold for agents
; musiconhold => music_class
;
musiconhold => default
;
; Define updatecdr. This is whether or not to change the source
; channel in the CDR record for this call to agent/agent_id so
; that we know which agent generates the call
;
;updatecdr=no
;
; Group memberships for agents (may change in mid-file)
;
;group=3
;group=1,2
;group=
;
; --------------------------------------------------
; This section is devoted to recording agent’s calls
; The keywords are global to the chan_agent channel driver
;
; Enable recording calls addressed to agents. It’s turned off by default.
;recordagentcalls=yes
;
; The format to be used to record the calls: wav, gsm, wav49.
; By default its “wav”.
;recordformat=gsm
;
; Insert into CDR userfield a name of the the created recording
; By default it’s turned off.
;createlink=yes
;
; The text to be added to the name of the recording. Allows forming a url link.
;urlprefix=http://localhost/calls/
;
; The optional directory to save the conversations in. The default is
; /var/spool/asterisk/monitor
;savecallsin=/var/calls
;
; An optional custom beep sound file to play to always-connected agents.
;custom_beep=beep
;
; --------------------------------------------------
;
; This section contains the agent definitions, in the form:
;
; agent => agentid,agentpassword,name
;

group=1
agent => 9000,Abraxas Operater 0
agent => 9001,Abraxas Operater 1
agent => 9002,Abraxas Operater 2[/code]

This is the queues.conf:

[general]
persistentmembers = yes

[AbraxasQueue]
announce-frequency=60
music=default
strategy=fewestcalls
wrapuptime=0
retry = 1

queue-youarenext = queue-youarenext
queue-thereare = queue-thereare
queue-callswaiting = queue-callswaiting
queue-holdtime = queue-holdtime
queue-minutes = queue-minutes
queue-seconds = queue-seconds
queue-thankyou = queue-thankyou
queue-lessthan = queue-less-than
queue-reporthold = queue-reporthold
periodic-announce = queue-periodic-announce 

member => Agent/9000,0
member => Agent/9001,0
member => Agent/9002,0

I hope this will give you more info.

Hi,

In your queues.conf why is there a ‘,0’ after the member login id ie I think

member => Agent/9000,0
member => Agent/9001,0
member => Agent/9002,0

Should be

member => Agent/9000
member => Agent/9001
member => Agent/9002

Thanks

Hi,

I found something else in the wiki…

issue with leastrecent strategy
by FranklinWebb on Wednesday 07 of September, 2005 [07:41:03]
When using the “leastrecent” strategy you can find yourself in a situation where you have many reps on, yet calls are backing up in the queue because one agent is not answering.

This may be limited to the business edition.

Even if you have _ set in agents.conf it will never log out an agent if the queue timeout is shorter. The agent stops being rung before they can be logged out and is rung over again.

If an agent rung with the “leastrecent” strategy is not answering, and not being logged out (either because a logout is not set or because of the above situation) all new callers will be directed towards that agent. I would consider this a bug.

I encourage you to use the “roundrobin” strategy if you find this is an issue for you.

Thanks

Hi,

I have the same problem with the queue configuration

When I receive 2 calls only 1 phone ring even if more agent’s phone are free.

The second call will go to an other agent only if the first call is pickup.

Somebody have a solution ?

did you not notice the OP was asked for his config ? i can’t see how anyone can help unless you provide these.

ouch , I fogot it.

Queue.conf

[general]
;
; Global settings for call queues
;
; Persistent Members
;    Store each dynamic agent in each queue in the astdb so that
;    when asterisk is restarted, each agent will be automatically
;    readded into their recorded queues. Default is 'yes'.
;
persistentmembers = yes
;
; Note that a timeout to fail out of a queue may be passed as part of
; an application call from extensions.conf:
; Queue(queuename|[options]|[optionalurl]|[announceoverride]|[timeout])
; example: Queue(dave|t|||45)
autofill = yes

[ticketix]
;
; A sample call queue
;
; Musiconhold sets which music applies for this particular
; call queue (configure classes in musiconhold.conf)
;
autofill=yes
musiconhold = default
;
; An announcement may be specified which is played for the member as
; soon as they answer a call, typically to indicate to them which queue
; this call should be answered as, so that agents or members who are
; listening to more than one queue can differentiated how they should
; engage the customer
;
;announce = queue-ticketix
;
; A strategy may be specified.  Valid strategies include:
;
; ringall - ring all available channels until one answers (default)
; roundrobin - take turns ringing each available interface
; leastrecent - ring interface which was least recently called by this queue
; fewestcalls - ring the one with fewest completed calls from this queue
; random - ring random interface
; rrmemory - round robin with memory, remember where we left off last ring pass
;
strategy = roundrobin
;
; Second settings for service level (default 0)
; Used for service level statistics (calls answered within service level time
; frame)
servicelevel = 60
;
; A context may be specified, in which if the user types a SINGLE
; digit extension while they are in the queue, they will be taken out
; of the queue and sent to that extension in this context.
;
;context = qoutcon
;
; How long do we let the phone ring before we consider this a timeout...
;
timeout = 15
;
; How long do we wait before trying all the members again?
;
retry = 5
;
; Weight of queue - when compared to other queues, higher weights get
; first shot at available channels when the same channel is included in
; more than one queue.
;
;weight=0
;
; After a successful call, how long to wait before sending a potentially
; free member another call (default is 0, or no delay)
;
wrapuptime=15
;
; Maximum number of people waiting in the queue (0 for unlimited)
;
maxlen = 0
;
;
; How often to announce queue position and/or estimated holdtime to caller (0=off)
;
announce-frequency = 90
;
;
; How often to make any periodic announcement (see periodic-announce)
;
periodic-announce-frequency=60
;
; Should we include estimated hold time in position announcements?
; Either yes, no, or only once.
; Hold time will be announced as the estimated time,
; or "less than 2 minutes" when appropriate.
;
announce-holdtime = yes

;
; What's the rounding time for the seconds?
; If this is non-zero, then we announce the seconds as well as the minutes
; rounded to this value.
;
announce-round-seconds = 10
;
; Use these sound files in making position/holdtime announcements.  The
; defaults are as listed below -- change only if you need to.
;
queue-youarenext = queue-youarenext             ;       ("You are now first in line.")
queue-thereare  = queue-thereare                ;       ("There are")
queue-callswaiting = queue-callswaiting ;       ("calls waiting.")
queue-holdtime = queue-holdtime         ;       ("The current est. holdtime is")
queue-minutes = queue-minutes                   ;       ("minutes.")
queue-seconds = queue-seconds                   ;       ("seconds.")
queue-thankyou = queue-thankyou         ;       ("Thank you for your patience.")
queue-lessthan = queue-less-than                ;       ("less than")
queue-reporthold = queue-reporthold             ;       ("Hold time")
periodic-announce = queue-periodic-announce    ;       ("All reps busy / wait for next")
;
; Calls may be recorded using Asterisk's monitor resource
; This can be enabled from within the Queue application, starting recording
; when the call is actually picked up; thus, only successful calls are
; recorded, and you are not recording while people are listening to MOH.
; To enable monitoring, simply specify "monitor-format";  it will be disabled
; otherwise.
;
; You can specify the monitor filename with by calling
;    Set(MONITOR_FILENAME=foo)
; Otherwise it will use MONITOR_FILENAME=${UNIQUEID}
;
 monitor-format = wav49
;
; If you wish to have the two files joined together when the call ends, set this
; to yes.
;
 monitor-join = yes
;
; This setting controls whether callers can join a queue with no members. There
; are three choices:
;
; yes    - callers can join a queue with no members or only unavailable members
; no     - callers cannot join a queue with no members
; strict - callers cannot join a queue with no members or only unavailable
;          members
;
joinempty = no
;
; If you wish to remove callers from the queue when new callers cannot join,
; set this setting to one of the same choices for 'joinempty'
;
leavewhenempty = yes
;
;
; If this is set to yes, the following manager events will be generated:
; AgentCalled, AgentDump, AgentConnect, AgentComplete
; (may generate some extra manager events, but probably ones you want)
;
eventwhencalled = yes
;
; If this is set to no, the following manager events will be generated:
; QueueMemberStatus
; (may generate a WHOLE LOT of extra manager events)
;
eventmemberstatusoff = no
;
; If you wish to report the caller's hold time to the member before they are
; connected to the caller, set this to yes.
;
; reportholdtime = no
;
;
; If you wish to have a delay before the member is connected to the caller (or
; before the member hears any announcement messages), set this to the number of
; seconds to delay.
;
; memberdelay = 0
;
; If timeoutrestart is set to yes, then the timeout for an agent to answer is
; reset if a BUSY or CONGESTION is received.  This can be useful if agents
; are able to cancel a call with reject or similar.
;
; timeoutrestart = no
;
; Each member of this call queue is listed on a separate line in
; the form technology/dialstring.  "member" means a normal member of a
; queue.  An optional penalty may be specified after a comma, such that
; entries with higher penalties are considered last.
;
member => Agent/1001
member => Agent/1002
member => Agent/1003

and the agents.conf

[general]
;
; Define whether callbacklogins should be stored in astdb for
; persistence. Persistent logins will be reloaded after
; Asterisk restarts.
;
persistentagents=yes
;
; Agent configuration
;
;
[agents]
;
; Define autologoff times if appropriate.  This is how long
; the phone has to ring with no answer before the agent is
; automatically logged off (in seconds)
;
;autologoff=15
;
; Define ackcall to require an acknowledgement by '#' when
; an agent logs in using agentcallbacklogin.  Default is "no".
;
;ackcall=no
;
; Define wrapuptime.  This is the minimum amount of time when
; after disconnecting before the caller can receive a new call
; note this is in milliseconds.
;
;wrapuptime=5000
;
; Define the default musiconhold for agents
; musiconhold => music_class
;
;musiconhold => default
;
; Define updatecdr. This is whether or not to change the source
; channel in the CDR record for this call to agent/agent_id so
; that we know which agent generates the call
;
;updatecdr=no
;
; Group memberships for agents (may change in mid-file)
;
;group=3
;group=1,2
;group=
;
; --------------------------------------------------
; This section is devoted to recording agent's calls
; The keywords are global to the chan_agent channel driver
;
; Enable recording calls addressed to agents. It's turned off by default.
;recordagentcalls=yes
;
; The format to be used to record the calls: wav, gsm, wav49.
; By default its "wav".
;recordformat=gsm
;
; Insert into CDR userfield a name of the the created recording
; By default it's turned off.
;createlink=yes
;
; The text to be added to the name of the recording. Allows forming a url link.
;urlprefix=http://localhost/calls/
;
; The optional directory to save the conversations in. The default is
; /var/spool/asterisk/monitor
;savecallsin=/var/calls
;
; An optional custom beep sound file to play to always-connected agents.
;custom_beep=beep
;
; --------------------------------------------------
;
; This section contains the agent definitions, in the form:
;
; agent => agentid,agentpassword,name
;
;agent => 1001,4321,Mark Spencer
;agent => 1002,4321,Will Meadows
agent => 1001,4321,Agent One
agent => 1002,5432,Agent Two
agent => 1003,6543,Agent Three

and in my extentions.conf

exten => 3000,1,Queue(ticketix)
exten => 3001,1,AgentCallbackLogin(||${CALLERIDNUM}@internal_appel)

exten => 3002,1,AgentCallbackLogin(||l)

Hello,

Nobody have a solution :frowning:

Check the queues.conf sample file and read the section for “autofill” which appears to address what you are talking about.