I'm looking to use fifo_record_template to specify uniquely named recording files. Here is the situation:
I'm using a fifo with on-hook members. I would like each fifo call to be recorded, with each recording-file named uniquely.
Thanks to some helpful IRC talk, I have learned that the following works well:
<fifo name="Outside_Call@$${domain}" importance="0">
<member timeout="20" simo="1" lag="0">{fifo_record_template=$${base_dir}/recordings/my_recording.wav,fifo_member_wait=nowait}user/35351@$${domain}</member>
</fifo>
However, this records each and every fifo call to the file (in my case):
/usr/local/freeswitch/recordings/my_recording.wav
Every new call overwrites the file.
Instead of a statically defined file name, I would like a unique file name for every fifo call.
I don't know how to make reference to channel variables in this definition. I tried the following, but it results in an error:
<fifo name="Outside_Call@$${domain}" importance="0">
<member timeout="20" simo="1" lag="0">{fifo_record_template=$${base_dir}/recordings/{${uuid}.wav,fifo_member_wait=nowait}user/35351@$${domain}</member>
</fifo>
The error I see on the CLI when a call goes into the FIFO is this:
2010-03-18 13:51:11.289448 [CRIT] switch_channel.c:759 Invalid data (${fifo_record_template} contains a variable)
It was also suggested to me that I escape the '$' character on the variable. Like this:
<fifo name="Outside_Call@$${domain}" importance="0">
<member timeout="20" simo="1" lag="0">{fifo_record_template=$${base_dir}/recordings/{\${uuid}.wav,fifo_member_wait=nowait}user/35351@$${domain}</member>
</fifo>
This also resulted in:
2010-03-18 13:52:37.014742 [CRIT] switch_channel.c:759 Invalid data (${fifo_record_template} contains a variable)
The recording file doesn't get generated.
Any recommendations on using fifo_record_template to generate recording file names that are unique to each call? Is there a way to get channel variables to be evaluated and populate the value of fifo_record_template?
Or does fifo_record_template only support static values (meaning I'd have to do a record_session in dial plan?)?
Thanks for any feedback.