I reconfigured my test system with three agents and configured the queue with the agents instead of the devices as I had previously. I added a dial plan extension for logging agents in as well.
agents.conf
[general]
[agents]
agent => 1001,4321,Mark Spencer
agent => 1002,4321,Will Meadows
agent => 1003,4321,Dale Noll
queues.conf
[lostandfound]
announce-frequency = 30
announce-holdtime = yes
announce-position = yes
autopause = all
joinempty = yes
leavewhenempty = no
ringinuse = no
strategy = leastrecent
timeout = 20
setqueueentryvar=yes
setqueuevar=yes
member => Agent/1001,1
member => Agent/1002,2
member => Agent/1003,3
extensions.conf
exten => 650,1,NoOp(Testing AgentLogin)
same => n(getloginidread),Read(LoginID,agent-user,,,3)
same => n,AgentLogin(${LoginID})
same => n,Playback(agent-loginok)
same => n,Hangup()
I log into three separate devices with the three agent IDs defined in agents.conf and placed a bunch of test calls…
lostandfound has 0 calls (max unlimited) in 'leastrecent' strategy (0s holdtime, 33s talktime), W:0, C:18, A:0, SL:50.0% within 0s
Members:
Agent/1001 with penalty 1 (Busy) has taken 6 calls (last was 272 secs ago)
Agent/1002 with penalty 2 (Busy) has taken 8 calls (last was 18 secs ago)
Agent/1003 with penalty 3 (Not in use) has taken 4 calls (last was 282 secs ago)
No Callers
The calls all went to agent 1001 first, agent 1002 if agent 1001 was busy and then agent 1003 if the others were busy. If agent 1001 logged off, all calls went to agent 1002 first.