Asterisk 1.4.23 and Queuemetrics 1.5.2 fully support Dynamic Agent Login

The standard method of configuring users in Asterisk 1.2 and early 1.4 was to define an agent in the agents.conf configuration file.  This agent is tied to no particular phone or SIP extension.  When the Agent log’s in he is prompted for three things by the dial plan application, ‘AgentCallBackLogin()’:

1. Agent Number
2. Agent password(defined in agents.conf
3. Dial Back Extension

AgentCallBackLogin makes a lot of sense if CSR’s(Customer Service Representatives) switch phones frequently.  For some of my customers this is the case.  However, most of the Call Centers I’ve deployed have assigned seating.

So I commonly get the question,  “Is it possible to have ‘one touch login/logout’ for my agents?”  The sad answer is no.  It’s a valid question; for agents that never leave their desk why do they need to enter three prompts to login?

Logging out is just as bad, when prompted for ‘Dial Back’ number the user has to hit the ‘#’ key to logout.  Even using regular expressions like ‘${CALLERID(num)’ it is impossible to enable ‘one touch login/logout’.  Extremely annoying…

For anyone that is still reading, AgentCallBacklogin is depreciated.  It still works as a dial plan application, but it is extremely unintuitive.  In addition to that the there are many reports of slow down in commercial Asterisk Call Centers due to the Agents module.  Given all this Digium has moved later Asterisk 1.4 & 1.6 to dynamic agents that use the ‘AddQueueMember()’ and RemoveQueueMember() dial plan applications.  Agents are defined by their extension, NOT their Agent number.  So my extension, SIP/8888 would log into the defined queue(by AddQueueMember) as SIP/8888, rather than AGENT/8888(as defined in agents.conf).  Asterisk 1.4.23 now correctly logs this and Queuemetrics 1.5.2 is fully compatible.

Here is an example of ‘one touch login/logout’ :

exten => 2001,1,Answer
exten => 2000,n,AddQueueMember(savelono-support|SIP/${CALLERID(num)}|1|)
exten => 2000,n,Playback(agent-loginok)
exten => 2000,n,Hangup

or you could password protect the Dynamic Queue Member with their VM password to prevent accidental login/logout’s.

exten => 2000,1,Answer
exten => 2000,n,VMauthenticate(${CALLERID(num)}@default)
exten => 2000,n,AddQueueMember(savelono-support|SIP/${CALLERID(num)}|1|)
exten => 2000,n,Playback(agent-loginok)
exten => 2000,n,Hangup

We can see my agent in Asterisk.

[root@mattcom1 init.d]# asterisk -rvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
Asterisk 1.4.23-rc2, Copyright (C) 1999 – 2008 Digium, Inc. and others.
Created by Mark Spencer <>
Asterisk comes with ABSOLUTELY NO WARRANTY; type ‘core show warranty’ for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type ‘core show license’ for details.
== Parsing ‘/etc/asterisk/asterisk.conf’: Found
== Parsing ‘/etc/asterisk/extconfig.conf’: Found
Connected to Asterisk 1.4.23-rc2 currently running on mattcom1 (pid = 5890)
Verbosity is at least 32
— Remote UNIX connection
— Remote UNIX connection disconnected
— Remote UNIX connection
— Remote UNIX connection disconnected
mattcom1*CLI> show queues
savelono-sup has 0 calls (max unlimited) in ‘leastrecent’ strategy (11s holdtime), W:0, C:2, A:0, SL:0.0% within 0s
SIP/8888 with penalty 1 (dynamic) (Not in use) has taken 1 calls (last was 8229 secs ago)
No Callers

The point of these changes is to stream line Queue system that Asterisk uses.  The agents.conf file becomes useless(because there are no agents) and there is NO need to define agents as specific members of a Queue in the queues.conf.  This is handled by AddQueueMember application.  If a SIP user has access to the AddQueueMember extension(via users default context) he can login.  I hope this clears up confusion about dynamic queue membership and configuration.  If you need professional help setting up Dynamic Queues with Asterisk check out the company I work for, VoiceIP Solutions.  Also, keep reading!

Relevent configuration files:


  • Chesstrian

    Hi, great post!

    I have a question, What do you do for manage agent’s breaks?. Did you do a feature code for that or agents can pause on QM gui?.

    Comment | March 8, 2010
  • mattb

    Thats a great question. There is a ‘Pause’ command for Aterisk Queues. Agents can temporarily make themselves unavilable by using this feature. I think the command is ‘AgentPause’. Good Luck!

    Comment | March 8, 2010
  • Ritesh

    we are trying to get outbound call monitoring in queuemetrics. we are using trixbox

    2 requirements for that purpose is setting up campaign and a different dial code for outbound queue. our system does not use outside dial code and i am not sure how to set up a campaign.

    any help appreciated

    Comment | June 24, 2010
  • mattb

    Sorry, I’m not a trixbox fan. It’s poorly documented and regular Asterisk is(in my opinion) much easier to work with.

    Also most of the work I’ve done is inbound call centers with Queuemetrics. Thanks for reading.

    Comment | July 2, 2010

RSS feed for comments on this post. TrackBack URL

Leave a comment