Установка Asterisk 15/16 и FreePBX 14 на Centos 7
Установка Centos 7
Начальная настройка системы
- При установке ОС нужно не забыть указать root пароль.
- Также включить сетевой адаптер и настроить его:
- Чтобы было легче осуществлять настройку, в дальнейшем можно подключаться по 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
Установка MySQL(mariadb)
- Устанавливаем 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. Введите ранее заданный пароль.
Установка Asterisk
Выполняем команды также как и раньше
- Скачиваем архив с 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
Установка и настройка FreePBX
Осуществим некоторые модификации в 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
Такие дела…