QueueMetrics > Outbound and QueueMetrics
Call Outcome for Outbound Calls
lady_cr0ft:
??? I'm having a hard time trying to figure out a way of making it possible for the outbound agents put call dispositions to their call. Outbound calls done by agents are not reflecting on agent's logon page (unlike QM's default for inbound calls). I thought of using the Dial button but unfortunately after putting the number to be dialed, the agent's eyebeam will ring. I answered it but unfortunately instead of being connected to the number I dialed tha call was hung up.
I'm currently using QM 1.5.3, Asterisk 1.4.22 and TrixBox 2.6.2.1
EXTENSIONS_QUEUEMTRICS.CONF
;
; ============================================================================
; The following dialplan context is used by QueueMetrics
; through the manager API.
; - $Id: extensions_queuemetrics.conf,v 1.9 2009/04/09 10:18:39 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(${QM_AGENT_CODE})
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 14 makes remote monitoring possible for OUTBOUND CALLS
exten => 14,1,Answer
exten => 14,2,NoOp( "QM_AGENT_CODE: ${QM_AGENT_CODE}" )
exten => 14,3,NoOp( "QM_EXT_MONITOR: ${QM_EXT_MONITOR}" )
exten => 14,4,NoOp( "QM_AGENT_EXT: ${QM_AGENT_EXT}" )
exten => 14,5,NoOp( "QM_LOGIN: ${QM_LOGIN}" )
exten => 14,6,ChanSpy(Local/${QM_AGENT_CODE:6}@from-internal)
exten => 14,7,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(|Agent/${AGENTCODE})
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(|Agent/${AGENTCODE})
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
; extension 28: agent custom dial
exten => 28,1,Answer
exten => 28,2,NoOp( "QM: Agent Custom Dial. Dialing ${EXTTODIAL} on queue ${OUTQUEUE} made by '${QM_LOGIN}'" )
exten => 28,3,Set(QDIALER_QUEUE=${OUTQUEUE})
exten => 28,4,Set(QDIALER_NUMBER=${EXTTODIAL})
exten => 28,5,Set(QDIALER_AGENT=Agent/${AGENTCODE})
exten => 28,6,Set(QDIALER_CHANNEL=SIP/${QDIALER_NUMBER})
exten => 28,7,Set(QueueName=${QDIALER_QUEUE})
exten => 28,8,MixMonitor(Q-${QDIALER_QUEUE}-${UNIQUEID}.WAV|b|)
exten => 28,9,Goto(qm-queuedial,s,1)
exten => 28,10,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
; ================================================================
[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=${EXTEN:3:4})
exten => _XXX.,2,Set(QDIALER_NUMBER=${EXTEN:0:3}${EXTEN:7:10})
exten => _XXX.,3,Set(QDIALER_AGENT=${CALLERID(num)})
exten => _XXX.,n,Set(QDIALER_CHANNEL=SIP/216.89.76.6/${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)
[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},30,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})
lady_cr0ft:
WHAT HAPPENS IN MY CLI:
Verbosity is at least 3
== Parsing '/etc/asterisk/manager.conf': Found
== Parsing '/etc/asterisk/manager_additional.conf': Found
== Parsing '/etc/asterisk/manager_custom.conf': Found
== Manager 'admin' logged on from 127.0.0.1
-- Executing [6453@from-internal:1] Macro("Local/6453@from-internal-1d21,2", "exten-vm|novm|6453") in new stack
-- Executing [s@macro-exten-vm:1] Macro("Local/6453@from-internal-1d21,2", " user-callerid") in new stack
-- Executing [s@macro-user-callerid:1] Set("Local/6453@from-internal-1d21,2" , "AMPUSER=") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("Local/6453@from-internal-1d21 ,2", "1?report") in new stack
-- Goto (macro-user-callerid,s,11)
-- Executing [s@macro-user-callerid:11] GotoIf("Local/6453@from-internal-1d2 1,2", "0?continue") in new stack
-- Executing [s@macro-user-callerid:12] Set("Local/6453@from-internal-1d21,2 ", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:13] GotoIf("Local/6453@from-internal-1d2 1,2", "1?continue") in new stack
-- Goto (macro-user-callerid,s,20)
-- Executing [s@macro-user-callerid:20] NoOp("Local/6453@from-internal-1d21, 2", "Using CallerID "" <>") in new stack
-- Executing [s@macro-exten-vm:2] Set("Local/6453@from-internal-1d21,2", "Ri ngGroupMethod=none") in new stack
-- Executing [s@macro-exten-vm:3] Set("Local/6453@from-internal-1d21,2", "VM BOX=novm") in new stack
-- Executing [s@macro-exten-vm:4] Set("Local/6453@from-internal-1d21,2", "EX TTOCALL=6453") in new stack
-- Executing [s@macro-exten-vm:5] Set("Local/6453@from-internal-1d21,2", "CF UEXT=") in new stack
-- Executing [s@macro-exten-vm:6] Set("Local/6453@from-internal-1d21,2", "CF BEXT=") in new stack
-- Executing [s@macro-exten-vm:7] Set("Local/6453@from-internal-1d21,2", "RT =""") in new stack
-- Executing [s@macro-exten-vm:8] Macro("Local/6453@from-internal-1d21,2", " record-enable|6453|IN") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("Local/6453@from-internal-1d21 ,2", "1?check") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] AGI("Local/6453@from-internal-1d21,2" , "recordingcheck|20090722-231748|1248319068.62") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
recordingcheck|20090722-231748|1248319068.62: Inbound recording not enabled
-- AGI Script recordingcheck completed, returning 0
-- Executing [s@macro-record-enable:5] MacroExit("Local/6453@from-internal-1 d21,2", "") in new stack
-- Executing [s@macro-exten-vm:9] Macro("Local/6453@from-internal-1d21,2", " dial||tr|6453") in new stack
-- Executing [s@macro-dial:1] GotoIf("Local/6453@from-internal-1d21,2", "1?d ial") in new stack
-- Goto (macro-dial,s,3)
-- Executing [s@macro-dial:3] AGI("Local/6453@from-internal-1d21,2", "dialpa rties.agi") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
dialparties.agi: Starting New Dialparties.agi
== Parsing '/etc/asterisk/manager.conf': Found
== Parsing '/etc/asterisk/manager_additional.conf': Found
== Parsing '/etc/asterisk/manager_custom.conf': Found
== Manager 'admin' logged on from 127.0.0.1
dialparties.agi: Caller ID name is 'unknown' number is 'unknown'
dialparties.agi: Methodology of ring is 'none'
-- dialparties.agi: Added extension 6453 to extension map
-- dialparties.agi: Extension 6453 cf is disabled
-- dialparties.agi: Extension 6453 do not disturb is disabled
-- dialparties.agi: DbDel CALLTRACE/6453 - Caller ID is not defined
-- dialparties.agi: Filtered ARG3: 6453
== Manager 'admin' logged off from 127.0.0.1
-- AGI Script dialparties.agi completed, returning 0
-- Executing [s@macro-dial:7] Dial("Local/6453@from-internal-1d21,2", "SIP/6 453||tr") in new stack
-- Called 6453
-- SIP/6453-08417600 is ringing
-- SIP/6453-08417600 answered Local/6453@from-internal-1d21,2
== Manager 'admin' logged off from 127.0.0.1
-- Executing [28@queuemetrics:1] Answer("Local/6453@from-internal-1d21,1", " ") in new stack
-- Executing [28@queuemetrics:2] NoOp("Local/6453@from-internal-1d21,1", " " QM: Agent Custom Dial. Dialing 18779999284 on queue 6001 made by agent/86453" " ) in new stack
-- Executing [28@queuemetrics:3] Set("Local/6453@from-internal-1d21,1", "QDI ALER_QUEUE=6001") in new stack
-- Executing [28@queuemetrics:4] Set("Local/6453@from-internal-1d21,1", "QDI ALER_NUMBER=18779999284") in new stack
-- Executing [28@queuemetrics:5] Set("Local/6453@from-internal-1d21,1", "QDI ALER_AGENT=Agent/86453") in new stack
-- Executing [28@queuemetrics:6] Set("Local/6453@from-internal-1d21,1", "QDI ALER_CHANNEL=SIP/18779999284") in new stack
-- Executing [28@queuemetrics:7] Set("Local/6453@from-internal-1d21,1", "Que ueName=6001") in new stack
-- Executing [28@queuemetrics:8] MixMonitor("Local/6453@from-internal-1d21,1 ", "Q-6001-1248319068.61.WAV|b|") in new stack
-- Executing [28@queuemetrics:9] Goto("Local/6453@from-internal-1d21,1", "qm -queuedial|s|1") in new stack
-- Goto (qm-queuedial,s,1)
-- Executing [s@qm-queuedial:1] NoOp("Local/6453@from-internal-1d21,1", "Out bound call -> A:Agent/86453 N:18779999284 Q:6001 Ch:SIP/18779999284") in new sta ck
-- Executing [s@qm-queuedial:2] Set("Local/6453@from-internal-1d21,1", "CDR( accountcode)=QDIALAGI") in new stack
-- Executing [s@qm-queuedial:3] Set("Local/6453@from-internal-1d21,1", "ST=1 248319077") in new stack
-- Executing [s@qm-queuedial:4] Set("Local/6453@from-internal-1d21,1", "GM=Q DV-Agent/86453") in new stack
-- Executing [s@qm-queuedial:5] Set("Local/6453@from-internal-1d21,1", "GLOB AL(QDV-Agent/86453)=U") in new stack
== Setting global variable 'QDV-Agent/86453' to 'U'
-- Executing [s@qm-queuedial:6] Set("Local/6453@from-internal-1d21,1", "GLOB AL(QDV-Agent/86453ans)=0") in new stack
== Setting global variable 'QDV-Agent/86453ans' to '0'
-- Executing [s@qm-queuedial:7] Macro("Local/6453@from-internal-1d21,1", "qu euelog|1248319077|1248319068.61|6001|Agent/86453|CALLOUTBOUND|-|18779999284") in new stack
-- Executing [s@macro-queuelog:1] QueueLog("Local/6453@from-internal-1d21,1" , "6001|1248319068.61|Agent/86453|CALLOUTBOUND|-|18779999284|") in new stack
-- Executing [s@qm-queuedial:8] Dial("Local/6453@from-internal-1d21,1", "SIP /18779999284|30|gM(queuedial-answer^1248319068.61^QDV-Agent/86453^6001^Agent/864 53^1248319077)") in new stack
== Begin MixMonitor Recording Local/6453@from-internal-1d21,1
== Parsing '/etc/asterisk/manager.conf': Found
== Parsing '/etc/asterisk/manager_additional.conf': Found
== Parsing '/etc/asterisk/manager_custom.conf': Found
== Manager 'admin' logged on from 127.0.0.1
== Manager 'admin' logged off from 127.0.0.1
== Parsing '/etc/asterisk/manager.conf': Found
== Parsing '/etc/asterisk/manager_additional.conf': Found
== Parsing '/etc/asterisk/manager_custom.conf': Found
== Manager 'admin' logged on from 127.0.0.1
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [s@qm-queuedial:9] Set("Local/6453@from-internal-1d21,1", "CAUS ECOMPLETE=") in new stack
== Auto fallthrough, channel 'Local/6453@from-internal-1d21,1' status is 'CHAN UNAVAIL'
== Spawn extension (macro-dial, s, 7) exited non-zero on 'Local/6453@from-inte rnal-1d21,2' in macro 'dial'
== Spawn extension (macro-dial, s, 7) exited non-zero on 'Local/6453@from-inte rnal-1d21,2' in macro 'exten-vm'
== Spawn extension (macro-dial, s, 7) exited non-zero on 'Local/6453@from-inte rnal-1d21,2'
-- Executing [h@macro-dial:1] Macro("Local/6453@from-internal-1d21,2", "hang upcall") in new stack
-- Executing [s@macro-hangupcall:1] ResetCDR("Local/6453@from-internal-1d21, 2", "vw") in new stack
-- Executing [s@macro-hangupcall:2] NoCDR("Local/6453@from-internal-1d21,2", "") in new stack
-- Executing [s@macro-hangupcall:3] GotoIf("Local/6453@from-internal-1d21,2" , "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,6)
-- Executing [s@macro-hangupcall:6] GotoIf("Local/6453@from-internal-1d21,2" , "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] GotoIf("Local/6453@from-internal-1d21,2" , "1?theend") in new stack
-- Goto (macro-hangupcall,s,11)
-- Executing [s@macro-hangupcall:11] Hangup("Local/6453@from-internal-1d21,2 ", "") in new stack
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'Local/6453@fr om-internal-1d21,2' in macro 'hangupcall'
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'Local/6453@fr om-internal-1d21,2'
-- Executing [h@qm-queuedial:1] NoOp("Local/6453@from-internal-1d21,1", " "C all exiting: status U answered at: 0 DS: CHANUNAVAIL" ") in new stack
-- Executing [h@qm-queuedial:2] Goto("Local/6453@from-internal-1d21,1", "cas e-U") in new stack
-- Goto (qm-queuedial,h,4)
-- Executing [h@qm-queuedial:4] Set("Local/6453@from-internal-1d21,1", "WT=1 0") in new stack
-- Executing [h@qm-queuedial:5] Macro("Local/6453@from-internal-1d21,1", "qu euelog|1248319087|1248319068.61|6001|Agent/86453|ABANDON|1|1|10") in new stack
-- Executing [s@macro-queuelog:1] QueueLog("Local/6453@from-internal-1d21,1" , "6001|1248319068.61|Agent/86453|ABANDON|1|1|10") in new stack
-- Executing [s@qm-queuedial:6] Set("Local/6453@from-internal-1d21,1", "GLOB AL(QDV-Agent/86453ans)=0") in new stack
== Setting global variable 'QDV-Agent/86453ans' to '0'
-- Executing [s@qm-queuedial:7] Macro("Local/6453@from-internal-1d21,1", "qu euelog|1248319077|1248319068.61|6001|Agent/86453|CALLOUTBOUND|-|18779999284") in new stack
-- Executing [s@macro-queuelog:1] QueueLog("Local/6453@from-internal-1d21,1" , "6001|1248319068.61|Agent/86453|CALLOUTBOUND|-|18779999284|") in new stack
-- Executing [s@qm-queuedial:8] Dial("Local/6453@from-internal-1d21,1", "SIP /18779999284|30|gM(queuedial-answer^1248319068.61^QDV-Agent/86453^6001^Agent/864 53^1248319077)") in new stack
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [s@qm-queuedial:9] Set("Local/6453@from-internal-1d21,1", "CAUS ECOMPLETE=") in new stack
== End MixMonitor Recording Local/6453@from-internal-1d21,1
marcos:
Hi,
Have you followed the steps reported on "Chapter 3. Running an outbound callcenter" you can find in http://www.queuemetrics.com/download/QM_Trixbox_32.pdf tutorial ?
Thank you and regards,
Marco Signorini.
lady_cr0ft:
thanks marcos! I was able to make the agent visible in the monitoring but still my calls are not getting through. When I dial the number directly from Eyebeam (still loged on in QM) my calls are getting through but the call doesn't appear on agent's logon page (I need this to appear for the call outcome). If I use the Dial button on agent's logon page, my Eyebeam will ring but will automatically hung up after 6 seconds.
lady_cr0ft:
:D problem resolved... I just added the server's IP add in exten => 28,6,Set(QDIALER_CHANNEL=SIP/<IP ADDRESS>${QDIALER_NUMBER})
; extension 28: agent custom dial
exten => 28,1,Answer
exten => 28,2,NoOp( "QM: Agent Custom Dial. Dialing ${EXTTODIAL} on queue ${OUTQUEUE} made by '${QM_LOGIN}'" )
exten => 28,3,Set(QDIALER_QUEUE=${OUTQUEUE})
exten => 28,4,Set(QDIALER_NUMBER=${EXTTODIAL})
exten => 28,5,Set(QDIALER_AGENT=Agent/${AGENTCODE})
exten => 28,6,Set(QDIALER_CHANNEL=SIP/${QDIALER_NUMBER})
exten => 28,7,Set(QueueName=${QDIALER_QUEUE})
exten => 28,8,MixMonitor(Q-${QDIALER_QUEUE}-${UNIQUEID}.WAV|b|)
exten => 28,9,Goto(qm-queuedial,s,1)
exten => 28,10,Hangup
Navigation
[0] Message Index
[#] Next page
Go to full version