Recording all calls, but must be able to suppress feature via DTMF

FreePbx running on Ubuntu FF 7.10

We can make it record the calls OK (“always”), but when there’s a personal call or something sensitive, we’d like to be able to turn OFF call recording. Is this possible?


The way I did this for a client was to set up a second extension on the phone, set that to not record, and use that line to call out. That may not be possible, depending on your phones, though.

As far as I know there’s not currently a way to turn off recording when it’s always on, but I could be wrong.

Interesting. I wonder why that is. I wonder which bit of script (dialplan) mediates the *1 functionality?
I’d have thought one could easily modify that to make it turn recording OFF!

it is a part of the built in functionality inside asterisk not the dial plan.

But if I could make an application to call StopMonitor, wouldn’t that work?

sure, but how will the base asterisk which is programmed to always record if always is selected (i.e. I’m the owner of the company and I want EVERY call recorded ALWAYS) know to allow for that or call it unless you modify the C code inside asterisk. It’s a fundamental change to a core routine that you are asking about.

There has been a bunch of talk lately on the dev channel about recording and it really needs to be looked at and have more options created. As there are issues like if calling between extensions and one is set to always and one is set to optional, which has precedence over which…

For example it needs to be expanded to more like this:
never (this means never, no can to ever, think CEO talking about take over ideas, company buy out, etc).
no (As in this user does not want recordings but if others do it is ok)
available (means that the user can enable if is needed, but if it is not then others can’t).
possible/on demand (means user can enable if they want and if others want they can also).
always (means it will record except for when it has a never status on the other end)

I’m sure there are a few other conditions that should be made.

In thinking about it maybe it would be possible to create a feature code that could be dialed that would for the next outbound call disable it (like caller ID disable). I’m no dial plan geek so can’t be sure about that one, but that might be a way.

What I can tell you is that currently if you had a extension that is set to “always” call a extension that is “never” or “on demand” it will NOT record it.

I suspect you could create a new application map feature code that would stop the existing recording. It may be doable all in the dialplan, or it may require and agi script that went into the manager interface to stop the recording.

It may be as simple as such an application map feature code that makes a call to StopMixMonitor(). It would be fairly easy to breadboard up and test that. The use scenario would be stopping a recording that was started after the call was bridged.

I tried one to StopMonitor, and that didn’t work, but now you mention it, StopMixMonitor sounds better… (thanks!)

…ok that may have done more, but it terminates the call!

My macro is:
exten => s,1,StopMixMonitor()
exten => s,n,Playback(hello-world)
exten => s,n,MacroExit

So why, does the callee hear beeps, the caller hears “Hello World” (I love the way she says that!) and then the call ends?!

not sure what you did, but the following works:




stoprec => *6,caller,Macro,stoprec


exten => s,1,StopMixMonitor()
exten => s,n,Playback(beep)

With that, you should be able to make an outbound call, then press *6, here the beep confirmation that the application was executed, and it will stop the recording (just tested). Only the callee will hear the beep.

Great - that looks extremely similar to what I did. I note you don’t have an MacroExit() call, and you’ve found a better home for setting DYNAMIC_FEATURES.
Will try on Monday. Thanks very much.