Меню Рубрики

Установка asterisk на centos из пакетов

Как установить Asterisk 16 LTS на CentOS 7 / Fedora

В этой статье мы расскажем как произвести установку Asterisk 16 LTS на CentOS 7 / Fedora. Asterisk – это мощная УАТС с открытым исходным кодом и с огромным количеством корпоративных функций.

Особенности Asterisk

  • Конференц-связь
  • Запись разговоров
  • Мониторинг вызовов
  • Аудио- и видео-конференции
  • Голосовая почта
  • Очередь вызовов
  • Правила совершения звонка
  • Голосовое меню
  • Активные каналы связи
  • Резервное копирование информации
  • Идентификатор вызывающего абонента во время ожидания вызова
  • Парковка вызовов
  • Транскодирование

Подготовка системы

Прежде чем вы начнете выполнять команды установки Asterisk на вашем сервере CentOS 7 / Fedora, убедитесь, что все пакеты в системе обновлены.

Подключим дополнительные репозитории и обновим систему.

Установите SELinux в Permissive Mode, выполнив следующие команды:

Шаг 1: Установка зависимостей Asterisk 16

Первоначальный шаг при настройке Asterisk – установить все необходимые зависимости.

Шаг 2: Загрузка и установка Jansson

Jansson – это библиотека C для кодирования, декодирования и обработки данных JSON. Загрузите и установите его на сервере CentOS 7, выполнив следующие команды:

Шаг 3: Загрузка и установка PJSIP

PJSIP – это бесплатная мультимедийная библиотека с открытым исходным кодом, написанная на языке C, реализующая стандартные протоколы, такие как SIP, SDP, RTP, STUN, TURN и ICE. Клонируйте проект из Github, затем скомпилируйте и установите.

Шаг 4: Загрузка и установка Asterisk

Теперь, когда у нас установлены все пакеты и зависимости, мы готовы загрузить и установить Asterisk 16 на CentOS 7.

Если все идет хорошо, вы должны получить вывод, подобно приведенному ниже:

Шаг 5: Установка параметров меню Asterisk

Настраиваем дополнительные параметры перед установкой, выполнив следующую команду:

Используйте клавиши со стрелками для навигации и клавишу Enter, чтобы выбрать.

На дополнениях выберите chan_ooh323 и format_mp3 как показано ниже.


В Core Sound Packages выберите форматы аудиопакетов, как показано ниже.


Для Music On Hold выберите следующие минимальные модули:

Для дополнительных звуковых пакетов выберите, как показано ниже:

Включить в app_macro разделе «Приложения». По умолчанию в Asterisk 16 Macro() выключен.


Вы можете изменить конфигурацию, которую вы считаете нужной в вашем проекте. Когда закончите, нажмите ‘ Save & Exit ‘.

Устанавливаем библиотеку mp3-декодера.

Чтобы начать сборку и установку Asterisk с выбранными модулями, выполните команды.

Успешная установка сопровождается следующим выводом:

Для вас будет создан Asterisk systemd.

Создайте отдельного пользователя и группу для запуска Asterisk 16 и назначьте права:

Установка пользователя Asterisk.

Перезапустите службу Asterisk для применения настроек.

Установим службу в загрузку

Заключение

Теперь у вас есть работающий Asterisk 16 на сервере CentOS 7. Оставайтесь с нами и оставляйте комментарии, если у вас возникнут какие-либо проблемы с настройкой.

Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.

источник

Установка Asterisk 13 из пакетов на CentOS 7 Minimal (+ настройка и защита)

Задача: сделать базовую установку Asterisk на CentOS 7 Minimal (виртуальный облачный сервер Hetzner CX11)

1. Создаем нового пользователя и ограничиваем настройки входа по SSH

Для начала устанавливаем редактор nano:

Добавляем пользователя и назначаем ему новый пароль:

Читайте также:  Установка кровати в однокомнатной квартире

Редактируем /etc/ssh/sshd_config. В целях безопасности, запрещаем логин из под root’а и разрешаем вход только нашему новому пользователю:

После чего перезагрузим службу SSH и заходим по SSH с новым пользователем:

2. Устанавливаем и настраиваем сетевой экран

По умолчанию, в Hetzner сервер предоставляется пользователю без сетевого экрана. Займемся его установкой. Нам понадобятся права суперпользователя:

Мы добавили службу сетевого экрана в автозапуск. Установили зону «public» для интерфейса eth0. Последняя команда добавляет сервисы Asterisk в исключения для того, чтобы мы могли подключаться к АТС снаружи. Вывод команды «firewall-cmd —zone=public —list-all«

3. Подключим репозиторий EPEL и установим libcodec2

Для установки Asterisk нам понадобится пакет «codec2«, который мы можем установить из репозитория EPEL

4. Установка Asterisk

Для начала нам понадобится wget

Установку Asterisk будем производить из пакетов по инструкции https://tucny.com/telephony/asterisk-rpms

4.1 Подключаем репозиторий

Отредактируем файл /etc/yum.repos.d/tucny-asterisk.repo и установим строку «enabled=0» в разделах [asterisk-common] и [asterisk-13]. В нашем случае мы устанавливаем Asterisk версии 13. При необходимости, в этом конфигурационном файле можно отметить нужную версию:

4.2 Установка Asterisk с репозитория

4.3 Добавляем Asterisk в автозапуск, запускаем и проверяем

5. Настройка Asterisk

В нашей тестовой конфигурации мы создадим 5 внутренних номеров от 101 до 105. И настроим внутренние звонки между ними.

Для этого в файле /etc/asterisk/sip.conf добавляем наши внутренние номера в раздел [phones]:

В поле secret устанавливаем пароль для каждого внутреннего номера соответственно. Обязательно, в продакшн серверах используйте надежные пароли! Даже если сервер разворачивается как тестовый, через время вы можете решить использовать его для работы, а пароли поменять забудете.

В файле /etc/asterisk/extensions.conf определяем контекст «internal-calls«. Полное содержание файла:

6. Проверка Asterisk

Подключим 2 номера для проверки. Для этого отлично подойдет Zoiper for Windows. Для подключения используем IP-адрес сервера, внутренний номер и пароль. После подключения с помощью команды «sip show peers» увидим пиры:

Протестируем звонок с одного номера на другой:

Базовая настройка выполнена.

7. Защищаем сервер Asterisk с помощью Fail2Ban

Сервер Asterisk, который находится в «открытом» интернете, постоянно подвергается попыткам примитивного взлома от «ботов«, которые пытаются подобрать пароль от SSH или подлючиться к АТС. Для борьбы с ними, необходимо:

  1. Использовать сложные пароли. Обязательно!
  2. Использовать Fail2Ban, который будет временно блокировать IP-адреса, с которых осуществляется попытка взлома.

7.1 Включаем security-log в Asterisk

Включим security-лог Asterisk и настроим чтобы он записывался в отдельный файл. Кроме этого, поменяем формат даты в логах. Для этого, раскоментируем в файле «/etc/asterisk/logger.conf» 2 строки:

Перезагрузим настройки логгера Asterisk:

7.2 Установка Fail2Ban

Для установки Fail2Ban в CentOS 7 должен быть подключен репозиторий EPEL. Мы это уже сделали в предыдущих пунктах. Установим Fail2Ban и активируем в качестве службы:

Читайте также:  Установка магнитола для прадо 120

7.3 Настройка Fail2Ban

Файл настроек лежит по адресу «/etc/fail2ban/jail.conf«. однако, разработчики рекомендуют использовать не его копию по адресу «/etc/fail2ban/jail.conf«, которая будет иметь приоритет. Итак:

В нашем примере на сервере используются 2 службы: SSH и Asterisk. Обе они поддерживают авторизацию и подвержены бруфорсу и требуют защиты. Найдем и отредактируем в файле «jail.local» 2 секции [sshd] и [asterisk]:

В параметр ignoreip можно вписать IP-адреса, которые блокировать не требуется (свои подсети и т. д.). Добавим в файл «jail.local«:

Сохраним файл и перезапустим службу fail2ban:

7.4 Проверка Fail2Ban

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

После некоторого времени, начинает появлятся первый «улов». На картинке снизу наблюдаем 3 заблокированных IP-адреса:

источник

Установка Asterisk LTS на CentOS 7

В описанной инструкции рассмотрим пример установки с нуля Asterisk версии с длительной поддержкой на Linux CentOS 7.

Подготовка сервера

1. Устанавливаем необходимые программы

yum install gcc wget ntpdate automake libtool

* gcc нужен для сборки исходников, wget — для загрузки файлов из командной строки; ntpdate — синхронизации времени; automake — участвует в создании Makefile при запуске configure; libtool — обеспечивает процесс сборки и использования динамических библиотек.

2. Настраиваем время

Устанавливаем временную зону:

\cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

* в данном примере московское время.

Открываем на редактирование cron и создаем задание на автоматическую синхронизацию времени:

0 0 * * * /sbin/ntpdate ru.pool.ntp.org

* при таких настройках будет выполняться синхронизация раз в сутки в 00:00.

3. Настройка безопасности:

Создаем новый сервис в брандмауэре:

firewall-cmd —permanent —new-service=asterisk

Добавим в сервис нужные порты:

firewall-cmd —permanent —service=asterisk —add-port=5060/tcp

firewall-cmd —permanent —service=asterisk —add-port=5060/udp

firewall-cmd —permanent —service=asterisk —add-port=5061/tcp

firewall-cmd —permanent —service=asterisk —add-port=5061/udp

firewall-cmd —permanent —service=asterisk —add-port=4569/udp

firewall-cmd —permanent —service=asterisk —add-port=5038/tcp

firewall-cmd —permanent —service=asterisk —add-port=10000-20000/udp

* где 5060 — SIP, 5061 — SIP over TLS, 4569 — IAX, 5038 — AMI (Asterisk Manager Interface), 10000-20000 — диапазон для динамических портов.

Теперь добавляем созданный сервис как разрешенный:

firewall-cmd —permanent —add-service=asterisk

Установка Asterisk

Установка астериска выполняется путем сборки исходников. Сама процедура проходит в 3 этапа:

  1. Установка DAHDI (драйверов плат интерфейсов);
  2. Установка LibPRI (библиотека для работы с потоковыми TDM-интерфейсами);
  3. Собственно, сборка и установка Asterisk.

1. Сборка DAHDI

Загружаем исходник, распаковываем его и переходим в распакованный каталог:

tar -xvf dahdi-linux-complete-current.tar.gz

Выполняем сборку и установку:

Выходим из каталога с исходником:

2. Сборка LibPRI

Процедура, во многом, похожа на сборку DAHDI. Загружаем исходник, распаковываем его и переходим в распакованный каталог:

tar -xvf libpri-current.tar.gz

Выполняем сборку и установку:

Выходим из каталога с исходником:

3. Установка самого астериска

Для начала, загружаем исходник на сервер. Так как мы планируем установить LTS версию, заходим на страницу https://www.asterisk.org/downloads/asterisk/all-asterisk-versions, раздел «Long Term Support (LTS) Releases» и копируем ссылку на загрузку пакета:

* Certified Asterisk — бизнес версия с поддержкой для коммерческих клиентов.

Используя ссылку, скачиваем на сервер программу:

Распаковываем архив и переходим в него:

Используем встроенный скрипт, чтобы установить зависимости для астериска:

Читайте также:  Установка автозапуска бмв е53

Чистим образовавшиеся временные файлы:

Добавляем библиотеку для работы с mp3:

./configure —prefix=/usr —sysconfdir=/etc —localstatedir=/var —libdir=/usr/lib64 —with-dahdi —with-pri —with-iconv —with-libcurl —with-speex —with-mysqlclient

* полный перечень опция и что они означают можно посмотреть командой ./configure -h.

Выбираем необходимые компоненты (в данном примере res_config_mysql, app_mysql, cdr_mysql):

Запускаем сборку и установку:

Устанавливаем скрипты для автозапуска АТС и готовые конфигурационные файлы:

Базовая настройка и запуск

Открываем конфигурационный файл:

Снимаем комментарии и редактируем следующие пункты:

runuser = asterisk
rungroup = asterisk
defaultlanguage = ru
documentation_language = ru_RU

Задаем права на следующие каталоги:

chown -R asterisk:asterisk /var/run/asterisk

chown -R asterisk:asterisk /etc/asterisk

chown -R asterisk:asterisk /var//asterisk

chown -R asterisk:asterisk /usr/lib64/asterisk

chown -R asterisk:asterisk /var/log/asterisk

Если программа запустится, мы увидим Asterisk Ready:

* все ошибки и предупреждения можно проигнорировать, но правильнее их исправить, отключив неиспользуемые модули.

Теперь можно запустить астериск как службу:

systemctl enable asterisk

Заведение пользователя

Создадим наш первый диалплан (правило обработки звонков):

[outcaling]
exten => _XXX,1,Dial(SIP/$,,m)

* в данном примере мы создаем контекст с именем outcaling для трехзначных номеров (XXX) с вызовом по SIP по внутреннему номеру.

Теперь создадим два внутренних номера:

[public](!)
type=friend
context=outcaling
host=dynamic
disallow=all
allow=alaw
allow=ulaw
language=ru
qualify=yes
canreinvite=yes
call-limit=4
nat=no

[101](public)
regexten=101
secret=1234
caller
callgroup=1
pickupgroup=1

[102](public)
regexten=102
secret=5678
caller
callgroup=1
pickupgroup=1

* сначала мы создали шаблон public, в который занесли общие параметры. Шаблон мы применили к создаваемым коротким номерам.
* где:

  • [101], [102] — имена для обозначения номеров.
  • type — типы проверки номеров. Могут быть peer, user или friend. Peer — вызовы сопоставляются с IP-адресами и номерами портов. User — проверка username. Friend — включает возможности peer и user (проверка username и IP-адреса источника) и лучше всего подходит для телефонов и телефонных программ.
  • regexten — добавочный номер. Если не задан, используется имя.
  • secret — пароль для аутентификации.
  • context — контекст или группа правил.
  • host — IP-адрес или имя клиента. Для автоматической регистрации используем dynamic.
  • callerid — идентификатор пользователя при звонке.
  • disallow — запрещает кодеки (задается перед параметром allow).
  • allow — разрешает кодеки. alaw и ulaw — алгоритмы для кодеков g711.
  • language — код используемого языка.
  • callgroup — задает группу устройства (для возможности перехвата).
  • pickupgroup — задает перечень групп, которые можно перехватывать.
  • qualify — включает или отключает периодическую проверку подключенного клиента.
  • canreinvite — включает или отключает прохождение голосового RTP трафика через Asterisk. Устанавливать, только если клиент поддерживает функцию SIP re-invites.
  • call-limit — ограничение количества одновременных вызовов.
  • nat — устанавливается в yes, если клиент находиться за NAT.

systemctl restart asterisk

Подключение телефона и проверка

Для проверки сервера устанавливаем софт-телефон на компьютер. Например, а качестве SIP-клиента под Windows можно установить бесплатную программу X-Lite, для Android — Zoiper.

Пример настройки клиента X-Lite:

Настраиваем подключение с логином и паролем 101 / 1234, второй — 102 / 5678. Пробуем позвонить.

источник

Добавить комментарий

Adblock
detector