Ранее нам удалось разобраться с установкой Asterisk. Однако, если нам необходимо администрировать его в более дружелюбной, отличной от командной строки, среде, следует установить графическую оболочку — FreePBX. А если задача требует наличия возможности записывапть и прослушивать звонки, мы произведем несложную настройку общедоступной папки с помощью Samba.
Отмечу, что FreePBX имеет встроенный модуль для прослушивания записей, однако в рассматриваемой нами версии данный функционал отрабатывает некорректно. Вероятно, эта проблема решается приобретением платного модуля за 50 долларов. Тем не менее, мы смогли обойтись и без него.
Для начала подготовим все необходимые зависимости:
apt-get install software-properties-common -y
Далее необходимо добавить репозиторий для установки php:
add-apt-repository ppa:ondrej/php -y
После установки репозитория, перейдем к загрузке необходимых пакетов:
apt-get install apache2 mariadb-server libapache2-mod-php7.2 php7.2 php-pear php7.2-cgi php7.2-common php7.2-curl php7.2-mbstring php7.2-gd php7.2-mysql php7.2-bcmath php7.2-zip php7.2-xml php7.2-imap php7.2-json php7.2-snmp -y
Установив всю среду для работы FreePBX, загрузим ПО с официального сайта. Данная ссылка актуальна на момент выхода статьи. В случае недоступности данного адреса, проверьте актуальную версию на сайте производителя самостоятельно (www.freepbx.org).
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-15.0-latest.tgz
Распакуем скаченный дистрибутив:
tar -xvzf freepbx-15.0-latest.tgz
Перейдем в папку с распакованным ПО и установим NodeJS:
cd freepbx
apt-get install nodejs npm -y
Запустим установку самого FreePBX:
./install -n
В случае успеха, увидим следующий вывод:
Установим модуль pm2:
fwconsole ma install pm2
Сконфигуририруем работу Apache для работы под под пользователем Asterisk:
sed -i ‘s/^\(User\|Group\).*/\1 asterisk/’ /etc/apache2/apache2.conf
sed -i ‘s/AllowOverride None/AllowOverride All/’ /etc/apache2/apache2.conf
Оптимизируем размер обрабатываемых файлов Apache:
sed -i ‘s/\(^upload_max_filesize = \).*/\120M/’ /etc/php/7.2/apache2/php.ini
sed -i ‘s/\(^upload_max_filesize = \).*/\120M/’ /etc/php/7.2/cli/php.ini
Разрешим Apache перезаписывать данные:
a2enmod rewrite
И, для применения настроек, перезапустим его:
systemctl restart apache2
Наш веб-модуль для работы с Asterisk будет доступен по адресу: айпи-адрес-системы/admin. При первом посещении страницы, система предложит Вам создать учётную запись администратора, выбрать язык и настроить прочие мелочи. Этот процесс интуитивно понятен.
Дальнейшая настройка данной связки подразумевает внесение изменений через веб-клиент FreePBX. В принципе, данная конфигурация в состоянии работать «из коробки», предлагая базовый функционал.
Добавление новых пользователей. Для добавления новых пользователей, перейдите в раздел Applications, подменю Extensions. Нажмите кнопку «Add Extension» и выберете «Add New SIP [chain_pjsip] Extension». В графе «User Extension» следует указать номер пользователя, «Display Name» отвечает за имя абонента, а «Secret» — за пароль учётной записи. После внесения необходимых данных, нажмите кнопку «Submit» в нижней части экрана. После осуществления всех манипуляций, нажмите красную кнопку «Apply Config» в верхней части экрана.
Настройка записи звонков. Если Вам необходимо вести запись звонков определенного абонента, перейдите в уже знакомое подменю Applications → Extensions. Здесь Вы увидите уже созданных Вами пользователей. Чтобы настроить запись, в графе «Actions» нажмите на значок «Изменить» (Зрительно понятно, какой именно). В открывшемся окне перейдите в раздел «Advanced» и пролистайте до пункта «Recording Options». В каждом из пунктов необходимо выбрать «Yes» вместо «Don“t Care», а в «On Demand Recording» нажать «Enable». После завершения настройки кликнуть уже знакомый «Submit» и, в самом конце, «Apply Config».
Настройка Samba:
Первым делом, обновим пакеты, а после введем такую команду:
sudo apt install samba -y
Samba установит как свои пакеты, так и пакеты зависимостей для нормального функционирования.
Включим автозагрузку для Samba:
sudo systemctl enable smbd
Добавив ПО в автозагрузку, запустим его:
sudo systemctl start smbd
Проверим статус работоспособности:
sudo systemctl status smbd
Удостоверившись в том, что программа работает, настроим firewall:
sudo ufw allow Samba
Перйдем к настройке конфигурации для нашей папки. Конфигурационный файл лежит по данному адресу: /etc/samba/smb.conf
На всякий случай, лучше скопировать оригинальный файл, на случай необходимости отката изменений. Делается это следующей командой:
sudo cp /etc/samba/smb.conf /etc/samba/backup_smb.conf
Директория, в которой лежат записи выглядит так: /var/spool/asterisk/monitor. Сразу же выдадим ей нужные права:
sudo chmod 775 /var/spool/asterisk/monitor
Займёмся непосредственно конфигурацией Samba:
sudo nano /etc/samba/smb.conf
Внесем в файл новый блок данных:
[recordings_folder]
comment = recordings folder
path = /var/spool/asterisk/monitor
public = yes
writable = yes
read only = no
guest ok = yes
create mask = 0775
directory mask = 0775
force create mode = 0775
force directory mode = 0775
Сохраняем изменения в файле, после чего перезапускаем Samba следующей командой:
sudo systemctl restart smbd
После этого попробуйте перейти в «расшаренную» папку через проводник (Если речь идет о Windows) следующим образом:
\\ip-адрес-системы-с-Samba\monitor
В целом, данных настроек достаточно для нормального функционирования телефонии внутри Вашей сети. Установка номера для внешних звонков будет отличаться для каждого оператора.