Настройка голосового или тонового предупреждения о записи разговора

astwarn - набор модулей для Asterisk, предназначенный для внедрения голосового или тонового предупреждения о записи разговора.

Программу можно скачать по ссылке.

Сборка и установка

Предполагается, что в текущей ОС уже установлены основные средства сборки (gcc make automake autoconf libtool).

1. Установить зависимости

Требуется установить заголовочные файлы для asterisk, libsndfile и libsamplerate.
Для Debian: asterisk-dev libsndfile1-dev libsamplerate0-dev
Для Fedora: asterisk-devel libsndfile-devel libsamplerate-devel

2. Подготовка

Распакуйте архив и перейдите в появившуюся директорию:

$ tar xzf astwarn-1.0.0.tar.gz 
$ cd astwarn-1.0.0/

По умолчанию собранный пакет устанавливается в директорию, определенную префиксом /usr/local. В ряде ОС (например в Debian) требуется указывать префикс другой префикс (/usr в Debian). В этом случае при конфигурировании необходимо явно указать префикс:

$ ./configure --prefix=path

Где path - требуемый префикс. Либо, если префикс менять не требуется:

$ ./configure

В ряде случаев может потребоваться указать пути к директориям конфигурации, расположения модулей либо заголовочных файлов Asterisk. Это можно сделать используя опции --with-astetcdir=path, --with-astmoddir=path и --with-astincludedir=path соответственно.

3. Компиляция и установка

Далее следует выполнить команду сборки:

$ make

Следующим шагом будет выполнение команды установки, которую нужно выполнить от имени превилегированного пользователя (либо с повышением уровня прав c использованием команды sudo):

$ make install

Добавление модулей в загрузку Asterisk

Необходимо в файле /etc/asterisk/modules.conf в конце секции [modules] добавить строки:

noload => bridge_simple.so
noload => bridge_softmix.so
noload => bridge_native_rtp.so
load => bridge_simple_warn.so
load => bridge_softmix_warn.so

Конфигурация

Конфигурирование предупреждения производится через файл /etc/asterisk/warning.conf.

Назначение параметров

Параметр Назначение Значения
enabled управление включением/выключением предупреждения true/false
filename имя файла предупреждения voice.wav, tone.wav или абсолютный путь к произвольному wav-файлу (16 бит/сэмпл, 1 канал)
repeat повторять ли предупреждение yes/no
repeat_count кол-во повторений предупредения 0 - 1000, где 0 - повторять бесконечно, по умолчанию равен 0

Прочее

1. Включение записи в двустронних разговорах

В диалплане должны быть строки:

exten => ext,prio,MixMonitor(filename)
exten => ext,prio,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
exten => ext,prio,Dial(callee)

Где ext - экстеншен, prio - приоритет, filename - имя файла записи, callee - вызываемый абонент.

2. Включение записи разговоров в конференциях

В диалплане должны быть строки:

exten => ext,prio,SET(CONFBRIDGE(bridge,record_conference)=yes)
exten => ext,prio,ConfBridge(num)

Где ext - экстеншен, prio - приоритет, num - номер комнаты для конференции.

Важно: предупреждение о записи разговора, когда оно включено в файле конфигурации, будет производиться всегда, даже если запись по факту отключена. Поэтому следует отключать предупреждение, если не включена запись.

Все файлы записи, как правило, сохраняются в директории /var/spool/asterisk/monitor

Применение изменений

После всех манипуляций следует перезапустить Asterisk, обычно, от привелегированного пользователя это команда:

$ systemctl restart asterisk.service