@Itsm wrote:
Hi All,
I was requested to make our recordings file names more readable, so after searching the net, I came up with a good result.
Which worked for about 2 years, a few months ago I migrated to a new freepbx version, and a specific part of that script stopped working,
All variations of calls are being saved with the proper file name except for one scenario,
On an incoming call to a ring group, the file name comes out empty. (the output file name is .wav)
That's the macro:[sub-record-check] exten => s,1,GotoIf($[${LEN(${FROMEXTEN})}]?initialized) exten => s,n,Set(__REC_STATUS=INITIALIZED) exten => s,n,Set(NOW=${EPOCH}) exten => s,n,Set(__DAY=${STRFTIME(${NOW},,%d)}) exten => s,n,Set(__MONTH=${STRFTIME(${NOW},,%m)}) exten => s,n,Set(__YEAR=${STRFTIME(${NOW},,%Y)}) exten => s,n,Set(__TIMESTR=${YEAR}${MONTH}${DAY}-${STRFTIME(${NOW},,%H%M%S)}) exten => s,n,Set(__FROMEXTEN=${IF($[${LEN(${AMPUSER})}]?${AMPUSER}:${IF($[${LEN(${REALCALLERIDNUM})}]?${REALCALLERIDNUM}:unknown)})}) exten => s,n,Set(__MON_FMT=${IF($["${MIXMON_FORMAT}"="wav49"]?WAV:${MIXMON_FORMAT})}) exten => s,n(initialized),Noop(Recordings initialized) exten => s,n,ExecIf($[!${LEN($ARG3)}]?Set(ARG3=dontcare)) exten => s,n,Set(REC_POLICY_MODE_SAVE=${REC_POLICY_MODE}) exten => s,n,ExecIf($["${BLINDTRANSFER}${ATTENDEDTRANSFER}" != ""]?Set(REC_STATUS=NO)) exten => s,n(next),GotoIf($[${LEN(${ARG1})}]?checkaction) exten => s,n(recorderror),Playback(something-terribly-wrong,error) exten => s,n,Hangup exten => s,n(checkaction),GotoIf($[${DIALPLAN_EXISTS(sub-record-check,${ARG1})}]?sub-record-check,${ARG1},1) exten => s,n,Noop(Generic ${ARG1} Recording Check - ${FROMEXTEN} ${ARG2}) exten => s,n,Gosub(recordcheck,1(${ARG3},${ARG1},${ARG2})) exten => s,n,Return() exten => recordcheck,1,Noop(Starting recording check against ${ARG1}) exten => recordcheck,n,Goto(${ARG1}) exten => recordcheck,n(dontcare),Return() exten => recordcheck,n(always),Noop(Detected legacy "always" entry. Mapping to "force") exten => recordcheck,n(force),Set(__REC_POLICY_MODE=FORCE) exten => recordcheck,n,GotoIf($["${REC_STATUS}"!="RECORDING"]?startrec) exten => recordcheck,n,Return() exten => recordcheck,n(delayed),Noop(Detected legacy "delayed" entry. Mapping to "yes") exten => recordcheck,n(yes),ExecIf($["${REC_POLICY_MODE}" = "NEVER" | "${REC_POLICY_MODE}" = "NO" | "${REC_STATUS}" = "RECORDING"]?Return()) exten => recordcheck,n,Set(__REC_POLICY_MODE=YES) exten => recordcheck,n,Goto(startrec) exten => recordcheck,n(no),Set(__REC_POLICY_MODE=NO) exten => recordcheck,n,Return() exten => recordcheck,n(never),Set(__REC_POLICY_MODE=NEVER) exten => recordcheck,n,Goto(stoprec) exten => recordcheck,n(startrec),Noop(Starting recording: ${ARG2}, ${ARG3}) exten => recordcheck,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes) exten => recordcheck,n,Set(__CALLFILENAME=${STRFTIME(${EPOCH},,%Y-%m-%d_%H:%M:%S)}_From-_${REALCALLERIDNUM}_To-_${CALLERID(dnid)}) exten => recordcheck,n,MixMonitor(${MIXMON_DIR}${CALLFILENAME}_.${MIXMON_FORMAT},,${MIXMON_POST}) exten => recordcheck,n,Set(__MIXMON_ID=${LOCAL_MIXMON_ID}) exten => recordcheck,n,Set(__RECORD_ID=${CHANNEL(name)}) exten => recordcheck,n,Set(__REC_STATUS=RECORDING) exten => recordcheck,n,Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}) exten => recordcheck,n,Return() exten => recordcheck,n(stoprec),Noop(Stopping recording: ${ARG2}, ${ARG3}) exten => recordcheck,n,Set(__REC_STATUS=STOPPED) exten => recordcheck,n,System(/var/lib/asterisk/bin/stoprecording.php "${CHANNEL(name)}") exten => recordcheck,n,Return() exten => out,1,Noop(Outbound Recording Check from ${FROMEXTEN} to ${ARG2}) exten => out,n,Set(RECMODE=${DB(AMPUSER/${FROMEXTEN}/recording/out/external)}) exten => out,n,ExecIf($[!${LEN(${RECMODE})} | "${RECMODE}" = "dontcare"]?Goto(routewins)) exten => out,n,ExecIf($["${ARG3}" = "never" | "${ARG3}" = "force"]?Goto(routewins)) exten => out,n(extenwins),Gosub(recordcheck,1(${RECMODE},out,${ARG2})) exten => out,n,Return() exten => out,n(routewins),Gosub(recordcheck,1(${ARG3},out,${ARG2})) exten => out,n,Return()
please save me
Posts: 1
Participants: 1