С момента прошлого значительно выпуска прошло почти два года, и вот наконец компания Digium сформировала релиз новой стабильной ветки открытой коммуникационной платформы Asterisk 14. Asterisk 14 отнесён к категории выпусков Standard, обновления для которых формируются в течение двух лет. В 2017 году компания планирует выпустить LTS-релиз, который будет поддерживаться для октября 2022 года. Поддержка прошлой LTS-ветки Asterisk 13 продлится до октября 2019 года.
Основные улучшения, добавленные в Asterisk 14:
- Полная переработка кода для работы с DNS (в прошлых версиях, если DNS-сервер не отвечал в течении 1 секунды , что "такого-то сервера нет" или "адрес такой-то", то подвисал SIP), включая реализацию полной поддержки записей NAPTR и SRV в стеке PJSIP при помощи библиотеки libunbound;
- Отправка состояния расширений на сервер SIP-подписок (SIP Subscription server), например Kamailio. Возможна автоматическая генерация информации об изменении состоянии устройства для сценариев обработки вызовов (dialplan) через новую конфигурационную директиву «autohint»;
- И другие улучшения (более подробно можно причитать на wiki asterisk).
По традиции выкладываем статью по установки Asterisk на CentOS. В данной статье мы опишем процесс установки Asterisk 14 на CentOS 7.
Поехали
Первым делом проверим включен или выключен SELinux. Вводим в консоли команду
sestatus
Если видим следующий вывод, то SELinux включен.
SELinux status: enforcing
Отключаем SELinux и перезагружаем машину
vi /etc/sysconfig/confogselinux SELINUX=disabled reboot
Подключаем дополнительный репозиторий EPEL
rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm yum -y update
Установим зависимости для корректной работы Asterisk
yum install -y gcc gcc-c++ lynx bison mariadb-devel mariadb-server mariadb gmime-devel psmisc php php-mysql php-pear php-mbstring\ tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel subversion kernel-devel\ kernel-devel-$(uname -r) git subversion kernel-devel php-process crontabs cronie cronie-anacron wget vim php-xml uuid-devel libtool sqlite-devel libuuid-devel bzip2
Запустим и включим автозагрузку Mariadb
systemctl enable mariadb.service systemctl start mariadb.service
По умолчанию, после установки, мы можем подключиться к нашему серверу баз данных под root-ом без ввода пароля. Поэтому назначим пароль и сделаем еще несколько настроек, выполнив скрипт:
mysql_secure_installation Set root password? [Y/n] New password:Re-enter new password:Password updated successfully! Remove anonymous users? [Y/n] Disallow root login remotely? [Y/n] Remove test database and access to it? [Y/n] Reload privilege tables now? [Y/n] Thanks for using MariaDB!
Установим PearDB
pear uninstall db pear install db-1.7.14
Скачиваем Pjproject, Jansson и сам Asterisk
cd /usr/src/ wget http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2 wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
Распаковываем и компилируем pjproject
tar -xjvf pjproject-2.4.tar.bz2 cd pjproject-2.4* ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --libdir=/usr/lib64 make dep make make install cd .. rm -rf pjproject-2.4.tar.bz2
Распаковываем и компилируем jansson
tar zvxf jansson-2.5.tar.gz cd jansson-2.5 ./configure --prefix=/usrmake clean make make install ldconfig cd .. rm -rf jansson-2.5.tar.gz
УСТАНОВКА ASTERISK
Распаковываем Asterisk 14
tar xvfz asterisk-14-current.tar.gz cd asterisk-14*
Начнем установку Asterisk 13. Необходимые модули устанавливаем командой make menuselect.
./configure --libdir=/usr/lib64 contrib/scripts/get_mp3_source.sh make menuselect
По большей части, все необходимые модули уже включены. Вы можете что-то добавить или удалить. При выборе модуля будет краткое описание его назначения. В разделе Add-ons для поддержки mp3 включите модуль 'format_mp3'.
Во вкладке Core Sound Packages выберите необходимые форматы звуковых пакетов.
В Music On Hold File Packages включаем все модули. В Extras Sound Packages включаем первые 4 модуля, содержащие EN. Нажимаем кнопку Save & Exit, и начинаем установку:
make
По завершению отработки данной команды, мы увидим сообщение о том, что сборка Asterisk успешно завершена и теперь можно начать его установку:
make install && make config && make samples && ldconfig
Делаем Русский язык по умолчанию:
sed -i 's/defaultlanguage = en/defaultlanguage = ru/' /etc/asterisk/asterisk.conf sed -i 's/;language=en/language=ru/' /etc/asterisk/*.conf
Создаем пользователя с правами доступа к директориям 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/lib64/asterisk
Перезапускаем Asterisk
systemctl restart asterisk
На этом установка завершена. Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в чат или на почту.