QueueMetrics > Outbound and QueueMetrics
Problem in outbound queue
mirof:
Hi,
I've a problem in outbound queues Agent placing calls can'be identified.
In extensions_custom.conf I put:
; Queue out
[queuedial]
exten => _X.,1,SetVar(MY_QUE=${EXTEN:0:1})
exten => _X.,2,SetVar(MY_NUM=${EXTEN:1})
exten => _X.,3,Set(MY_AGENT=${AGENTBYCALLERID_${CALLERIDNUM})
exten => _X.,4,NoOp,Ag: ${MY_AGENT} N: ${MY_NUM} Q: ${MY_QUE}
exten => _X.,5,NoOp,MixMonitor(Q-${MY_QUE}-${UNIQUEID}.wav|b|)
exten => _X.,6,DeadAGI(queueDial.agi|${MY_NUM}|SIP/pri0/${MY_NUM}|q-${MY_QUE}|Agent/${MY_AGENT})
exten => _X.,7,Congestion
When Agents make calls using the right outbound route ${MY_AGENT} is always empty so in queue_log I can't identify who makes the call, I can only see Agent/ , and in real time monitor the same.
Anyone can help me?
My Setup:
Queuemetrics 1.4.2
on
Trixbox 2.2.4 (Asterisk 1.2.22)
Thanks
---Fabio
QueueMetrics:
Not sure if it's a typo, but
--- Code: ---Set(MY_AGENT=${AGENTBYCALLERID_${CALLERIDNUM})
--- End code ---
Is lacking at least one }!
mirof:
Oh Gosh!
Youre right! it's' not a typo.
I fixed my mistake but it still won't work
I tried to change ${CALLERIDNUM} which is deprecated with other variables
such as ${CALLERID(num)} or ${AMPUSER} but I got no results.
QueueMetrics:
I would do the following:
- Start a call from one agent and leave it open
- Find the Asterisk channel name through the CLI
--- Code: ---aleph*CLI> show channels
Channel Location State Application(Data)
H323/ip$10.10.3.6:22 s@coda-dps:9 Up Queue(queue-dps|t|http://www.p
--- End code ---
- Show the details of the channel, like:
--- Code: ---aleph*CLI> show channel H323/ip$10.10.3.6:2256/14
-- General --
Name: H323/ip$10.10.3.6:2256/14
Type: H323
UniqueID: 1194167463.819
Caller ID: 21
Caller ID Name: test
.....
-- PBX --
Context: coda-dps
Extension: s
Priority: 9
.....
Variables:
MACRO_DEPTH=0
SYSTEMSTATUS=SUCCESS
TRANSFER_CONTEXT=queuetransfer
CallRefNum=1194167463.819
QueueName=queue-dps
MONITOR_FILENAME=DPS-1194167463.819
--- End code ---
So you can spot what is correct for you to read.
mirof:
Ok,
in my channels detail a can see my callerID number but my variable is always empty. :-\
Perhaps i fount something interesting.
The trouble appears only if the agent logs in using queuemetrics web interface which uses the custom extension:
; 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" )
exten => 20,3,AgentCallBackLogin(${AGENTCODE}||${AGENT_EXT})
exten => 20,4,Hangup
If i do the login procedure directly from the phone using trixbox interactive AgentCallBackLogin it works fine using:
; Agent Login
exten => 123,1,AgentCallBackLogin(|${CALLERID(number)}@from-internal)
I tracked back both login procedures and there is something interesting:
1st login proc:
--- Code: --- -- Executing Answer("Local/20@queuemetrics-7a7e,2", "") in new stack
-- Executing NoOp("Local/20@queuemetrics-7a7e,2", " "QM: Logging on Agent/4026 to extension 219@from-internal" ") in new stack
-- Executing AgentCallbackLogin("Local/20@queuemetrics-7a7e,2", "4026||219") in new stack
> Channel Local/20@queuemetrics-7a7e,1 was answered.
-- Executing Answer("Local/20@queuemetrics-7a7e,1", "") in new stack
-- Executing Wait("Local/20@queuemetrics-7a7e,1", "10") in new stack
-- Executing Answer("Local/20@queuemetrics-7a7e,2", "") in new stack
-- Executing NoOp("Local/20@queuemetrics-7a7e,2", " "QM: Logging on Agent/4026 to extension 219@from-internal" ") in new stack
-- Executing AgentCallbackLogin("Local/20@queuemetrics-7a7e,2", "4026||219") in new stack
> Channel Local/20@queuemetrics-7a7e,1 was answered.
-- Executing Answer("Local/20@queuemetrics-7a7e,1", "") in new stack
-- Executing Wait("Local/20@queuemetrics-7a7e,1", "10") in new stack
-- Playing 'agent-loginok' (language 'en')
-- Playing 'agent-loginok' (language 'en')
== Callback Agent '4026' logged in on 219
== Callback Agent '4026' logged in on 219
-- Executing Hangup("Local/20@queuemetrics-7a7e,2", "") in new stack
--- End code ---
2nd login proc:
--- Code: --- -- Executing AgentCallbackLogin("SIP/219-09f06180", "|219@from-internal") in new stack
-- Playing 'agent-user' (language 'it')
-- Executing AgentCallbackLogin("SIP/219-09f06180", "|219@from-internal") in new stack
-- Playing 'agent-user' (language 'it')
-- Playing 'agent-newlocation' (language 'it')
-- Playing 'agent-newlocation' (language 'it')
== Setting global variable 'AGENTBYCALLERID_219' to '4026'
== Setting global variable 'AGENTBYCALLERID_219' to '4026'
-- Playing 'agent-loginok' (language 'it')
-- Playing 'agent-loginok' (language 'it')
== Callback Agent '4026' logged in on 219
== Callback Agent '4026' logged in on 219
-- Playing 'vm-goodbye' (language 'it')
-- Playing 'vm-goodbye' (language 'it')
== Spawn extension (from-internal, 123, 1) exited non-zero on 'SIP/219-09f06180'
-- Executing Macro("SIP/219-09f06180", "hangupcall") in new stack
-- Executing ResetCDR("SIP/219-09f06180", "w") in new stack
-- Executing NoCDR("SIP/219-09f06180", "") in new stack
-- Executing GotoIf("SIP/219-09f06180", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,6)
-- Executing GotoIf("SIP/219-09f06180", "1?theend") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing Wait("SIP/219-09f06180", "5") in new stack
== Spawn extension (from-internal, 123, 1) exited non-zero on 'SIP/219-09f06180'
-- Executing Macro("SIP/219-09f06180", "hangupcall") in new stack
--- End code ---
In the 2nd one we can see:
== Setting global variable 'AGENTBYCALLERID_219' to '4026'
== Setting global variable 'AGENTBYCALLERID_219' to '4026'
??? I think it could be the matter.
Now, how can i force the same behaviour even if i do the login procedure from web interface?
Thanks for help.
Navigation
[0] Message Index
[#] Next page
Go to full version