В этой статье мы расскажем как произвести установку Asterisk 16 LTS на CentOS 7 / Fedora. Asterisk – это мощная УАТС с открытым исходным кодом и с огромным количеством корпоративных функций.
Особенности Asterisk
- Конференц-связь
- Запись разговоров
- Мониторинг вызовов
- Аудио- и видео-конференции
- Голосовая почта
- Очередь вызовов
- Правила совершения звонка
- Голосовое меню
- Активные каналы связи
- Резервное копирование информации
- Идентификатор вызывающего абонента во время ожидания вызова
- Парковка вызовов
- Транскодирование
Подготовка системы
Прежде чем вы начнете выполнять команды установки Asterisk на вашем сервере CentOS 7 / Fedora, убедитесь, что все пакеты в системе обновлены.
Подключим дополнительные репозитории и обновим систему.
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum -y update yum -y install epel-release
Установите SELinux в Permissive Mode, выполнив следующие команды:
setenforce 0 sed -i 's/\(^SELINUX=\).*/\SELINUX=permissive/' /etc/selinux/config
Шаг 1: Установка зависимостей Asterisk 16
Первоначальный шаг при настройке Asterisk – установить все необходимые зависимости.
yum -y install wget vim net-tools yum -y groupinstall "Development Tools" yum -y install gcc gcc-c++ lynx bison automake mysql-devel e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libselinux-devel libsepol-devel gmp php-gd php-pdo gnutls-devel libogg-devel openssl-devel zlib-devel perl perl-DateManip mysql-server php php-mysql php-pear php-mbstring tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libedit* libxml2-devel libtiff-devel audiofile-devel gtk2-devel subversion kernel-devel git php-process crontabs cronie cronie-anacron wget vim php-xml uuid-devel libtool libtool-ltdl-devel sqlite-devel libuuid-devel sqlite unixODBC unixODBC-devel mysql-connector-odbc texinfo curl-devel net-snmp-devel neon-devel speex-devel gsm-devel iksemel-devel spandsp-devel mc htop doxygen path svn nmap
Шаг 2: Загрузка и установка Jansson
Jansson – это библиотека C для кодирования, декодирования и обработки данных JSON. Загрузите и установите его на сервере CentOS 7, выполнив следующие команды:
cd /usr/src/ git clone https://github.com/akheron/jansson.git cd jansson autoreconf -i ./configure --prefix=/usr/ make && make install
Шаг 3: Загрузка и установка PJSIP
PJSIP – это бесплатная мультимедийная библиотека с открытым исходным кодом, написанная на языке C, реализующая стандартные протоколы, такие как SIP, SDP, RTP, STUN, TURN и ICE. Клонируйте проект из Github, затем скомпилируйте и установите.
cd /usr/src/ export VER="2.8" wget http://www.pjsip.org/release/${VER}/pjproject-${VER}.tar.bz2 tar -jxvf pjproject-${VER}.tar.bz2 cd pjproject-${VER} ./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr/ --libdir=/usr/lib64/ --enable-shared --disable-video --disable-sound --disable-opencore-amr make dep make make install ldconfig
Шаг 4: Загрузка и установка Asterisk
Теперь, когда у нас установлены все пакеты и зависимости, мы готовы загрузить и установить Asterisk 16 на CentOS 7.
cd /usr/src/ wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz tar xvfz asterisk-16-current.tar.gz rm -f asterisk-16-current.tar.gz cd asterisk-* ./configure --libdir=/usr/lib64 –-with-jansson-bundled
Если все идет хорошо, вы должны получить вывод, подобно приведенному ниже:
configure: Menuselect build configuration successfully completed .$$$$$$$$$$$$$$$=.. .$7$7.. .7$$7:. .$$:. ,$7.7 .$7. 7$$$$ .$$77 ..$$. $$$$$ .$$$7 ..7$ .?. $$$$$ .?. 7$$$. $.$. .$$$7. $$$$7 .7$$$. .$$$. .777. .$$$$$$77$$$77$$$$$7. $$$, $$$~ .7$$$$$$$$$$$$$7. .$$$. .$$7 .7$$$$$$$7: ?$$$. $$$ ?7$$$$$$$$$$I .$$$7 $$$ .7$$$$$$$$$$$$$$$$ :$$$. $$$ $$$$$$7$$$$$$$$$$$$ .$$$. $$$ $$$ 7$$$7 .$$$ .$$$. $$$$ $$$$7 .$$$. 7$$$7 7$$$$ 7$$$ $$$$$ $$$ $$$$7. $$ (TM) $$$$$$$. .7$$$$$$ $$ $$$$$$$$$$$$7$$$$$$$$$.$$$$$$ $$$$$$$$$$$$$$$$. configure: Package configured for: configure: OS type : linux-gnu configure: Host CPU : x86_64 configure: build-cpu:vendor:os: x86_64 : pc : linux-gnu : configure: host-cpu:vendor:os: x86_64 : pc : linux-gnu :
Шаг 5: Установка параметров меню Asterisk
Настраиваем дополнительные параметры перед установкой, выполнив следующую команду:
make menuselect
Используйте клавиши со стрелками для навигации и клавишу Enter, чтобы выбрать.
На дополнениях выберите chan_ooh323 и format_mp3 как показано ниже.
В Core Sound Packages выберите форматы аудиопакетов, как показано ниже.
Для Music On Hold выберите следующие минимальные модули:
Для дополнительных звуковых пакетов выберите, как показано ниже:
Включить в app_macro разделе «Приложения». По умолчанию в Asterisk 16 Macro() выключен.
Вы можете изменить конфигурацию, которую вы считаете нужной в вашем проекте. Когда закончите, нажмите ‘Save & Exit‘.
Устанавливаем библиотеку mp3-декодера.
contrib/scripts/get_mp3_source.sh
Чтобы начать сборку и установку Asterisk с выбранными модулями, выполните команды.
make make install make samples make config ldconfig
Успешная установка сопровождается следующим выводом:
---- Asterisk Installation Complete -------+ + + + YOU MUST READ THE SECURITY DOCUMENT + + + + Asterisk has successfully been installed. + + If you would like to install the sample + + configuration files (overwriting any + + existing config files), run: + + + + For generic reference documentation: + + make samples + + + + For a sample basic PBX: + + make basic-pbx + + + + + +----------------- or ---------------------+ + + + You can go ahead and install the asterisk + + program documentation now or later run: + + + + make progdocs + + + + **Note** This requires that you have + + doxygen installed on your local system + +-------------------------------------------+
Для вас будет создан Asterisk systemd.
Создайте отдельного пользователя и группу для запуска Asterisk 16 и назначьте права:
groupadd asterisk useradd -r -d /var/lib/asterisk -g asterisk asterisk usermod -aG audio,dialout asterisk chown -R asterisk.asterisk /etc/asterisk chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk chown -R asterisk.asterisk /usr/lib64/asterisk
Установка пользователя Asterisk.
$ sudo vim /etc/sysconfig/asterisk AST_USER="asterisk" AST_GROUP="asterisk" $ sudo vim /etc/asterisk/asterisk.conf runuser = asterisk rungroup = asterisk
Перезапустите службу Asterisk для применения настроек.
systemctl restart asterisk
Установим службу в загрузку
systemctl enable asterisk
# asterisk -rvv Asterisk 16.0.1, Copyright (C) 1999 - 2018, Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Running as user 'asterisk' Running under group 'asterisk' Connected to Asterisk 16.0.1 currently running on centos-01 (pid = 17182) centos-01*CLI>
Заключение
Теперь у вас есть работающий Asterisk 16 на сервере CentOS 7. Оставайтесь с нами и оставляйте комментарии, если у вас возникнут какие-либо проблемы с настройкой.
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.