我的解决方案是更改 res_monitore.c 的代码并重新编译。
这是删除原始文件的代码部分
00295 if (delfiles) {
00296 snprintf(tmp2,sizeof(tmp2), "( %s& rm -f \"%s/%s-\"* ) &",tmp, dir ,name); /* remove legs when done mixing */
00297 ast_copy_string(tmp, tmp2, sizeof(tmp));
00298 }
只是我们必须添加这个 { delfiles = 0; } 在第 00294 行
00294 delfiles = 0;
00295 if (delfiles) {
00296 snprintf(tmp2,sizeof(tmp2), "( %s& rm -f \"%s/%s-\"* ) &",tmp, dir ,name); /* remove legs when done mixing */
00297 ast_copy_string(tmp, tmp2, sizeof(tmp));
00298 }
我更改了 delfiles = 0 以强制该函数不删除文件。
After that this is the command that you have to type :
cd /usr/src/asterisk-1.8.23.0
make
cp ./res/res_monitor.so /res/res_monitor.so.backup
cp ./res/res_monitor.so /usr/lib/asterisk/modules
/etc/ini.d/asterisk restart
并且您像以前一样继续使用 Monitor() 命令以及保留原始文件的功能(Filename-in.wav 和 Filename-out.wav,当然还有 Filename.wav)