Установка Asterisk 15/16 и FreePBX 14 на Centos 7

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

  • При установке ОС нужно не забыть указать root пароль.
  • Также включить сетевой адаптер и настроить его:

set_root_password_centos7 netwotrk_enable_centos7

  • Чтобы было легче осуществлять настройку, в дальнейшем можно подключаться по ssh.
  • Нужно запускать все эти команды от пользователя root.
  • Также нужно отключить selinux. Он может вести себя странно во время установки.

Отключение selinux

  • Внутри /etc/sysconfig/selinux измените следующие строки:
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
  • Перезагрузитесь (reboot) и проверьте статус selinux путем запуска 'sestatus'. Он должен вывести:
SELinux status: disabled

Установка зависимостей

  • Выполняйте куски команд поочередно:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install kernel-devel kernel-headers \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \
http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum-utils
yum-config-manager --enable remi-php56
  • Скопировать все строки и вставить в консоль:
yum install -y e2fsprogs-devel  keyutils-libs-devel krb5-devel libogg \
libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp php-pear \
php php-gd php-mysql php-pdo php-mbstring ncurses-devel \
audiofile-devel libogg-devel openssl-devel zlib-devel  \
perl-DateManip sox git wget net-tools psmisc
yum install -y gcc gcc-c++ make gnutls-devel \
libxml2-devel ncurses-devel subversion doxygen \
texinfo curl-devel net-snmp-devel neon-devel  \
uuid-devel libuuid-devel sqlite-devel sqlite \
speex-devel gsm-devel libtool libtool-ltdl libtool-ltdl-devel \
libsrtp libsrtp-devel xmlstarlet
yum install -y unixODBC unixODBC-devel
  • Перезагружаемся:
reboot
  • Устанавливаем MariaDB(MySQL):
yum -y install mariadb-server mariadb mariadb-devel
  • Включаем и запускаем сервис Mariadb(MySQL):
systemctl start mariadb.service &&
systemctl enable mariadb.service

Для нормального отображения кириллицы в FreePBX, скомпилируйте коннектор ODBC проблемы_с_отображением_кириллицы_в_cdr
или просто установите из репо

yum install -y mysql-connector-odbc
yum update -y
  • Опционально. Запускаем интерактивный конфигуратор, вас спросят пароль от root и другое:
mysql_secure_installation
Если вы задали пароль root пользователя mysql, позднее, при установке FreePBX выполните скрипт ./install в интерактивном режиме без ключа «-n».
В ходе выполнения установки вам будет предложено ввести пароль пользователя root в mysql. Введите ранее заданный пароль.

Выполняем команды также как и раньше

  • Скачиваем архив с Asterisk:

Asterisk 15

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

Asterisk 16

http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
  • Распаковываем:
tar zxvf asterisk-1*.tar.gz
  • Переходим в директорию:
cd asterisk*
  • Запускаем скрипт:
contrib/scripts/get_mp3_source.sh
  • Выполняем скрипт:
contrib/scripts/install_prereq install
  • Настраиваем:

Asterisk 15

./configure --with-pjproject-bundled --with-crypto --with-ssl=ssl --with-srtp

Asterisk 16

   ./configure --with-pjproject-bundled --with-crypto --with-ssl=ssl --with-srtp --with-jansson-bundled
  • Запускаем меню:
make menuselect
  • Поменяйте настройки как вам будет нужно:

На скриншотах показана минимальная установка аддонов, кодеков и драйверов канала.



Установка

make && make install && make config && ldconfig
  • Настройка запуска Asterisk от имени того же пользователя:
sed -i 's/ASTARGS=""/ASTARGS="-U asterisk"/g'  /usr/sbin/safe_asterisk
  • Создание пользователя Asterisk и изменение владельца:
useradd -m asterisk &&
chown asterisk.asterisk /var/run/asterisk &&
chown -R asterisk.asterisk /etc/asterisk &&
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk &&
chown -R asterisk.asterisk /usr/lib/asterisk
  • Давайте проверим Asterisk:
/etc/init.d/asterisk start

Вывод:

Starting asterisk (via systemctl):                         [  OK  ]
  • Проверим пользователей:
ps aux | grep asterisk

Вывод:

root       872  0.0  0.0 115300   780 ?        S    12:12   0:00 /bin/sh /usr/sbin/safe_asterisk
asterisk   881  2.4  0.9 1314384 36532 ?       Sl   12:12   0:01 /usr/sbin/asterisk -f -U asterisk -vvvg -c
Если ответ будет такой:
Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)

То просто перезагрузите сервер и выполните:

asterisk -vvvr

Осуществим некоторые модификации в Apache

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini &&
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf &&
sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf &&
systemctl restart httpd.service

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

cd /usr/src &&
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz &&
tar xfz freepbx-14.0-latest.tgz &&
rm -f freepbx-14.0-latest.tgz &&
cd freepbx &&
./start_asterisk start
  • Запустим установочный скрипт
    • если пропустить ключ «-n» установка пройдет в интерактивном режиме, это может пригодиться, например, если задан пароль mysql.
./install -n
Если после выполнения последней команды консоль выдаст ошибку типа:
Reading /etc/asterisk/asterisk.conf...Error!
Unable to read /etc/asterisk/asterisk.conf or it was missing a directories section

Добавить в конец конфига /etc/asterisk/asterisk.conf строки:

[directories]
astetcdir => /etc/asterisk
astmoddir => /usr/lib/asterisk/modules
astvarlibdir => /var/lib/asterisk
astdbdir => /var/lib/asterisk
astkeydir => /var/lib/asterisk
astdatadir => /var/lib/asterisk
astagidir => /var/lib/asterisk/agi-bin
astspooldir => /var/spool/asterisk
astrundir => /var/run/asterisk
astlogdir => /var/log/asterisk
astsbindir => /usr/sbin

Выключение фаервола и запуск и автозагрузка http сервера

  • Выключаем фаервол и убираем из автозагрузки:
systemctl stop firewalld &&
systemctl disable firewalld
  • Запускаем сервер http и ставим в автозагрузку:
systemctl start httpd &&
systemctl enable httpd

Готово!

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

Проблемы с отображением кириллицы в CDR

сносим старый коннектор:

 rpm -e mysql-connector-odbc --nodeps

Установим CMAKE

wget https://cmake.org/files/v3.12/cmake-3.12.3.tar.gz
tar zxvf cmake-3.*
cd cmake-3.*
./bootstrap && make && make install

Компилируем новый коннектор:

cd /usr/src
git clone https://github.com/MariaDB/mariadb-connector-odbc.git
cd mariadb-connector-odbc
git checkout 3.0.7
git submodule init
git submodule update
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCONC_WITH_UNIT_TESTS=Off  -DWITH_OPENSSL=true -DCMAKE_INSTALL_PREFIX=/usr/local
make
make install

Правим /etc/odbcinst.ini , добавляем новый драйвер:

[MariaDB]
Description=ODBC for MariaDB
Driver=/usr/local/lib64/libmaodbc.so
Setup=/usr/lib64/libodbcmyS.so
UsageCount=1

Убедитесь что libmaodbc там где указано:

# find / -name "libmaodbc.so"

/usr/local/lib64/libmaodbc.so
/usr/src/mariadb-connector-odbc/libmaodbc.so

И измените имя драйвера в odbc.ini на MariaDB, ну или на то что вы укажете в odbcinst.ini

[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MariaDB
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/lib/mysql/mysql.sock
option=3
Charset=utf8

Такие дела…

  • asterisk_install/asterisk15_freepbx14_centos7_ru.txt
  • Последние изменения: 2019/12/12