Установка FreePBX 13 с Asterisk 13 на Debian 9.0

Установка FreePBX 13 с Asterisk 13 на Debian 9.0

В данном готовом продукте мы будем использовать:
  • Debian 9.0
  • Asterisk 13
  • FreePBX 13
  • MariaDB 10.1
  • PHP 5.6
Для установки мы будем использовать DVD-версию системы Debian 9.0 с уже установленными пакетами mariaDB, PHP 7.0
По умолчанию сервер OpenSSH в Deiban 9 настроен с параметром “PermitRootLogin without-password“, он отключает root авторизацию, если используем SSH. Мне это неудобно для тестовых машин в локальной сети, поэтому включаю её обратно. Все команды выполняются от root.

Содержание

1. Подготовка системы:

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

Обновим систему и системные пакеты

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

2. Установим необходимые пакеты:

apt-get install -y build-essential linux-headers-`uname -r` subversion gcc `gcc-c++` lynx openssh-server apache2 bison flex sendmail sendmail-cf libmariadb-dev libmariadbclient-dev mariadb-devel mariadb-server mariadb-client curl sox libncurses5-dev libssl-dev mpg123 libpng-dev libxml2-dev libxml2 libcurl3 libnewt-dev sqlite3 libsqlite3-dev pkg-config bzip2 make automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev libpjsip2 libpjsip-simple2 libpjproject-dev vim wget curl sudo
В процессе установки система запросит пароль для root пользователя MariaDB. Советуем создать сложный пароль и записать его.

3. Перезапустим систему:

reboot

4. Установка PHP5.6

apt install ca-certificates apt-transport-https
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list
apt update
apt install php5.6
apt install php5.6-cli php5.6-common php5.6-curl php5.6-mbstring php5.6-mysql php5.6-xml

5. Установим зависимости, необходимые для Google Voice:

Данный пункт не обязателен и нужен при использовании синтеза и распознавания речи или для использования так называемого “Умного IVR”. IVR, который управляется голосом.
pear install Console_Getopt
cd /usr/src
git clone https://github.com/meduketto/iksemel.git
cd iksemel
./configure
make
make install
ldconfig

6. Скачаем пакеты: Dahdi, Asterisk 13, Jansson:

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 &&

7. Распакуем и установим Dahdi, Libpri:

cd /usr/src
tar xvfz 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
cd libpri-*
make
make install

8. Распакуем и установим Jansson:

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

9. Распакуем и установим 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

В открывшемся окне необходимо указать код страны 7

Установка FreePBX 13 с Asterisk 13 на Debian 9.0

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

Установка FreePBX 13 с Asterisk 13 на Debian 9.0

После того, как модули выбраны жмем Save & Exit и продолжаем установку:

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

10. Для большей безопасности, создадим пользователя и дадим ему необходимые права:

Для большей безопасности не будем разрешить работать 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
10.1 В файле /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

11. Произведем модификацию Apache 2 для дальнейшей работы с FreePBX 13:

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

12. Настроим 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

13. Настроим БД MariaDB:

Вместо 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;"

14. Заключительный этап. Скачаем и установим FreePBX 13:

На этапе установки необходимо указать dbuser и dbpass, которые вы ввели в пункте 14.

cd /usr/src
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz
tar vxfz freepbx-13.0-latest.tgz
cd freepbx
./start_asterisk start
./install -n --dbuser=asteriskuser --dbpass=asteriskpassword

Установка закончена и теперь необходимо перейте по адресу http://ВАШ_IP/admin и произвести настройку администратора, указав логин и пароль.

Установка FreePBX 13 с Asterisk 13 на Debian 9.0

На этом установка окончена, можно приступать к настройке. Если в статье допущены ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.