astwarn - набор модулей для Asterisk, предназначенный для внедрения голосового или тонового предупреждения о записи разговора.
Программу можно скачать по ссылке.
Предполагается, что в текущей ОС уже установлены основные средства сборки (gcc make automake autoconf libtool).
Требуется установить заголовочные файлы для asterisk, libsndfile и libsamplerate.
Для Debian: asterisk-dev libsndfile1-dev libsamplerate0-dev
Для Fedora: asterisk-devel libsndfile-devel libsamplerate-devel
Распакуйте архив и перейдите в появившуюся директорию:
$ 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 соответственно.
Далее следует выполнить команду сборки:
$ make
Следующим шагом будет выполнение команды установки, которую нужно выполнить от имени превилегированного пользователя (либо с повышением уровня прав c использованием команды sudo):
$ make install
Необходимо в файле /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 |
В диалплане должны быть строки:
exten => ext,prio,MixMonitor(filename)
exten => ext,prio,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
exten => ext,prio,Dial(callee)
Где ext - экстеншен, prio - приоритет, filename - имя файла записи, callee - вызываемый абонент.
В диалплане должны быть строки:
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