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


В данном готовом продукте мы будем использовать:

  • Debian 9.0
  • Asterisk 13
  • FreePBX 13
  • MariaDB 10.1
  • PHP 5.6

Почему данное решение используется MariaDB, а не MySQL в качестве хранения данных в БД можно почитать в этой статье. Для установки мы будем использовать 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 php-pear curl sox php7.0 php7.0-mysql php7.0-mcrypt php7.0-curl php7.0-gd libapache2-mod-php7.0 php7.0-mbstring php7.0-xml 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. Заменим PHP7.0 на PHP5.6


nano /etc/apt/sources.list
Добавим репозитории
# Repositorios de Jessie
deb http://ftp.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.debian.org/debian/ jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free
Настроим предпочтения для использования двух хранилищ. Добавим в файл /etc/apt/preferences.d/jessie следующее:
Package: *
Pin: release n=stretch
Pin-Priority: 900

Package: *
Pin: release n=jessie
Pin-Priority: 100
Обновим новые параметры
apt update
Установим PHP5.6
apt install php5 php5-pgsql php5-gd php5-curl php5-cli apache2

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



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

После того, как модули выбраны жмем 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 и произвести настройку администратора, указав логин и пароль.

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



Опубликовать:

4 комментария:

Unknown комментирует...

4. Заменим PHP7.0 на PHP5.6 - а зачем потребовалось это делать?

Анонимный комментирует...

Debian 9.5
root@debian:~# 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 php-pear curl sox php7.0 php7.0-mysql php7.0-mcrypt php7.0-curl php7.0-gd libapache2-mod-php7.0 php7.0-mbstring php7.0-xml 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
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
E: Не удалось найти пакет gcc-c+
E: Не удалось найти пакет с помощью regex «gcc-c+»
E: Не удалось найти пакет mariadb-devel

sources.list у меня выглядит так
#

# deb cdrom:[Debian GNU/Linux 9.5.0 _Stretch_ - Official amd64 NETINST 20180714-10:25]/ stretch main

#deb cdrom:[Debian GNU/Linux 9.5.0 _Stretch_ - Official amd64 NETINST 20180714-10:25]/ stretch main

deb http://mirror.yandex.ru/debian/ stretch main
deb-src http://mirror.yandex.ru/debian/ stretch main

deb http://security.debian.org/debian-security stretch/updates main
deb-src http://security.debian.org/debian-security stretch/updates main

# stretch-updates, previously known as 'volatile'
deb http://mirror.yandex.ru/debian/ stretch-updates main
deb-src http://mirror.yandex.ru/debian/ stretch-updates main

deb http://ftp.debian.org/debian oldstable main contrib non-free

# Repositorios de Jessie
deb http://ftp.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.debian.org/debian/ jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

Максим Неустроев комментирует...

Потому что изначально устанавливаются пакеты PHP7.0

Анонимный комментирует...

gcc-c++ нужно в кавычки заключить `gcc-c++`, а mariadb-devel удалил из списка и пока проблем не увидел.

Отправить комментарий

Популярное

Форма для связи

Имя

Электронная почта *

Сообщение *