Администрирование, Блог

IT понятным языком. Установка Asterisk + FreePBX + Запись звонков. Часть II: FreePBX + Samba.

Ранее нам удалось разобраться с установкой 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

В целом, данных настроек достаточно для нормального функционирования телефонии внутри Вашей сети. Установка номера для внешних звонков будет отличаться для каждого оператора.