QueueMetrics > Outbound and QueueMetrics

Popping a URL with Outgoing Call

<< < (2/3) > >>

QueueMetrics:
You should:
1- make sure that the number is a number only, e.g. "12345" and not "-,12345"
2- define a default URL for the outbound queue.


sbs:
Thanks for your reply. I hope my detailed reply helps us resolve this.
I'm on the system now to be sure that things are what they're supposed to be.

The URL is configured for the queue as "http://sjmcall.********.com" , and we are entering only the 11 digit phone number to dial, when clicking "Dial" on Queuemetrics. There is only one outbound queue configured, with 3 inbound queues. The inbound queue that is for this campaign has the same URL as the outbound queue configured, and it works properly. The inbound queue successfully pops the following:

--- Code: ---http://sjmcall.********.com/IncomingCall.aspx?CallID=1264702633.5616&CallerID=8005551212
--- End code ---
However, as stated before, the outbound queue pops:

--- Code: ---http://192.168.123.123:8180/queuemetrics/qm/-,18005551212,
--- End code ---
which causes a 404 error in tomcat.

We're using version 1.9 of extensions_queuemetrics.conf. The following is the queuedial context from within this file as we've configured it:

--- Code: ---[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:4})
exten => _XXX.,n,Set(QDIALER_NUMBER=${EXTEN:4})
exten => _XXX.,n,Set(QDIALER_AGENT=Agent/${CALLERID(num)})
exten => _XXX.,n,Set(QDIALER_CHANNEL=SIP/Qwest/${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)
--- End code ---

Here is the first section of the qm-queuedial context:

--- Code: ---[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},30,gM(queuedial-answer^${UNIQUEID}^${GM}^${QDIALER_QUEUE}^${QDIALER_AGENT}^${ST}))
exten => s,n,Set(CAUSECOMPLETE=${IF($["${DIALSTATUS}" = "ANSWER"]?C)})
--- End code ---

As far as I can tell, there is supposed to be a ,-, in the queuelog. I searched the forum and found many other mentions of this exact syntax, but no mention of it not working properly.

Here is what I see in the CLI when placing the call:

--- Code: ---  == Manager 'queuemetrics' logged on from 127.0.0.1
    -- Executing [7040@from-internal:1] Macro("Local/7040@from-internal-7abd;2", "exten-vm,7040,7040") in new stack
    -- Executing [s@macro-exten-vm:1] Macro("Local/7040@from-internal-7abd;2", "user-callerid") in new stack
    -- Executing [s@macro-user-callerid:1] Set("Local/7040@from-internal-7abd;2", "AMPUSER=") in new stack
    -- Executing [s@macro-user-callerid:2] GotoIf("Local/7040@from-internal-7abd;2", "1?report") in new stack
    -- Goto (macro-user-callerid,s,9)
    -- Executing [s@macro-user-callerid:9] GotoIf("Local/7040@from-internal-7abd;2", "0?continue") in new stack
    -- Executing [s@macro-user-callerid:10] Set("Local/7040@from-internal-7abd;2", "__TTL=64") in new stack
    -- Executing [s@macro-user-callerid:11] GotoIf("Local/7040@from-internal-7abd;2", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,18)
    -- Executing [s@macro-user-callerid:18] NoOp("Local/7040@from-internal-7abd;2", "Using CallerID "" <>") in new stack
    -- Executing [s@macro-exten-vm:2] Set("Local/7040@from-internal-7abd;2", "RingGroupMethod=none") in new stack
    -- Executing [s@macro-exten-vm:3] Set("Local/7040@from-internal-7abd;2", "VMBOX=7040") in new stack
    -- Executing [s@macro-exten-vm:4] Set("Local/7040@from-internal-7abd;2", "EXTTOCALL=7040") in new stack
    -- Executing [s@macro-exten-vm:5] Set("Local/7040@from-internal-7abd;2", "CFUEXT=") in new stack
    -- Executing [s@macro-exten-vm:6] Set("Local/7040@from-internal-7abd;2", "CFBEXT=") in new stack
    -- Executing [s@macro-exten-vm:7] Set("Local/7040@from-internal-7abd;2", "RT=15") in new stack
    -- Executing [s@macro-exten-vm:8] Macro("Local/7040@from-internal-7abd;2", "record-enable,7040,IN") in new stack
    -- Executing [s@macro-record-enable:1] GotoIf("Local/7040@from-internal-7abd;2", "1?check") in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing [s@macro-record-enable:4] AGI("Local/7040@from-internal-7abd;2", "recordingcheck,20100128-131340,1264702420.5612") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
 recordingcheck,20100128-131340,1264702420.5612: Inbound recording not enabled
    -- <Local/7040@from-internal-7abd;2>AGI Script recordingcheck completed, returning 0
    -- Executing [s@macro-record-enable:5] MacroExit("Local/7040@from-internal-7abd;2", "") in new stack
    -- Executing [s@macro-exten-vm:9] Macro("Local/7040@from-internal-7abd;2", "dial,15,tr,7040") in new stack
    -- Executing [s@macro-dial:1] GotoIf("Local/7040@from-internal-7abd;2", "1?dial") in new stack
    -- Goto (macro-dial,s,3)
    -- Executing [s@macro-dial:3] AGI("Local/7040@from-internal-7abd;2", "dialparties.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
 dialparties.agi: Starting New Dialparties.agi
 dialparties.agi: Caller ID name is 'unknown' number is 'unknown'
       > dialparties.agi: USE_CONFIRMATION:  'FALSE'
       > dialparties.agi: RINGGROUP_INDEX:   ''
 dialparties.agi: Methodology of ring is  'none'
    -- dialparties.agi: Added extension 7040 to extension map
    -- dialparties.agi: Extension 7040 cf is disabled
    -- dialparties.agi: Extension 7040 do not disturb is disabled
       > dialparties.agi: extnum 7040 has:  cw: 1; hascfb: 0 [] hascfu: 0 []
 dialparties.agi: EXTENSION_STATE: 0 (NOT_INUSE)
    -- dialparties.agi: DbDel CALLTRACE/7040 - Caller ID is not defined
    -- dialparties.agi: Filtered ARG3: 7040
    -- <Local/7040@from-internal-7abd;2>AGI Script dialparties.agi completed, returning 0
    -- Executing [s@macro-dial:7] Dial("Local/7040@from-internal-7abd;2", "SIP/3005&SIP/2999,15,tr") in new stack
  == Using SIP RTP CoS mark 5
    -- Called 3005
  == Using SIP RTP CoS mark 5
    -- Called 2999
    -- SIP/2999-640745b8 is ringing
    -- SIP/3005-6425f7b8 is ringing
    -- SIP/2999-640745b8 answered Local/7040@from-internal-7abd;2
       > Channel Local/7040@from-internal-7abd;1 was answered.
    -- Executing [28@queuemetrics:1] Answer("Local/7040@from-internal-7abd;1", "") in new stack
    -- Executing [28@queuemetrics:2] NoOp("Local/7040@from-internal-7abd;1", " "QM: Agent Custom Dial. Dialing 18005551212 on queue 5105  made by 'Agent/7040'" ") in new stack
    -- Executing [28@queuemetrics:3] Set("Local/7040@from-internal-7abd;1", "QDIALER_QUEUE=5105") in new stack
    -- Executing [28@queuemetrics:4] Set("Local/7040@from-internal-7abd;1", "QDIALER_NUMBER=18005551212") in new stack
    -- Executing [28@queuemetrics:5] Set("Local/7040@from-internal-7abd;1", "QDIALER_AGENT=Agent/7040") in new stack
    -- Executing [28@queuemetrics:6] Set("Local/7040@from-internal-7abd;1", "QDIALER_CHANNEL=SIP/Qwest/18005551212") in new stack
    -- Executing [28@queuemetrics:7] Set("Local/7040@from-internal-7abd;1", "QueueName=5105") in new stack
    -- Executing [28@queuemetrics:8] Goto("Local/7040@from-internal-7abd;1", "qm-queuedial,s,1") in new stack
    -- Goto (qm-queuedial,s,1)
    -- Executing [s@qm-queuedial:1] NoOp("Local/7040@from-internal-7abd;1", ""Outbound call -> A:Agent/7040 N:18005551212 Q:5105 Ch:SIP/Qwest/18005551212"") in new stack
    -- Executing [s@qm-queuedial:2] Set("Local/7040@from-internal-7abd;1", "CDR(accountcode)=QDIALAGI") in new stack
    -- Executing [s@qm-queuedial:3] Set("Local/7040@from-internal-7abd;1", "ST=1264702423") in new stack
    -- Executing [s@qm-queuedial:4] Set("Local/7040@from-internal-7abd;1", "GM=QDV-Agent/7040") in new stack
    -- Executing [s@qm-queuedial:5] Set("Local/7040@from-internal-7abd;1", "GLOBAL(QDV-Agent/7040)=U") in new stack
  == Setting global variable 'QDV-Agent/7040' to 'U'
    -- Executing [s@qm-queuedial:6] Set("Local/7040@from-internal-7abd;1", "GLOBAL(QDV-Agent/7040ans)=0") in new stack
  == Setting global variable 'QDV-Agent/7040ans' to '0'
    -- Executing [s@qm-queuedial:7] Macro("Local/7040@from-internal-7abd;1", "queuelog,1264702423,1264702420.5611,5105,Agent/7040,CALLOUTBOUND,-,18005551212") in new stack
    -- Executing [s@macro-queuelog:1] QueueLog("Local/7040@from-internal-7abd;1", "5105,1264702420.5611,Agent/7040,CALLOUTBOUND,-,18005551212,") in new stack
    -- Executing [s@qm-queuedial:8] Dial("Local/7040@from-internal-7abd;1", "SIP/Qwest/18005551212,30,gM(queuedial-answer^1264702420.5611^QDV-Agent/7040^5105^Agent/7040^1264702423)") in new stack
  == Using SIP RTP CoS mark 5
    -- Called Qwest/18005551212
    -- Local/7040@from-internal-7abd;1 requested special control 20, passing it to SIP/Qwest-64055008
  == Manager 'queuemetrics' logged off from 127.0.0.1
    -- SIP/Qwest-64055008 is making progress passing it to Local/7040@from-internal-7abd;1
    -- Local/7040@from-internal-7abd;1 requested special control 20, passing it to SIP/Qwest-64055008
    -- Local/7040@from-internal-7abd;1 requested special control 20, passing it to SIP/Qwest-64055008
    -- SIP/Qwest-64055008 is ringing
    -- SIP/Qwest-64055008 is making progress passing it to Local/7040@from-internal-7abd;1
    -- Local/7040@from-internal-7abd;1 requested special control 20, passing it to SIP/Qwest-64055008
    -- Local/7040@from-internal-7abd;1 requested special control 20, passing it to SIP/Qwest-64055008
    -- Local/7040@from-internal-7abd;1 requested special control 20, passing it to SIP/Qwest-64055008
    -- Local/7040@from-internal-7abd;1 requested special control 20, passing it to SIP/Qwest-64055008
    -- SIP/Qwest-64055008 answered Local/7040@from-internal-7abd;1
    -- Executing [s@macro-queuedial-answer:1] NoOp("SIP/Qwest-64055008", ""Macro: queuedial-answer UID:1264702420.5611 GR:QDV-Agent/7040 Q:5105 A:Agent/7040 E:1264702423"") in new stack
    -- Executing [s@macro-queuedial-answer:2] Set("SIP/Qwest-64055008", "NOW=1264702434") in new stack
    -- Executing [s@macro-queuedial-answer:3] Set("SIP/Qwest-64055008", "WD=11") in new stack
    -- Executing [s@macro-queuedial-answer:4] Macro("SIP/Qwest-64055008", "queuelog,1264702434,1264702420.5611,5105,Agent/7040,CONNECT,11") in new stack
    -- Executing [s@macro-queuelog:1] QueueLog("SIP/Qwest-64055008", "5105,1264702420.5611,Agent/7040,CONNECT,11,,") in new stack
    -- Executing [s@macro-queuedial-answer:5] Set("SIP/Qwest-64055008", "GLOBAL(QDV-Agent/7040)=A") in new stack
  == Setting global variable 'QDV-Agent/7040' to 'A'
    -- Executing [s@macro-queuedial-answer:6] Set("SIP/Qwest-64055008", "GLOBAL(QDV-Agent/7040ans)=1264702434") in new stack
  == Setting global variable 'QDV-Agent/7040ans' to '1264702434'
    -- Executing [s@macro-queuedial-answer:7] NoOp("SIP/Qwest-64055008", ""Macro queuedial-answer terminating" ") in new stack
    -- Executing [s@qm-queuedial:9] Set("Local/7040@from-internal-7abd;1", "CAUSECOMPLETE=C") in new stack
    -- Auto fallthrough, channel 'Local/7040@from-internal-7abd;1' status is 'ANSWER'
    -- Executing [h@qm-queuedial:1] NoOp("Local/7040@from-internal-7abd;1", " "Call exiting: status A answered at: 1264702434 DS: ANSWER"  ") in new stack
    -- Executing [h@qm-queuedial:2] Goto("Local/7040@from-internal-7abd;1", "case-A") in new stack
    -- Goto (qm-queuedial,h,7)
    -- Executing [h@qm-queuedial:7] Set("Local/7040@from-internal-7abd;1", "COMPLETE=COMPLETECALLER") in new stack
    -- Executing [h@qm-queuedial:8] Set("Local/7040@from-internal-7abd;1", "WT=11") in new stack
    -- Executing [h@qm-queuedial:9] Set("Local/7040@from-internal-7abd;1", "CT=2") in new stack
    -- Executing [h@qm-queuedial:10] Macro("Local/7040@from-internal-7abd;1", "queuelog,1264702436,1264702420.5611,5105,Agent/7040,COMPLETECALLER,11,2") in new stack
    -- Executing [s@macro-queuelog:1] QueueLog("Local/7040@from-internal-7abd;1", "5105,1264702420.5611,Agent/7040,COMPLETECALLER,11,2,") in new stack
    -- Executing [h@qm-queuedial:11] Hangup("Local/7040@from-internal-7abd;1", "") in new stack
  == Spawn extension (qm-queuedial, h, 11) exited non-zero on 'Local/7040@from-internal-7abd;1'
    -- Executing [h@macro-dial:1] Macro("Local/7040@from-internal-7abd;2", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("Local/7040@from-internal-7abd;2", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,4)
    -- Executing [s@macro-hangupcall:4] GotoIf("Local/7040@from-internal-7abd;2", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,7)
    -- Executing [s@macro-hangupcall:7] GotoIf("Local/7040@from-internal-7abd;2", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s@macro-hangupcall:9] Hangup("Local/7040@from-internal-7abd;2", "") in new stack
  == Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'Local/7040@from-internal-7abd;2' in macro 'hangupcall'
  == Spawn extension (macro-dial, h, 1) exited non-zero on 'Local/7040@from-internal-7abd;2'
  == Spawn extension (macro-dial, s, 7) exited non-zero on 'Local/7040@from-internal-7abd;2' in macro 'dial'
  == Spawn extension (macro-exten-vm, s, 9) exited non-zero on 'Local/7040@from-internal-7abd;2' in macro 'exten-vm'
  == Spawn extension (from-internal, 7040, 1) exited non-zero on 'Local/7040@from-internal-7abd;2'

--- End code ---

Of course, I did a global search/replace on the phone number, but nothing else is touched.

Here is the entries in the queue_log from both an inbound and outbound call:

--- Code: ---1264702423|1264702420.5611|5105|Agent/7040|CALLOUTBOUND|-,18005551212,
1264702434|1264702420.5611|5105|Agent/7040|CONNECT|11,,
1264702436|1264702420.5611|5105|Agent/7040|COMPLETECALLER|11,2,
1264702633|1264702633.5616|5001|NONE|ENTERQUEUE||8005551212
1264702640|1264702633.5616|5001|Local/7040@from-internal|RINGNOANSWER|7000
1264702656|1264702633.5616|5001|Local/7000@from-internal/n|RINGNOANSWER|0
1264702657|1264702633.5616|5001|Local/7040@from-internal|CONNECT|24|1264702656.5623|1
1264702678|1264702633.5616|5001|Local/7040@from-internal|COMPLETECALLER|24|21|1
--- End code ---

I tried to change the queuelog line to use pipe separators, but Asterisk 1.6 doesn't like this, and it never made it to the queue_log file. I also tried to remove the ,- from the call, and that changed the queue_log to end as follows:

--- Code: ---CALLOUTBOUND|18005551212,,
--- End code ---

and QueueMetrics popped a URL with "/queuemetrics/qm/18005551212,,", which also gives a 404 error, and is not the default URL configured for the queue.

We are using version 1.5.3, with Asterisk 1.6.1.6, compiled from source on Ubuntu 9.04, with FreePBX 2.5.2.2.

Is there anything else that I can do to assist in resolving this issue. It needs to be resolved for a February go-live date.

marcos:
Hi.
Thank you for the detailed explanation.

I've replicated the problem in my debug version and I've issued an internal bug feedback (Bug 968).
It will be fixed in the next coming QueueMetrics 1.6.0beta1 version we will deliver in few weeks.

Thank you and regards,
Marco Signorini.

marcos:
Hi,
I've fixed the bug and it will be released starting from QueueMetrics 1.6.0beta1.

You can fix the problem by yourself without waiting for next coming release. The problem is effectively present in the extensions_queuemetrics.conf.

If you look at the [qm-queuedial] context, the row:


--- Code: ---exten => s,n,Macro(queuelog,${ST},${UNIQUEID},${QDIALER_QUEUE},${QDIALER_AGENT},CALLOUTBOUND,-,${QDIALER_NUMBER})

--- End code ---

you can note that there is a "-" between CALLOUTBOUND and ${QDIALER_NUMBER}. You have to remove it in order to obtain what's reported below:


--- Code: ---exten => s,n,Macro(queuelog,${ST},${UNIQUEID},${QDIALER_QUEUE},${QDIALER_AGENT},CALLOUTBOUND,,${QDIALER_NUMBER})

--- End code ---

Followed by an Asterisk dialplan reload it should fixes the problem.

Thank you and regards.
Marco Signorini.

sbs:
Thank you for the suggestion. I think I tried this before, but I implemented the change as per your request. It produces the following in the Asterisk CLI:


--- Code: ---Executing [s@macro-queuelog:1] QueueLog("Local/7040@from-internal-eb61;1", "5105,1265064413.5779,Agent/7040,CALLOUTBOUND,,8005551212,") in new stack
--- End code ---

this is produced in the queue_log:


--- Code: ---1265064416|1265064413.5779|5105|Agent/7040|CALLOUTBOUND|,8005551212,
1265064426|1265064413.5779|5105|Agent/7040|CONNECT|10,,
1265064428|1265064413.5779|5105|Agent/7040|COMPLETEAGENT|10,2,
--- End code ---

this URL is what's popped up:


--- Code: ---http://localhost:8180/queuemetrics/qm/,8005551212,
--- End code ---

I'm willing, and I believe that my customer is also, to provide you SSH access to gather more information about the issue. If it is indeed a bug, you'll know to fix it sooner. If it is an error in setup, I'm willing to compensate you for your time.

P.S. I'm testing the system through SSH and port forwarding. That's why "localhost" is seen in the URL. :)

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version