One Touch Recording


Using Asterisk 1.6.12 on a 32-bit CentOS 5.

Have tried various combinations of automon, automixmon, touch_monitor_format, touch_monitor_output, etc. with no success at all.

What I get is “User hit ‘*’ to record call. filename: auto-1325916283-+1702XXXXXXX-+1702XXXXXXX” and a WAV file dumped in the monitor directory.

I can’t find any documentation (boy I wish I had a nickel every time…) on this feature. Since it is 1.6 I have no clue where the c code is so I could try to reverse engineer it, or even change it.

Can somebody please point out which function to use, how to specify the format (g729), and how to specify the output filename?

I would prefer both channels mixed of course, and I just want the uniqueid of the call. I really don’t understand how auto and a different uniqueid is useful at all, or why the callerid is duplicated like that.

Any help is greatly appreciated!

P.S - If you can even point me to the correct code file I can modify and then recompile that would be helpful. I already had to do it for voicemail to change the database field name it stores the password in, so I am comfortable modifying it.

grep “User hit .* to record” /.c

(I had to read this twice before I realised your specific issue was overriding the recording format.)

The answer appears to be ${TOUCH_MIXMONITOR_FORMAT}, with the caller channel taking precedence.

Thanks for the reply.

Setting that variable kinda worked.

I set the following in a macro when a queue call is bridged with an agent. This sets it to be the uniqueid for the queue call, instead of the originating uniqueid. On another note, it would be nice to store that in the queue logs as well, but I cannot find any variable that does that. I have the entry var flags set in the queue.conf to access quite a few variables for logging, but don’t know how to get that specific one.

exten => s,n,Set(TOUCH_MIXMONITOR_FORMAT=${CDR(uniqueid)}.g729)

It sets the format of the call apparently, but not the file name. It will concatenate the file name with the format specified though. That will work somewhat for my purposes since I can parse the whole thing by the period character from the end to get the uniqueid of the call and tie it to a queue call.

I also tried setting a dynamic feature with the same trigger, but that only bombed Asterisk. It looks like I still need access to the code to modify the complete file name and add some feedback.

Feedback is important for the agents since right now it is completely silent. I think it is required to play a sound file at the beginning and end of the recording to give feedback to the agent that the feature is actually working.

It does not seem like I can do any of this by setting channel variables, and I can only use the * button once in features.conf.

If you, or anybody else, can point out where the C code file is located in source that would be greatly appreciated. For both 1.6 and 1.8. I am on 1.6 for production, but developing a new system on 1.8.

There is a variable that sets the file name (although it may only set the root of the name). The grep command I gave before will find the place in the code.

Ohhh, that grep command.

I apologize for my reading comprehension skills :smile: Thanks.

You know it’s weird, but I am reading the builtin_automixmonitor function and it seems to completely ignore some variables that it checks for like TOUCH_MIXMONITOR_OUTPUT. That has no effect at all and I have been setting that.

Only other thing I came across which sucks is that only one mixmonitor can be attached to a channel at one time. I was hoping to record the entire queue conversation, and then also record sections of it specifically.

Got some coding to do now… thanks for help.