Кастомизация настраивается в файле process_record_file_path.php, он находится в каталоге:
itgrix_bx (Битрикс24)
itgrix_amo (amoCRM)
/opt/itgrix_bx/customizer/actions/
/opt/itgrix_amo/customizer/actions/
Для более ранних версий:
itgrix_bx (Битрикс24) ДО версии 3.4.0
itgrix_amo (amoCRM) ДО версии 2.6.0
/opt/itgrix_bx/custom/
/opt/itgrix_amo/custom/
Конвертация записей уже включена по умолчанию при установке (приведенный в листинге ниже код уже присутствует в файле кастомизации).
Но по умолчанию отключено удаление исходного wav-файла и обновление записи в CDR. Т.е. записи в формате mp3 создаются в дополнение к существующим wav-файлам, это приводит к занятию дополнительного места на сервере Астериск.
Чтобы включить обновление в CDR (поле recordingfile) и удаление wav-файла, нужно установить в true значения переменных (см. листинг ниже):
$updateFilenameInCdr =false; // Заменить в CDR имя файла на mp3$removeWavFile =false; // Удалить исходный wav-файл
Для версий ДО 3.4.0 включение запроса в CDR и удаления исходного wav-файла осуществляется раскомментированием кода:
// mysqli_query(getDB(), "UPDATE `cdr` SET `recordingfile` = '{$newBasename}' WHERE `recordingfile` = '{$basename}'");
// удаляем файл с расширением .wav// unlink($path);
Обращаем ваше внимание на то, что любые изменения должны проводиться опытным разработчиком и учитывать специфику вашей системы.
$callId = $params['call_id'];$from = $params['from'];$to = $params['to'];$path = $params['path'];//// Пример конвертации записей разговоров в mp3//$updateFilenameInCdr =false; // Заменить в CDR имя файла на mp3$removeWavFile =false; // Удалить исходный wav-файл$recPathInfo =pathinfo($path);$recBasename = $recPathInfo['basename'];$recExtension = $recPathInfo['extension'];if (strtolower($recExtension)=='wav') { $newPath =Utils::convertToMp3($path);if ($newPath ===false) {returnarray('state'=>'error','data'=>"Failed to convert recording file to mp3: '$path'", ); }$this->logInfo("Converted recording file: '$newPath'"); $newBasename =basename($newPath);// Заменить в CDR имя файла на новое (wav на mp3)if ($updateFilenameInCdr) { $dbResult =Utils::mysqliQuery("UPDATE `cdr` SET `recordingfile` = '{$newBasename}'"." WHERE `recordingfile` = '{$recBasename}'");if ($dbResult ===false) {returnarray('state'=>'error','data'=>'Ошибка при запросе в CDR', ); }$this->logInfo("Updated recording filename in CDR: '$newBasename'"); }// Удалить исходный файл с расширением .wavif ($removeWavFile) { $rmSuccess =unlink($path);if (! $rmSuccess) {returnarray('state'=>'error','data'=>"Не удалось удалить исходный wav-файл: '$path'", ); }$this->logInfo("Removed recording file: '$path'"); } $path = $newPath;}returnarray('state'=>'success','data'=>array('path'=> $path, ),);
Данный код предполагает установленный lame в системе. Если у вас его нет, устанавливается он любым доступным менеджером пакетов:
yuminstalllame
Для того чтобы отключить конвертирование файлов записей в mp3 достаточно закомментировать обращение к функцииям кастомизации записей в коде указанном выше:
/*if (strtolower($recExtension) == 'wav') {
$newPath = Utils::convertToMp3($path);
if ($newPath === false) {
return array(
'state' => 'error',
'data' => "Failed to convert recording file to mp3: '$path'",
);
}
$this->logInfo("Converted recording file: '$newPath'");
$newBasename = basename($newPath);
// Заменить в CDR имя файла на новое (wav на mp3)
if ($updateFilenameInCdr) {
$dbResult = Utils::mysqliQuery(
"UPDATE `cdr` SET `recordingfile` = '{$newBasename}'" .
" WHERE `recordingfile` = '{$recBasename}'");
if ($dbResult === false) {
return array(
'state' => 'error',
'data' => 'Ошибка при запросе в CDR',
);
}
$this->logInfo("Updated recording filename in CDR: '$newBasename'");
}
// Удалить исходный файл с расширением .wav
if ($removeWavFile) {
$rmSuccess = unlink($path);
if (! $rmSuccess) {
return array(
'state' => 'error',
'data' => "Не удалось удалить исходный wav-файл: '$path'",
);
}
$this->logInfo("Removed recording file: '$path'");
}
$path = $newPath;
}
*/