Это старая версия документа!
Запись звонков в стерео во FreePBX
Рассмотрим доработку FreePBX версии 15 для возможности записи разговоров в режиме стерео, что позволяет прослушивать записи разговоров отдельно два конца линии для их последующего анализа.
Результатом нашей доработки будут следующие переключатели, размещённые в разделе Call Recording вкладки Settings → Advanced Settings.
В разделе Call Recording появятся следующие переключатели:
- Enable Stereo Mode – позволяет включать/выключать режим стерео-записи
- Remove sourse files – удаляет исходные файлы записей –in и -out (используется только если включен режим стерео).
Подготовительный этап
В рамках подготовительного этапа добавим переключатели на вкладку Advanced Settings. Делается это при помощи добавления записей в таблицу freepbx_settings базы данных asterisk. Команды можно выполнить либо используя ssh в клиенте mysql, либо через PHPMyAdmin.
- Создаём переключатель STEREOMODE_USE, позволяющий управлять стереорежимом записи разговоров.
INSERT INTO freepbx_settings (keyword, value, name, description, type, options, defaultval, readonly, hidden, category, module, sortorder) VALUES ('STEREOMODE_USE', 0, 'Enable Stereo Mode', 'KEYWORD:STEREOMODE_USE Setting true will use the record in stereo mode.', 'bool', '', 0, 0, 0, 'Call Recording', 'callrecording', 0);
- Добавляем переключатель REMOVE_SOURCE
INSERT INTO freepbx_settings(keyword, value, name, description, type, options, defaultval, readonly, hidden, category, module, sortorder) VALUES ('REMOVE_SOURCE', 0, 'Remove source files', 'Setting true will remove source –in and –out files.', 'bool', '', 0, 0, 0, 'Call Recording', 'callrecording', 0);
Правка скриптов
Открываем в режиме редактирования файл …/admin/modules/callrecording/functions.inc.php.
- Находим в нём функцию callrecording_get_config($engine). Здесь находим строку:
$context = 'ext-callrecording';
До неё вставляем следующий код:
$stereo_mode = FreePBX::Config()->get_conf_setting('STEREOMODE_USE'); $path_to_sox = FreePBX::Config()->get_conf_setting('WHICH_sox'); $remove_source = FreePBX::Config()->get_conf_setting('REMOVE_SOURCE'); $path_to_rm = '/usr/bin/rm'; $path_to_monitor = '/var/spool/asterisk/monitor/';
Тем самым мы обеспечили считывание текущих настроек, указанных на вкладке Advanced Settings. В переменную
$path_to_soxсчитываем значения параметра Path for sox. Оно нам потребуется в дальнейшем, при реализации стереорежима записи.
- Теперь, в этой же функции находим строку:
$exten = 'recordcheck';
Это означает, что правки, внесённые ниже, будут относиться к экстеншену recordcheck, контекста sub-record-check. Находим вызов приложения MixMonitor, относящийся к данному экстеншену (должен быть немного ниже), по следующей строке:
$ext->add($context, $exten, '', new ext_mixmonitor('${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT}','a${MONITOR_REC_OPTION}i(${LOCAL_MIXMON_ID})${MIXMON_BEEP}','${MIXMON_POST}'));

