Установка FreePBX 15 с Asterisk 16 на Debian 9.6

Установка FreePBX 15 с Asterisk 16 на Debian 9.6

Ручная установка FreePBX рекомендована ТОЛЬКО ДЛЯ ЭКСПЕРТОВ. Этот метод установки обеспечит ОСНОВНОЙ функциональностью FreePBX. Некоммерческие модули могут работать не так, как ожидается. Для некоторых модулей и функций может потребоваться установка и настройка дополнительного программного обеспечения на сервере.

**** КОММЕРЧЕСКИЕ МОДУЛИ НЕ БУДУТ УСТАНАВЛИВАТЬСЯ НА ЭТУ ОС ****

Для Asterisk 16 вы должны включить app_macro в make menuselect

Начальная настройка системы

При установке ОС Debian убедитесь, что вы выбрали, по крайней мере, «web-server» и «SSH server». Вы также можете отключить «Окружение рабочего стола Debian».

Установка FreePBX 15 с Asterisk 16 на Debian 9.6

Войдите в систему под пользователем root или переключитесь на него.
ЭТО ВАЖНО! Вы должны запустить весь процесс установки от имени пользователя root. Попытка использовать sudo не будет работать. Пожалуйста, не игнорируйте это. Для активации SSH авторизации как root вам нужно изменить строку ‘PermitRootLogin without-password‘ на ‘PermitRootLogin yes‘ в /etc/ssh/sshd_config. Вы можете сделать это с помощью следующих команды:

sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
service sshd restart

Обновление системы

apt-get update && apt-get upgrade -y

Установка необходимых зависимостей

apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mariadb-server mariadb-client bison flex php php-curl php-cli php-pdo php-mysql php-pear php-gd curl sox libncurses5-dev libssl-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev sudo subversion libtool-bin python-dev unixodbc dirmngr php-mbstring sendmail

Установка NodeJS

curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
sudo apt-get install -y nodejs

Перезагрузка сервера

reboot

Установка MariaDB ODBC

MariaDB-разъем-odbc_3.0.7-1_amd64.deb

MariaDB-разъем-клиент-library_3.0.8-1_amd64.deb

cd /usr/src/
wget https://wiki.freepbx.org/download/attachments/122487323/mariadb-connector-client-library_3.0.8-1_amd64.deb
wget https://wiki.freepbx.org/download/attachments/122487323/mariadb-connector-odbc_3.0.7-1_amd64.deb
dpkg -i mariadb-connector-client-library_3.0.8-1_amd64.deb
dpkg -i mariadb-connector-odbc_3.0.7-1_amd64.deb

Установка требований Legacy Pear

pear install Console_Getopt

Установка и настройка Asterisk

Загружаем исходные файлы Asterisk.

cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

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

Если у вас нет физического оборудования PSTN, подключенного к серверу, вам не нужно устанавливать DAHDI. (Например, плата E1 или устройство USB). Большинство установок не будет иметь аппаратного обеспечения DAHDI, и этот шаг можно пропустить.

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
cd /usr/src
tar xvfz dahdi-linux-complete-current.tar.gz
rm -f dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-*
make all
make install
make config
cd /usr/src
tar xvfz libpri-current.tar.gz
rm -f libpri-current.tar.gz
cd libpri-*
make
make install

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

В некоторых сценариях вы можете включить CORE-SOUNDS и EXTRA-SOUNDS, но это не нужно во FreePBX, так как модуль Sound Languages ​​сделает это за вас.

cd /usr/src
tar xvfz asterisk-16-current.tar.gz
rm -f asterisk-16-current.tar.gz
cd asterisk-*
contrib/scripts/get_mp3_source.sh
contrib/scripts/install_prereq install
./configure --with-pjproject-bundled --with-jansson-bundled
make menuselect.makeopts
menuselect/menuselect --enable app_macro --enable format_mp3 menuselect.makeopts

После выбора модулей нажимаем «Сохранить и выйти» и продолжаем установку:

make
make install
make config
ldconfig
update-rc.d -f asterisk remove

Установка и настройка FreePBX

Создайте пользователя Asterisk и установите разрешения для файлов.

useradd -m asterisk
chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/{lib,log,spool}/asterisk
chown -R asterisk. /usr/lib/asterisk
rm -rf /var/www/html

Несколько небольших модификаций Apache.

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/7.0/apache2/php.ini
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
a2enmod rewrite
service apache2 restart

Настройка ODBC

Отредактируйте /etc/odbcinst.ini и добавьте следующее. Обратите внимание, что эта команда предполагает, что вы устанавливаете Asterisk на новый сервер, и что файл пуст. Если это не только что установленный сервер, проверьте содержимое файла вручную. ‘EOF‘ не записывается в файл, он просто сообщает команде ‘cat‘, что вы закончили вставку.

cat < /etc/odbcinst.ini
[Default]
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so

[MariaDB]
Description = ODBC for MariaDB
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1

EOF

Возможно, вам придется проверить эти пути, если ваша система не x86_64. Вы можете использовать команду `find / -name libmyodbc.so`, чтобы проверить местоположение

Отредактируйте или создайте /etc/odbc.ini и добавьте следующий раздел. Обратите внимание, что эта команда предполагает, что вы устанавливаете на новый сервер и файл пустой или его нет. Пожалуйста, проверьте содержимое файлов вручную, если это не так.

cat < /etc/odbc.ini
[MariaDB-asteriskcdrdb]
Description = MariaDB connection to 'asteriskcdrdb' DB
Driver = MariaDB
Server = localhost
Database = asteriskcdrdb
Port = 3306
Trace = Yes
TraceFile = /tmp/odbc.log
Socket = /var/run/mysqld/mysqld.sock
Option = 3
EOF

Скачивание и установка FreePBX

cd /usr/src
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-15.0-latest.tgz
tar vxfz freepbx-15.0-latest.tgz
rm -f freepbx-15.0-latest.tgz
touch /etc/asterisk/{modules,cdr}.conf
cd freepbx
./start_asterisk start
./install -n

Теперь вы можете использовать FreePBX. Откройте веб-браузер и подключитесь к IP-адресу или имени хоста вашего нового сервера FreePBX. Вы увидите страницу настройки администратора, где вам необходимо установить пароль учетной записи «admin» и настроить адрес электронной почты для получения уведомлений об обновлениях.

Мы надеемся, что вам понравится FreePBX 15!

Автоматический запуск

Обратите внимание, что вам нужно настроить FreePBX для запуска Asterisk (и связанных служб) при перезагрузке сервера. Правим файл /etc/systemd/system/freepbx.service

[Unit]
Description=FreePBX VoIP Server
After=mariadb.service
 
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/fwconsole start -q
ExecStop=/usr/sbin/fwconsole stop -q
 
[Install]
WantedBy=multi-user.target
systemctl enable freepbx.service
ln -s '/etc/systemd/system/freepbx.service' '/etc/systemd/system/multi-user.target.wants/freepbx.service'
systemctl start freepbx

Проверяем состояние службы:

[root@firewall ~]# systemctl status -l freepbx.service
freepbx.service - FreePBX VoIP Server
   Loaded: loaded (/etc/systemd/system/freepbx.service; enabled)
   Active: active (exited) since Wed 2019-03-13 09:20:09 AEST; 52s ago
  Process: 5020 ExecStart=/usr/sbin/fwconsole start (code=exited, status=0/SUCCESS)
 Main PID: 5020 (code=exited, status=0/SUCCESS)
Mar 13 09:20:06 firewall.xrobau.com fwconsole[5020]: Running Sysadmin Hooks
Mar 13 09:20:06 firewall.xrobau.com fwconsole[5020]: Starting Asterisk...
Mar 13 09:20:06 firewall.xrobau.com fwconsole[5020]: 0/100 [>---------------------------]   0%
Mar 13 09:20:07 firewall.xrobau.com fwconsole[5020]: 33/100 [=========>------------------]  33%
Mar 13 09:20:08 firewall.xrobau.com fwconsole[5020]: 66/100 [==================>---------]  66%
Mar 13 09:20:09 firewall.xrobau.com fwconsole[5020]: 99/100 [===========================>]  99%
Mar 13 09:20:09 firewall.xrobau.com fwconsole[5020]: 100/100 [============================] 100%
Mar 13 09:20:09 firewall.xrobau.com fwconsole[5020]: Asterisk Started on  5523
Mar 13 09:20:09 firewall.xrobau.com fwconsole[5020]: Running Post-Asterisk Scripts
Mar 13 09:20:09 firewall.xrobau.com systemd[1]: Started FreePBX VoIP Server.
[root@firewall ~]#