Before I continue, I should mention that we are not using the new agent page. We are using the live_agent.jsp page because this prevents agents from adding or removing queues on the fly when they are assigned specific queues.
Additionally, not all agents are assigned the same queues. Agent 1 may have queues 8001 and 8002, while Agent 2 may have only 8002 and 8003. The situation leaves Agent 1 stuck in 8001 until someone takes steps to correct it.
in many cases this is the desired behaviour since many times agents forget to log off after their working session.
I don't see how this is desired behavior.
If two agents sit next to each other, and the first agent is already joined to queues in to Ext 1001, and the second agent accidentally uses Ext 1001 (instead of their own like 1002) to join queues it creates a complete mess for users to deal with. The corrections steps for this situation are:
1) Agent 1 needs to wait as Agent 2 leaves queues
2) Agent 2 needs to leave the queues
3) Agent 1 needs to rejoin queues
A supervisor has to:
1) Have Agent 2 leave the queues
2) Join the queues as Agent 1 at the extension in question
3) Leave the queues
4) Have Agent 2 join the queues again.
This puts customers on hold until the issue is resolved. Users should NOT have to re-add an agent to an extension just to remove them from QueueMetrics.
The truly desired behavior by us end users would be to remove the agent already logged in to the extension completely from both QueueMetrics and Asterisk, and not overwrite the agent that's there, leaving them in the realtime page still signed in, and unable to complete any functions.
Another real solution to the problem is what you mention below:
A solution for this problem could be to implement a script in the logon dialplan that checks if the extension is already used by an agent in that given moment (you can use QueueMetrics' API to get this information),
This is another correct solution. This should be integrated into the login process to check to see if the extension is already in use. If an agent logs in it truly shouldn't bump an agent that is already signed in.
It is the duty of the Supervisor to ensure that agents are logged out for the day. It shouldn't be up to the software to decide to leave an agent "logged in" (and ONLY in QueueMetrics), and allow the other agent to login on top of them.
I should also mention that this creates extreme problems with the New Agent Page in 14.06. I downloaded and have been testing this scenario. If you don't use live_agent.jsp OR the Realtime Monitoring page, you are UNABLE to fix this situation.
I apologize for any strong wording in this, but we have been fighting with this issue since Launch in January, and have been met with opposition to see the actual issue here. I don't know what more I can do to make it clear enough to understand.