# Конвертация записи звонка в mp3

По умолчанию, Asterisk сохраняет записи звонков в формате WAV. Это объёмный формат, поэтому для экономии места на диске, Itgrix предлагает конвертировать записи в формат mp3, что ранее делалось через [кастомизацию](/custom_common/mp3-record.md).

Начиная с версии [3.13.0](https://docs.itgrix.ru/blog/pages/-M0SZwZn5pERjpAzqeP-#id-3.13.0), конвертация записей в mp3 добавлена в основной функционал коннектора Itgrix.

(скрин блока настроек конвертации в админке)

{% hint style="info" %}
При обновлении на версию 3.13.0 и выше, чтобы начал работать новый способ конвертации, нужно не только включить его в админке, но и отключить старый способ. При новой установке включена конвертация новым способом, а не через кастомизацию.

Проще всего это сделать через админку: отключить кастомизацию **пути до файла записи звонка** на странице "Модуль". Если у вас настроены другие действия в этой кастомизации, помимо конвертации в mp3, то нужно [закомментировать](https://gitlab.itgro.dev/itgrix/gitbookrus/-/blob/sync/custom_common/mp3-record/README.md#otklyuchenie-konvertacii-v-kastomizacii) блок кода, который выполняет конвертацию.
{% endhint %}

## Программа конвертер

Старый способ конвертации использовал программу `lame`, которая должна была быть отдельно установлена на сервере. Новый способ использует по умолчанию поставляемую вместе с Itgrix компактную сборку `ffmpeg` с функционалом только для работы с аудио файлами. Это более гибкое проложение, поддерживающее множество форматов и фильтров, и его не нужно устанавливать отдельно. Настройки в админке позволяют выбрать любую другую программу, в том числе `lame` или установленную в системе полную версию `ffmpeg`.

Для выбора программы конвертации нужно указать команду её запуска в поле "Путь до конвертера записей", по умолчанию `/opt/itgrix_bx/ffmpeg/ffmpeg`. Можно указать команду без полного пути, тогда будет использоваться программа из системы в соответствии с переменной окружения `PATH`.

Параметры запуска программы конвертера тоже свободно настраиваются через поле "Аргументы команды конвертации записей". В этом поле используются две переменные: `#IN#` и `#OUT#` - пути до входного файла (wav) и выходного файла (mp3).

Аргументы по умолчанию для ffmpeg такие:\
`-loglevel error -i #IN# -f mp3 -codec:a libmp3lame -compression_level 2 -b:a 192k #OUT#`

Они означают следующее:

* `-loglevel error` - выводить только ошибки
* `-i #IN#` - путь до wav файла
* `-f mp3` - конвертация в формат mp3
* `-codec:a libmp3lame` - использовать аудио кодек "libmp3lame"
* `-compression_level 2` - [уровень сжатия](https://ffmpeg.org/ffmpeg-codecs.html#Options-16) 2
* `-b:a 192k` - аудио битрейт 192 килобит в секунду

Документацию по параметрам `ffmpeg` можно найти на [официальном сайте](https://trac.ffmpeg.org/wiki/Encode/MP3).

Время работы программы конвертера ограничено **таймаутом**, по умолчанию 30 секунд.

## Кастомизируемость

Старая кастомизация **пути до файла записи звонка** (`process_record_file_path`) по-прежнему может использоваться для изменения пути к входному (wav) файлу, но теперь добавлена новая кастомизация **параметров конвертации записи** (`customize_record_conversion`). Она позволяет менять все параметры конвертации:

* `IN` - путь до входного файла (wav)
* `OUT` - путь до выходного файла (mp3)
* `recording_converter_path` - программа конвертер
* `recording_converter_args` - аргументы запуска программы конвертера
* `recording_converter_timeout_msec` - таймаут работы программы конвертера
* `overwrite_cdr_recordingfile` - опция обновления пути до записи в таблице CDR Asterisk
* `initial_cdr_recordingfile` - значение пути до записи в таблице CDR Asterisk, которое будет заменено на новое
* `updated_cdr_recordingfile` - новое значение пути до записи в таблице CDR Asterisk
* `delete_original_recordings` - опция удаления исходного (wav) файла


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.itgrix.ru/blog/mp3-conversion.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
