System Recording: Link to Feature Code

I am trying to setup a Admin menu where manager can go in and re-record system msgs without the need of a computer/web browser using either a extension on the system or dial in via a PTSN line.

I activated the Link to feature code for the specific system recording(s) and then make Misc destinations for them.

After using the secret code from the main IVR to get to the admin IVR, I can select the defined opion and it will go into the system recording function for that recording.

Now - you only have 2 options - 1 to play it again and * to re-record it. There is no way to keep the msg after being re-recorded and return to the admin IVR. You have to hang up and dial in again.

As a example last night - I had to dial in 7 times to change seven different recordings for the week. Sometimes this can be up to 15 different recordings.

Again, is there a way to modify the macro-systemrecording to like add a option 2 - and have it exit the maco and return to the dialplan where it was called from so it will return back to the IVR so the next recording can be changed if need be using the same call?


yes you can. take a look at extensions_additional.conf (DO NOT EDIT IT) and search for macro-systemrecording. This is the macro to do the recording.

You can customize it by creating a context [macro-systemrecording-custom] and placing this in the extensions_custom.conf file (that’s what the include line at the top of macro-systemrecording is for).

and change what you need to do what you want.

include => macro-systemrecording-custom
exten => s,1,Set(RECFILE=${IF($["${ARG2}" = “”]?/tmp/${AMPUSER}-ivrrecording:${ARG2})})
exten => s,n,ExecIf($["${ARG3}" != “”],Authenticate,${ARG3})
exten => s,n,Goto(${ARG1},1)
exten => dorecord,1,System(rm ${ASTVARLIBDIR}/sounds/${RECFILE}.)
exten => dorecord,n,Record(${RECFILE}:wav)
exten => dorecord,n,Wait(1)
exten => dorecord,n,Goto(confmenu,1)
exten => docheck,1,Playback(beep)
exten => docheck,n(dc_start),Background(${RECFILE},m,${CHANNEL(language)},macro-systemrecording)
exten => docheck,n,Wait(1)
exten => docheck,n,Goto(confmenu,1)
exten => confmenu,1,Background(to-listen-to-it&press-1&to-rerecord-it&press-star&astcc-followed-by-pound,m,${CHANNEL(la$
exten => confmenu,n,Read(RECRESULT,1,4)
exten => confmenu,n,GotoIf($[“x${RECRESULT}”="x
exten => confmenu,n,GotoIf($[“x${RECRESULT}”=“x1”]?docheck,2)
exten => confmenu,n,Goto(1)
exten => 1,1,Goto(docheck,dc_start)
exten => *,1,Goto(dorecord,1)
exten => t,1,Playback(goodbye)
exten => t,n,Hangup
exten => i,1,Playback(pm-invalid-option)
exten => i,n,Goto(confmenu,1)
exten => h,1,Hangup

; end of [macro-systemrecording][/code]

ok I am going to assume something like this - I am out of my ballpark here…

[macro-systemrecording-custom] exten => confmenu,1,Background(to-listen-to-it&press-1&to-rerecord-it&press-2&astcc-followed-by-pound,&to-save-recording&press-3m,${CHANNEL(la$ exten => confmenu,n,Read(RECRESULT,,1,,,4) exten => confmenu,n,GotoIf($["x${RECRESULT}"="x2"]?dorecord,1) exten => confmenu,n,GotoIf($["x${RECRESULT}"="x1"]?docheck,2) exten => confmenu,n,GotoIf($["x${RECRESULT}"="x3"]? some command here) exten => confmenu,n,Goto(1) ; end of [macro-systemrecording-custom]

if this is correct - but problem is I dont know what to execute for option #3 to cause the macro to exit and return to its calling IVR…

Can I get a push (or shove) in the right direction - this is a new language for me…


what about

its on the end of *97, but i am not sure where IVR_CONTEXT is populated from?