Hi All
I have a problem with mixmonitor in 13.4.0 doing the following:
-
Caller phones in
-
Reception picks up
-
Talks to caller
-
Does attended transfer, talks to manager to screen the caller wanting to speak to him
-
Complete the transfer by putting down her handset so the caller can speak to the manager
-
Caller talks to the manager
The problem is that mixmonitor only records steps (3) and (6) - for step (4) in the recording file, you hear the MOH the outside caller hears while the receptionist is screeing the call.
We want to record the -entire- conversation, including the receptionist screening with the manager.
E. g. you literally only hear the -perspective- of the originator of the call - you never hear the receptionist -> manager leg of the call if a transfer occurs during a call
This can work for most of our scenarios, but then we have others where a receptions phones as proxy for a manager - here you miss the entire conversation the manager has with the targeted outside person as the originator (reception) hangs up to attend-transfer and this part of the conversation is then completely missing.
Additionally, if the receptionist makes a mistake and has to re-transfer, you hear the transfer conversation -twice-, but never the initial caller-> reception conversation… e. g. it recorded twice into the file.
Here’s how an incoming call is handled:
[inc]
exten=>_[123]xxx,1,Macro(VCRECORD,${MACRO_CONTEXT}EXT${CALLERID(num)}ACC${CDR(accountcode)},${ARG2})
exten=>_[123]xxx,n,Set(__TRANSFER_CONTEXT=call-redirect)
exten=>_[123]xxx,n(checkacc),NoOp(MY Account code is ${CDR(accountcode)}) ;exten=>_[123]xxx,n(checkacc),NoOp(OTHER Account code is ${CDR(accountcode)})
exten=>_[123]xxx,n(dodial),Dial(Sip/${EXTEN},120,tTg)
exten=>_[123]xxx,n,NoOp(Dialstatus: ${DIALSTATUS})
exten=>_[123]xxx,n,GotoIf($["${DIALSTATUS}"="NOANSWER"]?takevoicemail:checkdont)
exten=>_[123]xxx,n(checkdont),GotoIf($["${DIALSTATUS}"="DONTCALL"]?takevoicemail:donecall)
exten=>_[123]xxx,n,NoOp(Taking a voicemail...)
exten=>_[123]xxx,n(takevoicemail),VoiceMail(${EXTEN}@default)
exten=>_[123]xxx,n(donecall),Hangup()
[call-redirect]
include => parkedcalls
exten=>_[123]xxx,1,NoOp(Transferring Call. This Channel ${CHANNEL}, Other channel ${BLINDTRANSFER})
exten=>_[123]xxx,n(dodial),Dial(Sip/${EXTEN},120,tTg)
[macro-VCRECORD] ; MACRO To setup Recording ;${ARG1} Description To Save ;${ARG2} Dialed Number exten=>s,1,NoOp(Start of MixMonitor recording)
exten=>s,n,Set(IAXVAR(accountcode)=${CDR(accountcode)})
exten=>s,n,GoToIf($["${MIXMONITOR_FILENAME}" = ""]?startrec:finrec)
exten=>s,n(startrec),Set(recDir=${STRFTIME(${EPOCH},,%y%m/%d)})
exten=>s,n,Set(recFile=${recDir}/${STRFTIME(${EPOCH},,%y%m%d%H%M%S)}D${ARG1}N${ARG2}ID${UNIQUEID}.gsm)
exten=>s,n(setacc),set(recFile=${recDir}/${CDR(linkedid)}.gsm)
exten=>s,n(makedir),System(/bin/mkdir -p /var/spool/asterisk/monitor/${recDir})
exten=>s,n,MixMonitor(${recFile},a)
exten=>s,n(finrec),Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
exten=>s,n,Set(CDR(userfield)=${MIXMONITOR_FILENAME})
exten=>s,n,Set(__chanrecording=/var/spool/asterisk/monitor/${recFile})
exten=>s,n,NoOp(Recording to ${MIXMONITOR_FILENAME})
exten=>s,n,UserEvent(RecordingToFile,Uniqueid: ${UNIQUEID},Channel: ${CHANNEL},FileName: ${MIXMONITOR_FILENAME}) exten=>s,n,MacroExit
Can somebody help or offer a suggestion how to get MixMonitor to record an ENTIRE conversation in 13.4.0, not just record from the perspective of the initiator of a call?
Thanks