수정 프로그램이 발견되어 저에게 적합합니다. 별표 로그에서 별표는 파일 이름이없는 잘못된 파일, 확장자 (.wav)로 기록하려고합니다. /var/lib/asterisk/agi-bin/parkfetch.agi와 /var/lib/asterisk/bin/one_touch_record.php의 두 파일을 실행했습니다.
one_touch_record.php는 연도, 날짜, 믹스 모니터 폴더 등의 채널에서 읽은 데이터로부터 파일 이름을 생성하지만 유효한 파일 이름이 로그에 없으므로 여기에 null이 있어야합니다.
$mixMonDir = getVariable($channel, "MIXMON_DIR");
$year = getVariable($channel, "YEAR");
$month = getVariable($channel, "MONTH");
$day = getVariable($channel, "DAY");
$mixMonFormat = getVariable($channel, "MIXMON_FORMAT");
$mixMonPost = getVariable($channel, "MIXMON_POST");
$astman->mixmonitor($channel, "{$mixMonDir}{$year}/{$month}/{$day}/{$callFileName}.{$mixMonFormat}", "a", $mixMonPost, rand());
그래서 나는 parkfetch.agi 내가이 채널 바르가 REC_STATUS는 "RECORDING"인 경우에만 복사되고이 경우 REC_STATUS는 "INITIALIZED"있는 것을 발견했다 검사. 그래서 내가 ($의 rec_status == "RECORDING") 경우에 ($의 rec_status == "RECORDING"|| $의 rec_status == "INITIALIZED")
if ($channel) {
$rec_status = get_var("IMPORT($channel,REC_STATUS)");
$agi->set_variable('REC_STATUS', $rec_status);
if ($rec_status == "RECORDING" || $rec_status=="INITIALIZED") {
foreach (array('MIXMON_DIR', 'YEAR', 'MONTH', 'DAY', 'CALLFILENAME', 'MIXMON_FORMAT', 'MIXMON_POST', 'MON_FMT') as $v) {
$agi->set_variable($v, get_var("IMPORT($channel,$v)"));
}
}
}
경우 내가 변경에 OR 절 즉, 추가 그리고 그것은했다. 이제 공원에서 전화를 가져온 후 * 1을 누르면 녹음이 시작됩니다.
누군가가 더 좋은 해결책을 찾으면 내 블로그에 댓글로 남겨주세요. http://sachindotg.blogspot.in/2014/02/asterisk-cannot-record-call-after.html