Multilple Queue Login

I have tried to setup a asterisk pbx server

Everything is working perfectly. Now want to add a new feature on my pbx server

like multiple queue login for agents

for ex:
I have 3 agents 1000, 1001, 1002 and 3 queues sales, support, marketing
The agents will be like this below





I am trying to make an inbound call center. Here i am using hard phones[IP-Phones]. So i am not using agents.conf file here. What i want to do is when my agents logged in they are available in each queue.

How can i make a dialplan to login all queue with a single exten number for an agent ?

If i have to use ‘addqueuemember’ then how can i use it in my dialplan and How can i set a penalty ?



What I have done is this…

Create a mySQL table with the agent information and another the has which queues the agent belongs to with the penalty value for each queue.
Within the dialplan, I create an extension that prompts the caller for the agent ID and then retrieves the queue information from the table via func_odbc.
For each queue an agent is a member of, I call addQueueMemeber with the appropriate penalty.
I save the agent login information in the AstDB by device.
For logout, I find the device and look in the AstDB for the agent logged into that device. I then RemoveQueueMember from every queue that agent is a member of.

I am not saying it is the best way or the only way.

If the number of your queues stays within reason you can do it in the dial plan alone.

1 - give each queue a numeric value 5100, sales, 5200, support, 5300 marketing
2 - create a macro to login and log out
3 - assign them to extension like 5101 login to 5100 and 5102 logout from 5100 etc…

Or if you want to take it a step further prompt the user to enter the queue they are about to login or log out of. This will only work well if the number of queues is limited. Our agents log in to tens of queues to support multiple clients. An agent cannot be expected to login in or out of all those queues individually.

So we do as the previous poster says and maintain a database table of queue assignment. Managers place agents in an out of that database via web interface. Instead of using func_odbc we use AGI instead with the full power of PHP. Makes it much simpler to create functions like log in to all queues, remove from all queues, and sync with current database assignment. Agent dial *310, they are logged out of every queue and logged in to every one they are a member of in the config DB. Lots of ways to go about this.