Asterisk: How to Install Queuemetrics and Qloader

queuemetrics login

Queuemetrics is by far the best Call Center software Linux.  My only complaint might be that Java is huge resource hog when it parses the Asterisk. ‘/var/log/asterisk/queue_log’.  Luckily Loway provides an excellent PERL script called Qloader.

Today we will walk through installing Queuemeteics,MySQL,and Qloader daemon. My installation instructions are basically a quick rundown of the excellent infomation on Loways site:


My Setup:
Fedora 14 – (32 bit)
Asterisk 1.6
QEMU-KVM virtual machine on Intel i7



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?



queues.conf – Asterisk 1.4.23 and Queuemetrics 1.5.2 fully support Dynamic Agent Login



; Default settings for queues (currently unused)


context = savelono-queue-out
musiconhold = default
strategy = leastrecent
timeout = 10
retry = 5
announce-frequency = 90
announce-holdtime = no
announce-round-seconds = 30
queue-youarenext = queue-youarenext
queue-thereare = queue-thereare
queue-callswaiting = queue-callswaiting
queue-thankyou = queue-thankyou
monitor-format = wav
monitor-join = yes
joinempty = yes
;memberdelay = 1


extensions.conf – Asterisk 1.4.23 and Queuemetrics 1.5.2




exten => _x.,1,Congestion

;for dialing internal extensions

exten => s,1,Set(dynext=${DB(dynext/${ARG1})})
exten => s,n,NoOp(${dynext})
exten => s,n,NoOp(${LEN(${dynext})})
exten => s,n,GotoIf($[“${LEN(${dynext})}” = “7”]?s,100)
exten => s,n,GotoIf($[“${LEN(${dynext})}” = “10”]?s,100)
exten => s,n,GotoIf($[“${LEN(${dynext})}” = “11”]?s,100)
exten => s,n,GotoIf($[“${LEN(${dynext})}” = “6”]?s,200) ; Calls 6-digit Extension
exten => s,n,GotoIf($[“${LEN(${dynext})}” = “0”]?s,300) ; Calls 6-digit Extension
exten => s,n(dial),Dial(SIP/${dynext},20,twW) ; Ring the interface, 20 seconds maximum
exten => s,n,Goto(s-${DIALSTATUS},1) ; Jump based on status
exten => s,100,Dial(ZAP/g1/${dynext},20,twW) ; Ring the interface, 20 seconds maximum
exten => s,101,Goto(s-${DIALSTATUS},1) ; Jump based on status
exten => s,200,Goto(from-sip,${dynext},1); Calls 6-digit Extension
exten => s,300,Set(dynext=${ARG1})
exten => s,301,Goto(dial)

exten => s-BUSY,1,Voicemail(b${ARG1}) ; If busy, send to voicemail w/ busy announce
exten => s-BUSY,2,Hangup
exten => s-NOANSWER,1,Voicemail(u${ARG1}) ; If unavailable, send to voicemail
exten => s-NOANSWER,2,Hangup
exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer


include => test
include => from-internal


exten => 1234,1,agi(matts-test.agi)
exten => 1234,2,wait(2)
;exten => 1234,n,voicemail(8888)
exten => 1234,n,hangup

;Standard Internal Extensions

exten => _888X,1,Macro(stdexten,${EXTEN},sip/${EXTEN})
exten => _888X,2,Hangup

; Add Member SIP/${CALLERID(num)}
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

; Remove Member – Dynamic Agent SIP/${CALLERID(num)}
exten => 2001,1,Answer
exten => 2001,n,VMauthenticate(${CALLERID(num)}@default)
exten => 2001,n,RemoveQueueMember(savelono-support|SIP/${CALLERID(num)})
exten => 2001,n,Playback(agent-loggedoff)
exten => 2001,n,Hangup

exten => 5000,1,goto(test-queue,s,1)


include => from-internal


exten => s,1,Queue(savelono-support)
exten => s,2,hangup


Install Queuemetrics Call Center software for Asterisk on Fedora 10

What makes Asterisk so great is the growing ecosystem of 3rd party software.  For call centers based on Asterisk PBX, the best on the market is Queuemetrics.  This solution allows for over 150 different statistics to be collected.  Here is just a few:

Number of calls
Total call length
Average call length
Average call waiting
Number of unanswered calls
Average time before disconnection
Area code
Number of calls
Total calling time
Average time per call (for taken calls)
Average wait per call
Average position at disconnection (for lost calls)
Number of available agents
Total agent time
Average agent time
Minimum/ maximum agent session duration
Agent availability

If by now you are not convinced take a look at the complete list; you can check out Loway’s site and Queuemetrics here.  I have personally helped setup several commercial call centers(while working for VoiceIP Solutions) with this software and I am impressed at the value and support for our customers purchase.  So today we are going to set up a basic Queuemetrics installation; we will not be covering the Asterisk portion.  Nothing fancy here, but I can get you started.

The goal of this post:

– install Queuemetrics