Author Topic: Call Outcome for Outbound Calls  (Read 6220 times)

lady_cr0ft

  • Newbie
  • *
  • Posts: 12
  • Karma: 0
    • View Profile
Call Outcome for Outbound Calls
« on: July 23, 2009, 09:07:55 »
 ??? 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

  • Newbie
  • *
  • Posts: 12
  • Karma: 0
    • View Profile
Re: Call Outcome for Outbound Calls
« Reply #1 on: July 23, 2009, 09:08:12 »

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

  • Loway
  • Full Member
  • *
  • Posts: 138
  • Karma: 3
    • View Profile
Re: Call Outcome for Outbound Calls
« Reply #2 on: July 23, 2009, 11:05:19 »
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

  • Newbie
  • *
  • Posts: 12
  • Karma: 0
    • View Profile
Re: Call Outcome for Outbound Calls
« Reply #3 on: July 23, 2009, 12:25:02 »
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

  • Newbie
  • *
  • Posts: 12
  • Karma: 0
    • View Profile
Re: Call Outcome for Outbound Calls
« Reply #4 on: July 23, 2009, 15:21:28 »
 :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

marcos

  • Loway
  • Full Member
  • *
  • Posts: 138
  • Karma: 3
    • View Profile
Re: Call Outcome for Outbound Calls
« Reply #5 on: July 24, 2009, 11:57:26 »
OK!
Great!

Thank you and best regards,
Marco Signorini