Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Zerabox

Pages: 1 [2]
16
QueueMetrics installation / Re: Admin Logon
« on: April 01, 2010, 15:03:16 »
Thanks I found it last night I was having a day for sure. Thanks again Sir's.

Richie

17
Outbound and QueueMetrics / Outgoing Calls not disconnecting
« on: March 31, 2010, 17:08:12 »
I saw where others had this problem I am still a newbie so need some help we are running PIAF 1.3 with asterisk 1.4.21 and Queuemetrics Software release: Loway QueueMetrics - 1.5.3
B: 1401 2009-05-12 10:57  

We had Loway help with the outbound queues and everything worked well, I don't know if this is a new issue or if the customer has never saw the issue in the realtime screen. here is the file we have in queuemetrics

; ============================================================================
; The following dialplan context is used by QueueMetrics
; through the manager API.
; - $Id: extensions_queuemetrics.conf,v 1.7 2009/02/16 10:37:47 marcos Exp $
; You should modify it to fit your system.
; To enable this file, copy it to /etc/asterisk
; and add the line:
;   #include extensions_queuemetrics.conf
; by the end of your extensions.conf file.
; ============================================================================
[queuemetrics]
; extension 0 is a dummy end point
exten => 10,1,Answer
exten => 10,2,Wait(10)
exten => 10,3,Hangup
; extension 11 makes remote monitoring possible
exten => 11,1,Answer
exten => 11,2,NoOp( "QM_AGENT_CODE: ${QM_AGENT_CODE}" )
exten => 11,3,NoOp( "QM_EXT_MONITOR: ${QM_EXT_MONITOR}" )
exten => 11,4,NoOp( "QM_AGENT_EXT: ${QM_AGENT_EXT}" )
exten => 11,5,NoOp( "QM_LOGIN: ${QM_LOGIN}" )
exten => 11,6,ChanSpy(Local/${QM_AGENT_CODE:6}@from-internal)
exten => 11,7,Hangup

; extension 12: set call status code
exten => 12,1,Answer
exten => 12,2,NoOp( "QM: Setting call status '${CALLSTATUS}' on call '${CALLID}' for agent '${AGENTCODE}' made by '${QM_LOGIN}'" )
exten => 12,3,System( echo "${EPOCH}|${CALLID}|NONE|Agent/${AGENTCODE}|CALLSTATUS|${CALLSTATUS}" >> /var/log/asterisk/queue_log )
exten => 12,4,Hangup
; extension 20: agent callback login
;    For this to work, there must be no password on the agent.
exten => 20,1,Answer
exten => 20,2,NoOp( "QM: Logging on Agent/${AGENTCODE} to extension ${AGENT_EXT}@from-internal made by '${QM_LOGIN}'" )
exten => 20,3,AgentCallBackLogin(${AGENTCODE}||${AGENT_EXT}@from-internal)
exten => 20,4,Hangup

; extension 21: agent callback logoff
exten => 21,1,Answer
exten => 21,2,NoOp( "QM: Logging off Agent/${AGENTCODE} made by '${QM_LOGIN}'" )
exten => 21,3,System(asterisk -rx "agent logoff Agent/${AGENTCODE}")
exten => 21,4,Hangup
; extension 22: agent pause (with pause code)
exten => 22,1,Answer
exten => 22,2,NoOp( "QM: Pausing Agent/${AGENTCODE} with pause reason '${PAUSEREASON}' made by '${QM_LOGIN}' " )
exten => 22,3,PauseQueueMember(|Local/${AGENTCODE}@from-internal)
exten => 22,4,System( echo "${EPOCH}|${UNIQUEID}|NONE|Agent/${AGENTCODE}|PAUSEREASON|${PAUSEREASON}" >> /var/log/asterisk/queue_log )
exten => 22,5,Hangup
; extension 23: agent unpause
exten => 23,1,Answer
exten => 23,2,NoOp( "QM: Unpausing Agent/${AGENTCODE} made by '${QM_LOGIN}' " )
exten => 23,3,UnpauseQueueMember(|Local/${AGENTCODE}@from-internal)
exten => 23,4,Hangup
; extension 24: agent addqueuemember (for asterisk v1.2)
exten => 24,1,Answer
exten => 24,2,NoOp( "QM: AddQueueMember (asterisk v1.2) Agent/${AGENTCODE} on queue ${QUEUENAME} made by '${QM_LOGIN}'" )
exten => 24,3,System( echo "${EPOCH}|${UNIQUEID}|${QUEUENAME}|Local/${AGENTCODE}@from-internal|ADDMEMBER|" >> /var/log/asterisk/queue_log )
exten => 24,4,Hangup
; extension 25: agent addqueuemember (for asterisk v1.4+)
exten => 25,1,Answer
exten => 25,2,NoOp( "QM: AddQueueMember (asterisk v1.4+) Agent/${AGENTCODE} on queue ${QUEUENAME} made by '${QM_LOGIN}'" )
exten => 25,3,AddQueueMember(${QUEUENAME}|Local/${AGENTCODE}@from-internal)
exten => 25,4,Hangup
; extension 26: agent removequeuemember
exten => 26,1,Answer
exten => 26,2,NoOp( "QM: RemoveQueueMember (asterisk v1.2) Agent/${AGENTCODE} on queue ${QUEUENAME} made by '${QM_LOGIN}'" )
exten => 26,3,System( echo "${EPOCH}|${UNIQUEID}|${QUEUENAME}|Local/${AGENTCODE}@from-internal|REMOVEMEMBER|" >> /var/log/asterisk/queue_log )
exten => 26,4,Hangup
; extension 27: agent removequeuemember (for asterisk v1.4+)
exten => 27,1,Answer
exten => 27,2,NoOp( "QM: RemoveQueueMember (asterisk v1.4+) Agent/${AGENTCODE} on queue ${QUEUENAME} made by '${QM_LOGIN}'" )
exten => 27,3,RemoveQueueMember(${QUEUENAME}|Local/${AGENTCODE}@from-internal)
exten => 27,4,Hangup
; ================================================================
; The following dialplan is used in order to make oubound calls
; that are tracked through QueueMetrics.
; See http://forum.queuemetrics.com/index.php?board=12.0
; ================================================================
[from-agent]
exten => _1NXXNXXXXXX,1,goto(queuedial,999${EXTEN},1)
exten => _NXXNXXXXXX,1,goto(queuedial,999${EXTEN},1)
exten => _NXXXXXX,1,goto(queuedial,999${EXTEN},1)
exten => _911,1,goto(queuedial,999${EXTEN},1)
include => from-internal
[queuedial]
; this piece of dialplan is just a calling hook into the [qm-queuedial] context that actually does the
; outbound dialing - replace as needed - just fill in the same variables.
exten => _XXX.,1,Set(QDIALER_QUEUE=q-${EXTEN:0:3})
exten => _XXX.,n,Set(QDIALER_NUMBER=${EXTEN:3})
exten => _XXX.,n,Set(QDIALER_AGENT=Agent/${CALLERID(num)})
exten => _XXX.,n(setcid-outq999),Set(CALLERID(all)=<8643352720>)
exten => _XXX.,n,Set(QDIALER_CHANNEL=Zap/g0/${QDIALER_NUMBER})
exten => _XXX.,n,Set(QueueName=${QDIALER_QUEUE})
exten => _XXX.,n,MixMonitor(Q-${QDIALER_QUEUE}-${UNIQUEID}.WAV|b|)
exten => _XXX.,n,Goto(qm-queuedial,s,1)
include => from-internal
[queuedial-loggedon]
; This piece of dialplan will let only logged on agents dial out
exten => _XXX.,1,Set(QDIALER_QUEUE=q-${EXTEN:0:3})
exten => _XXX.,n,Set(QDIALER_NUMBER=${EXTEN:3})
exten => _XXX.,n,Set(QDIALER_AGENT=Agent/${AGENTBYCALLERID_${CALLERID(num)}})
exten => _XXX.,n,Set(QDIALER_CHANNEL=SIP/${QDIALER_NUMBER})
exten => _XXX.,n,Set(QueueName=${QDIALER_QUEUE})
exten => _XXX.,n,MixMonitor(Q-${QDIALER_QUEUE}-${UNIQUEID}.WAV|b|)
exten => _XXX.,n,GotoIf($[${LEN(${QDIALER_AGENT})} > 6]?qm-queuedial,s,1)
exten => _XXX.,n,NoOp,Extension ${CALLERID(num)} is not logged on as agent.
exten => _XXX.,n,Playback(agent-loggedoff)
exten => _XXX.,n,Congestion
[qm-queuedial]
; We use a global variable to pass values back from the answer-detect macro.
; STATUS = U unanswered
;    = A answered    (plus CAUSECOMPLETE=C when callee hung up)
; The 'g' dial parameter must be used in order to track callee disconnecting.
; Note that we'll be using the 'h' hook in any case to do the logging when channels go down.
; We set the CDR(accountcode) for live monitoring by QM.
exten => s,1,NoOp,Outbound call -> A:${QDIALER_AGENT} N:${QDIALER_NUMBER} Q:${QDIALER_QUEUE} Ch:${QDIALER_CHANNEL}
exten => s,n,Set(CDR(accountcode)=QDIALAGI)
exten => s,n,Set(ST=${EPOCH})
exten => s,n,Set(GM=QDV-${QDIALER_AGENT})
exten => s,n,Set(GLOBAL(${GM})=U)
exten => s,n,Set(GLOBAL(${GM}ans)=0)
exten => s,n,Macro(queuelog,${ST},${UNIQUEID},${QDIALER_QUEUE},${QDIALER_AGENT},CALLOUTBOUND,-,${QDIALER_NUMBER})
exten => s,n,Dial(${QDIALER_CHANNEL},300,gM(queuedial-answer^${UNIQUEID}^${GM}^${QDIALER_QUEUE}^${QDIALER_AGENT}^${ST}))
exten => s,n,Set(CAUSECOMPLETE=${IF($["${DIALSTATUS}" = "ANSWER"]?C)})
; Trapping call termination here
exten => h,1,NoOp( "Call exiting: status ${GLOBAL(${GM})} answered at: ${GLOBAL(${GM}ans)} DS: ${DIALSTATUS}"  )
exten => h,n,Goto(case-${GLOBAL(${GM})})
exten => h,n,Hangup()
; Call unanswered
exten => h,n(case-U),Set(WT=$[${EPOCH} - ${ST}])
exten => h,n,Macro(queuelog,${EPOCH},${UNIQUEID},${QDIALER_QUEUE},${QDIALER_AGENT},ABANDON,1,1,${WT})
exten => h,n,Hangup()
; call answered: agent/callee hung
exten => h,n(case-A)i,Set(COMPLETE=${IF($["${CAUSECOMPLETE}" = "C"]?COMPLETECALLER:COMPLETEAGENT)})
exten => h,n,Set(WT=$[${GLOBAL(${GM}ans)} - ${ST}])
exten => h,n,Set(CT=$[${EPOCH} - ${GLOBAL(${GM}ans)}])
exten => h,n,Macro(queuelog,${EPOCH},${UNIQUEID},${QDIALER_QUEUE},${QDIALER_AGENT},${COMPLETE},${WT},${CT})
exten => h,n,Hangup()
[macro-queuedial-answer]
; Expecting $ARG1: uniqueid of the caller channel
;           $ARG2: global variable to store the answer results
;           $ARG3: queue name
;           $ARG4: agent name
;           $ARG5: enterqueue
;
exten => s,1,NoOp("Macro: queuedial-answer UID:${ARG1} GR:${ARG2} Q:${ARG3} A:${ARG4} E:${ARG5}")
exten => s,n,Set(NOW=${EPOCH})
exten => s,n,Set(WD=$[${NOW} - ${ARG5}])
exten => s,n,Macro(queuelog,${NOW},${ARG1},${ARG3},${ARG4},CONNECT,${WD})
exten => s,n,Set(GLOBAL(${ARG2})=A)
exten => s,n,Set(GLOBAL(${ARG2}ans)=${NOW})
; Expecting $ARG1: uniqueid of the caller channel
;           $ARG2: global variable to store the answer results
;           $ARG3: queue name
;           $ARG4: agent name
;           $ARG5: enterqueue
;
exten => s,1,NoOp("Macro: queuedial-answer UID:${ARG1} GR:${ARG2} Q:${ARG3} A:${ARG4} E:${ARG5}")
exten => s,n,Set(NOW=${EPOCH})
exten => s,n,Set(WD=$[${NOW} - ${ARG5}])
exten => s,n,Macro(queuelog,${NOW},${ARG1},${ARG3},${ARG4},CONNECT,${WD})
exten => s,n,Set(GLOBAL(${ARG2})=A)
exten => s,n,Set(GLOBAL(${ARG2}ans)=${NOW})
exten => s,n,NoOp("Macro queuedial-answer terminating" )
[macro-queuelog]
; The advantage of using this macro is that you can choose whether to use the Shell version
; (where you have complete control of what gets written) or the Application version (where you
; do not need a shellout, so it's way faster).
; Expecting  $ARG1: Timestamp
;            $ARG2: Call-id
;            $ARG3: Queue
;            $ARG4: Agent
;            $ARG5: Verb
;            $ARG6: Param1
;            $ARG7: Param2
;            $ARG8: Param3
;
;exten => s,1,System( echo "${ARG1}|${ARG2}|${ARG3|${ARG4}|${ARG5}|${ARG6}|${ARG7}|${ARG8}" >> /var/log/asterisk/queue_log )
exten => s,1,QueueLog(${ARG3},${ARG2},${ARG4},${ARG5},${ARG6}|${ARG7}|${ARG8})
; --------------------------------------------------------------------
; $Log: extensions_queuemetrics.conf,v $
; Revision 1.7  2009/02/16 10:37:47  marcos
; #619: Add AddQueueMember and RemoveQueueMember triggering buttons on agent's live page.
; Revision 1.6  2009/02/10 18:17:26  lenz
; Bug #498: CALLOUTBOUND
; Revision 1.5  2009/01/12 12:05:47  marcos
; #600 Added QM_LOGIN on all asterisk dialplan calls
; Revision 1.4  2008/06/10 16:53:50  lenz
; Aggiunto[queuedial-loggedon] per tutorial outbound 2.0
; Revision 1.3  2008/06/07 11:16:58  lenz
; Pure-scripting outbound solution.
; Revision 1.2  2007/07/30 15:43:55  lenz
; Bug #173: default compatibili con TrixBox.
; Revision 1.1  2007/06/18 13:30:24  lenz
; Prima versione.

This happens if either party hangs up I was readding the other threads and it dosen't make a difference which ends terminates the call. Any agent as well and it's not every call either.

Richie  ???


18
QueueMetrics installation / Admin Logon
« on: March 31, 2010, 16:07:39 »
This is a simple question but I am having a brain #$@$ right now, where do you setup the login information for visitors and how do you restrict what they see in their view. I am looking to give a company access to only their Queue Stats. Better yet can I give them a logon to the system that would show only their queue stats on the realtime window?

Thanks in advance...

19
Outbound and QueueMetrics / Re: Outbound
« on: September 10, 2009, 14:50:33 »
The agents are programmed, they have the same programming as the original 4 agents, they are also assigned in the outbound queue as well. Does the system require a reboot after you add agents? I didn't think it did but I may be mistaken. In the web interface of queuemetrics the 2 new agents are programmed just as the original 4 agents.

20
Outbound and QueueMetrics / Outbound
« on: September 10, 2009, 14:47:20 »
We have a customer that has outbound reporting on agents. It was setup with help by Queuemetrics, I added 2- agents to the system and they are reporting incoming just fine. i can't remember what to do for outgoing? We have had this installed for a few months with zero issues so i have been away from the system for that long as well. Can someone please ppoke me with what I am missing to get these 2 new agents to show up in my outbound Queue! Thanks in advance ...

21
QueueMetrics installation / Re: DND
« on: August 12, 2009, 17:03:15 »
OK think I have it figured out with the help of the posts I have read. An agent can use the agent logon portal to do what I am looking for, they are testing this now to see if the pause in the portal will pause all queues assigned to an agent... amazing what you find when you look first  :-[

22
QueueMetrics installation / Re: DND
« on: August 12, 2009, 16:44:13 »
Sorry guys just found it in another post to not use the DND key my situation is a little different then the first request. If DND can not be used is their a way to have one pause key for all queues? ???

23
QueueMetrics installation / DND
« on: August 12, 2009, 16:38:44 »
I have a Queuemetrics customer that would like to know if the DND key can be tracked by Queuemetrics? If not can their be just one pause button on the telephone for all queues that an agent belongs to? Thanks for you help in advance, we are using PIAF and the Aastra scripts on 57i telephones for the pause key.

Richie

24
Outbound and QueueMetrics / Re: Please help
« on: July 06, 2009, 14:10:00 »
Thank you that was it, we found it on Sunday but that was the fix ...thanks Hero

25
Outbound and QueueMetrics / Please help
« on: July 03, 2009, 03:37:11 »
I am not that great with dial plans, we had your engineering write the dial plan for outbound calling so we could monitor the system. The monitoring works fine but we have two issues one issue was the adding of the digit 1 to all outgoing calls... I found that and removed it from the queuedial ... the one thats really bad is our outbound calls are showing the freepbx extension number and not the Outbound Caller ID in freepbx... this is serious because they need to have our call back number ... can someone please show me what to add or delete in the outgoing settings for queuedial ...

If I can't get the caller ID of the freepbx for the extension where can I hard code in for the agents only this number (8643352720) so the called party has our call back number.

Below is whats in the system ... and where I found the digit 1 being inputed.

[queuedial]
; this piece of dialplan is just a calling hook into the [qm-queuedial] context that actually does the
; outbound dialing - replace as needed - just fill in the same variables.
exten => _XXX.,1,Set(QDIALER_QUEUE=q-${EXTEN:0:3})
exten => _XXX.,n,Set(QDIALER_NUMBER=${EXTEN:3})
exten => _XXX.,n,Set(QDIALER_AGENT=Agent/${CALLERID(num)})
exten => _XXX.,n,Set(QDIALER_CHANNEL=Zap/g0/${QDIALER_NUMBER})
exten => _XXX.,n,Set(QueueName=${QDIALER_QUEUE})
exten => _XXX.,n,MixMonitor(Q-${QDIALER_QUEUE}-${UNIQUEID}.WAV|b|)
exten => _XXX.,n,Goto(qm-queuedial,s,1)
include => from-internal

[queuedial-loggedon]
; This piece of dialplan will let only logged on agents dial out
exten => _XXX.,1,Set(QDIALER_QUEUE=q-${EXTEN:0:3})
exten => _XXX.,n,Set(QDIALER_NUMBER=${EXTEN:3})
exten => _XXX.,n,Set(QDIALER_AGENT=Agent/${AGENTBYCALLERID_${CALLERID(num)}})
exten => _XXX.,n,Set(QDIALER_CHANNEL=SIP/${QDIALER_NUMBER})
exten => _XXX.,n,Set(QueueName=${QDIALER_QUEUE})
exten => _XXX.,n,MixMonitor(Q-${QDIALER_QUEUE}-${UNIQUEID}.WAV|b|)
exten => _XXX.,n,GotoIf($[${LEN(${QDIALER_AGENT})} > 6]?qm-queuedial,s,1)
exten => _XXX.,n,NoOp,Extension ${CALLERID(num)} is not logged on as agent.
exten => _XXX.,n,Playback(agent-loggedoff)
exten => _XXX.,n,Congestion


[qm-queuedial]
; We use a global variable to pass values back from the answer-detect macro.
; STATUS = U unanswered
;        = A answered    (plus CAUSECOMPLETE=C when callee hung up)
; The 'g' dial parameter must be used in order to track callee disconnecting.
; Note that we'll be using the 'h' hook in any case to do the logging when channels go down.
; We set the CDR(accountcode) for live monitoring by QM.
;
exten => s,1,NoOp,Outbound call -> A:${QDIALER_AGENT} N:${QDIALER_NUMBER} Q:${QDIALER_QUEUE} Ch:${QDIALER_CHANNEL}
exten => s,n,Set(CDR(accountcode)=QDIALAGI)
exten => s,n,Set(ST=${EPOCH})
exten => s,n,Set(GM=QDV-${QDIALER_AGENT})
exten => s,n,Set(GLOBAL(${GM})=U)
exten => s,n,Set(GLOBAL(${GM}ans)=0)
exten => s,n,Macro(queuelog,${ST},${UNIQUEID},${QDIALER_QUEUE},${QDIALER_AGENT},CALLOUTBOUND,-,${QDIALER_NUMBER})
exten => s,n,Dial(${QDIALER_CHANNEL},300,gM(queuedial-answer^${UNIQUEID}^${GM}^${QDIALER_QUEUE}^${QDIALER_AGENT}^${ST}))
exten => s,n,Set(CAUSECOMPLETE=${IF($["${DIALSTATUS}" = "ANSWER"]?C)})




26
QueueMetrics installation / Re: Call monitoring
« on: June 01, 2009, 15:05:51 »
Thanks will try today and post back...

27
QueueMetrics installation / Call monitoring
« on: May 30, 2009, 20:59:43 »
I am a newbie so please forgive me if I am asking something easy, I have just installed my first twenty agent system and am having a few issues... The first is their is no telephone icon to click for call monitoring. I  am using asterisk 1.4 with freePBX 2.5 I did upgrade to the latest queuemetrics when I received my permanent licenses.

Also I can not see the agents when they are making outgoing calls, I don't see where any options are in the GUI for outgoing anything...   ???

Pages: 1 [2]