Установка FreePBX 14 на Debian 8.8

Установка FreePBX 14 на Debian 8.8

В данной статье рассматривается установка FreePBX 14 с Asterisk 13 на операционную систему Debian 8.

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

Первоначальная подготовка

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

Установка производится от root пользователя.

Обратите внимание: ЭТО ВАЖНО! Вы должны запустить весь процесс как root. Попытка использовать ‘sudo’ вызовет ошибки в работе системы. Пожалуйста, не игнорируйте это. Чтобы включить SSH доступ для пользователя root, выполните команды:

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

Шаг 1. Обновим систему

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

Шаг 2. Установим зависимости

apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server mysql-client MongoDB bison flex php5 php5-curl php5-cli php5-mysql php-pear php5-gd curl sox libncurses5-dev libssl-dev libmysqlclient-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 libmyodbc subversion libtool-bin python-dev
В процессе установки вам будет предложено несколько раз ввести пароль для MySQL. Вы можете пропустить шаг установки пароля (просто нажмите «Ввод»), так как дальнейшие инструкции будут генерировать безопасный пароль. Если вы установите пароль сейчас, это приведет к дальнейшим проблемам. Пожалуйста, не устанавливайте пароль MySQL, если вы не уверены в своих возможностях защиты SQL-сервера.

Шаг 3. Установка NodeJS

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

Шаг 4. Перезапускаем сервер

reboot

Шаг 4.1. Установим зависимости Google Voice. Вы можете пропустить этот шаг, если вам не нужна поддержка Google Voice.

pear install Console_Getopt
cd /usr/src
git clone https://github.com/meduketto/iksemel.git
cd iksemel
./autogen.sh
./configure
make
make install
ldconfig

Шаг 5. Установка Asterisk 13

cd /usr/src &&
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 &&
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz &&
wget http://www.digip.org/jansson/releases/jansson-2.11.tar.gz

Шаг 5.1. Компилируем и устанавливаем DAHDI и LibPRI

Если у вас нет физического оборудования PSTN, подключенного к этому серверу, вам не нужно устанавливать DAHDI. (Например, карта T1 или E1 или устройство USB).
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

Шаг 6. Компиляция и установка Jansson

cd /usr/src
tar vxfz jansson.tar.gz
cd jansson-*
autoreconf -i
./configure
make
make install

Шаг 7. Компиляция и установка Asterisk 13

cd /usr/src
tar xvfz asterisk-13-current.tar.gz
cd asterisk-*
contrib/scripts/get_mp3_source.sh
contrib/scripts/install_prereq install
./configure
make menuselect
Вам будет предложено выбрать, какие модули нужно установить. Большинство из них уже будут включены, но если вы хотите иметь поддержку MP3 (например, для музыки при удержании), вам необходимо вручную включить ‘format_mp3’ на первой странице.
Установка FreePBX 14 на Debian 8.8
После выбора всех необходимый модулей нажмите «Save & Exit».
make
make install
make config
ldconfig
update-rc.d -f asterisk remove

Шаг 8. Установка и настройка FreePBX 14

Для большей безопасности не будем разрешить работать Asterisk PBX под пользователем root, создаем нового пользователя asterisk, под которым будет работать наша телефония.
adduser --system --group --home /var/lib/asterisk --no-create-home --disabled-password --gecos "Asterisk PBX" asterisk &&
usermod -a -G dialout,audio asterisk
В файле /etc/default/asterisk необходимо раскомментировать пользователя и группу, под которыми будет запускаться Asterisk:
AST_USER="asterisk"
AST_GROUP="asterisk"

Дадим права на каталоги для пользователя:

chown -R asterisk:asterisk /var/lib/asterisk &&
chown -R asterisk:asterisk /var/log/asterisk &&
chown -R asterisk:asterisk /var/run/asterisk &&
chown -R asterisk:asterisk /var/spool/asterisk &&
chown -R asterisk:asterisk /usr/lib/asterisk &&
chown -R asterisk:asterisk /etc/asterisk &&
chmod -R u=rwX,g=rX,o=rX /var/lib/asterisk &&
chmod -R u=rwX,g=rX,o=rX /var/log/asterisk &&
chmod -R u=rwX,g=rX,o=rX /var/run/asterisk &&
chmod -R u=rwX,g=rX,o=rX /var/spool/asterisk &&
chmod -R u=rwX,g=rX,o=rX /usr/lib/asterisk &&
chmod -R u=rwX,g=rX,o=rX /etc/asterisk

Несколько небольших изменений в Apache:

sed -i 's/(^upload_max_filesize = ).*/120M/' /etc/php5/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
service apache2 restart

Настройка ODBC

cat >> /etc/odbcinst.ini << EOF
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
EOF
Отредактируем или создадим файл /etc/odbc.ini и произведем настройку:
cat >> /etc/odbc.ini << EOF
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock
option=3
EOF

Шаг 9. Настроим БД MariaDB

cd /tmp
sudo wget https://downloads.mariadb.com/enterprise/r8ex-kwwe/connectors/odbc/connector-odbc-2.0.9/mariadb-connector-odbc-2.0.9-beta-linux-x86_64.tar.gz
sudo tar zxvf mariadb-connector-odbc-2.0.9-beta-linux-x86_64.tar.gz
sudo mv mariadb-connector-odbc-2.0.9-beta-linux-x86_64/lib/libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/
sed -i s/libmyodbc/libmaodbc/ /etc/odbcinst.ini
Вместо password указываем пароль введенный вами в процессе установки MariaDB. Должно получится: -pВАШ_ПАРОЛЬ. Вместо asteriskuser, необходимо указать имя пользователя для доступа к БД, а вместо asteriskpassword пароль этого пользователя.
mysql -uroot -ppassword create asterisk
mysql -uroot -ppassword create asteriskcdrdb
mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'asteriskpassword';"
mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'asteriskpassword';"
mysql -uroot -ppassword -e "FLUSH PRIVILEGES;"

Шаг 10. Скачаем и установим FreePBX 14 На этапе установки необходимо указать dbuser и dbpass.

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

Перезапустим Apache2

a2enmod rewrite
service apache2 restart
Обратите внимание, что вам нужно настроить FreePBX для запуска Asterisk (и связанных с ней сервисов) при загрузке системы. Редактируем файл /etc/systemd/system/freepbx.service
[Unit]
Description=FreePBX VoIP Server
After=mysql.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
systemctl status -l freepbx.service
Установка закончена и теперь необходимо перейдите по адресу http://ВАШ_IP/admin и произвести настройку администратора, указав логин и пароль.