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:
-- 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
2nd login proc:
-- 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
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.