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.


Topics - jhfitness

Pages: [1]
1
Running QueueMetrics / Weekly call answer percent?
« on: January 09, 2014, 21:49:04 »
Is there a way to get a graph of the percent of answered/unanswered calls per time unit (preferrably weekly)? I can put it in a custom time range and get the percent answered/unanswered for that whole range, and I can keep selecting different ranges, but only one at a time. Since that exists though I wonder if it means there is also a built-in way to look at averages broken out by week or month within a longer range, and I just can't find it.

2
QueueMetrics installation / Upgrade to 13.12 - Espresso failure notice
« on: December 19, 2013, 18:02:28 »
Getting "Warning: The Espresso installation failed!" on login screen after upgrading to 13.12. However I can log in fine, it still shows calls and is importing new calls, says 13.12.1 on License Page. Restarted server and error message persists. Not familiar with Espresso, what should I look for to see if anything is actually broken vs. the error message just displaying and everything being OK?

(FreePBX 2.11.0.11, filling out a ticket, just wondering if there's a quick way to see if something is truly broken or not.)

3
Hello we have upgraded Asterisk to 11.3.0 and I'm having a minor issue with outbound calls... They are being imported into queuemetrics correctly but the agent field, instead of storing as "Agent/123" previously (where 123 was the employee's extension), they are all storing as "Agent/636xxxxxxx" where (xxxxxxx is our business phone number). Do we need to change what the QDIALER_AGENT is set to in [queuedial]?

Code: [Select]
exten => _XXX.,1,Set(QDIALER_QUEUE=q-340)
exten => _XXX.,n,Set(QDIALER_NUMBER=${EXTEN:1})
exten => _XXX.,n,Set(QDIALER_AGENT=Agent/${CALLERID(num)})
exten => _XXX.,n,Set(QDIALER_CHANNEL=SIP/VP-SIPSJC/+1${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)

[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()
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,Set(CALLERID(all)=<636xxxxxxx>)
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)})

4
Updated to 13.04.1 last week. User trying to run custom report, getting this error after changing Call start date and Call end date (ex. 2013-02-05 and 2013-02-08) but changing/selecting nothing else:

"Alert: Error: Multiple selection criteria lead to no agent being selectable"

Is there something we need to be selecting here?

Thanks.

5
QM has been running great for awhile now with little maintenance, looks like we are on 12.5.1 right now. Today employees noticed there was no call data for yesterday or today. I looked and the last heartbeat was from a couple days ago... looks like the server may have barfed then. Anyway, the queue_log was still updating properly but qloaderd.log was not. I manually imported the data from the last couple days into QM with qloader.pl, but where do I need to look to get it going again? Already tried "service queuemetrics restart".

6
QueueMetrics installation / What's new for 12.02?
« on: March 21, 2012, 14:56:13 »
What's new with 12.02? yum update wants to upgrade us to 12.2.4-313 but I can't find a changelog and the latest news on the website is for 12.01.

7
Running QueueMetrics / Bug in editing Items?
« on: May 26, 2011, 20:44:20 »
Hello, may have discovered a bug when going to QA Forms > Edit Items. If an item is in use the Engagement Code field is disabled. The bug is that if you try to "Create New" item after viewing an item in use, the Engagement Code is still disabled for the new item, which means you cannot create the item. This issue is resolved by going back and viewing an item that is not in use, where the Engagement Code field is not disabled. Then when you "Create New" the Engagement Code field is no longer disabled. (Bug found on Firefox 3.x)

If you can replicate this error please at least fix it so that on "Create New" the field is not disabled no matter what you previously viewed. Ideally you could also update it so that it is always possible to change the Engagement Code, even if the item is already in forms. (Today we had a user that was setting up new items, putting them in forms, and then decided to rename one but had to take it back out of the form first)

Thanks.

8
We had a grouped queue for reports on all of our inbound queues, but I wanted to make one that included our outbound also so we could quickly see look at certain totals (I realize that some of the stats don't make much sense with both types). So I basically just cloned our existing queue and added our outbound queue to the Queue(s) list separated by | .

Everything works as expected, however I was initially confused by the "Call Flow" line which has the default choices of "Inbound calls / Outbound calls / Undefined." In general I guess this is for the single queues but I was afraid it wouldn't work for my grouped queue which has both Inbound and Outbound calls. I left it on Inbound and my report still had stats from both types, so I'm guessing that it doesn't really matter for the grouped queue but I just wanted to make sure I'm using this correctly.

9
General Asterisk configuration / Migrating QM to new server
« on: February 09, 2011, 15:33:06 »
We're gonna be setting up a fresh phone server (asterisk, same as before) and moving our QM with it. I've taken notes on the files I've manually edited outside the QM folders, and I think we can handle moving the database logs, but what config files do I need to make sure we don't lose the front-end customizations our employees have made (agents, queues, etc). Are we covered if we copy everything in webapps/queuemetrics-#/WEB-INF folder or should I look around for other things as well?

10
I've been browsing every help file and forum topic I can find but I can't figure out how to get Outbound call log working with our otherwise perfectly functioning system. I've got the extensions_queuemetrics.conf file with the following details:

Code: [Select]
[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=SIP/${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)

[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()
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})
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})

and I've it included in extensions_custom.conf

I made a queue in QM called "q-340" and I tried adding 340 when dialing out numbers but Asterisk doesn't want to complete the call, period:

Code: [Select]
-- Executing [3406365551234@from-internal:1] ResetCDR("SIP/118-05c00ae0", "") in new stack
    -- Executing [3406365551234@from-internal:2] NoCDR("SIP/118-05c00ae0", "") in new stack
    -- Executing [3406365551234@from-internal:3] Wait("SIP/118-05c00ae0", "1") in new stack
    -- Executing [3406365551234@from-internal:4] Playback("SIP/118-05c00ae0", "silence/1&cannot-complete-as-dialed&check-number-dial-again|noanswer") in new stack
    -- <SIP/118-05c00ae0> Playing 'silence/1' (language 'en')
    -- <SIP/118-05c00ae0> Playing 'cannot-complete-as-dialed' (language 'en')
    -- <SIP/118-05c00ae0> Playing 'check-number-dial-again' (language 'en')
    -- Executing [3406365551234@from-internal:5] Wait("SIP/118-05c00ae0", "1") in new stack
    -- Executing [3406365551234@from-internal:6] Congestion("SIP/118-05c00ae0", "20") in new stack
  == Spawn extension (from-internal, 3406365551234, 6) exited non-zero on 'SIP/118-05c00ae0'
    -- Executing [h@from-internal:1] Macro("SIP/118-05c00ae0", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("SIP/118-05c00ae0", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,4)
    -- Executing [s@macro-hangupcall:4] GotoIf("SIP/118-05c00ae0", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,7)
    -- Executing [s@macro-hangupcall:7] GotoIf("SIP/118-05c00ae0", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s@macro-hangupcall:9] Hangup("SIP/118-05c00ae0", "") in new stack
  == Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/118-05c00ae0' in macro 'hangupcall'
  == Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/118-05c00ae0'

Do I need to define 340 somewhere else? How do I know that it's even reading my _XXX? Not sure where to start troubleshooting.

11
I have data from the last couple of weeks going into the sql:P001 database. However I have some old logs such as queue_log.2, queue_log.4, etc, that I would like to manually dump into the database before they are rotated away.

I found this in the user manuals, is this what I want to do?

Quote
To test that the qloader script is working, try the following command:

./qloader.pl /var/log/asterisk/queue_log P02 /var/log/asterisk/qloader.log

This command will try uploading the contents of the file /var/log/asterisk/queue_log to partition P02 of the chosen database, writing its own log on /var/log/asterisk/qloader.log. When the program is running no output is written on stdout; if you want to know how the loading is going you have to consult its own log file.

but with /queue_log.X P001 ?

Thanks

12
Running QM 1.6.1.1

I've learned how to change the default log file in configuration.properties to come from the qloader database (sql:P001) and it's working on Custom Reports. But as far as I can tell Quick Activity Report is not pulling from the same file, and I can't figure out where to change the place it pulls data from (right now it appears to only be showing from dates that are in queue_log.1)

Also, the Agent Report doesn't show any data at all.

Pages: [1]