Настройка астериск на centos 8

Обновлено: 03.07.2024

Проверьте правильность установленной тайм-зоны и при необходимости измените ее.

Переведите SELinux в «разрешающий» (Permissive) режим следующими командами:

Либо полностью отключите его:

Перезапустите сервер и проверьте статус:

Убедитесь, что репозиторий EPEL добавлен в вашу систему:

Если он не обнаружен добавьте его:

Установите Development tools:

Загрузите и установите Jansson:

Загрузите и установите PJSIP:

Установка Asterisk

Конфигурация:

При успешной конфигурации Вы должны получить следующий вывод:

При успешной конфигурации Вы должны получить следующий вывод:

Если каких-то зависимостей нехватает то можно запустить скрипт install_prereq для их установки:

Запустите меню настройки:

В разделе «Add-ons» выберите «chan_ooh323» и «format_mp3»

В разделе «Core Sound Packages» выберите необходимые аудиопакеты (опционально)

В разделе «Music On Hold» выберите нужные форматы музыки на удержании (опционально)

В разделе «Extra Sound Packages» выберите дополнительные аудиопакеты (опционально)

В разделе «Applications» выберите «app_macro» (в — Deprecated —)

Затем нажмите save and exit

Сборка и установка:

Загрузите библиотеку mp3-декодера:

Соберите и установите Asterisk:

Настройка и запуск

Создайте отдельного пользователя и группу для запуска asterisk, а так же настройке права:

Настройте запуск asterisk из под соответствующего пользователя:

Откройте файл /etc/sysconfig/asterisk и раскоментируйте следующие строки:

Откройте файл /etc/asterisk/asterisk.conf и раскоментируйте следующие строки:

Перезапустите службу asterisk:

Включите asterisk в автозапуск при загрузке системы:

Проверьте статус asterisk:

Проверьте соединение с astierisk:

На этом установка asterisk закончена.

Подготовка

Установка и настройка сервера базы данных MariaDB

Установите MariaDB:

Проверьте версию MariaDB:

Включите MariaDB в автозапуск при загрузке системы:

Настройте параметры безопасности командой:

Убедитесь, что вы:

Затем проверьте доступ для пользователя root:

Установка Node.js 10 LTS

Проверьте доступные версии Node.js:

Установите версию по умолчанию (если необходимо можно вручную указать другую версию):

Проверьте установленную версию:

Установка и настройка Apache Web Server

Удалите страницу по умолчанию index.html:

Установка и настройка PHP

Установите PHP и необходимые расширения:

Проверьте статус обоих служб:

Загрузка и установка FreePBX

Загрузите последнюю версию FreePBX 15:

Распакуйте скачанный файл:

Если у вас есть root пароль для сервера базы данных, запустите:

Доступ к веб-интерфейсу FreePBX

Откройте веб-браузер и подключитесь к IP-адресу или имени хоста вашего нового сервера FreePBX. Когда вы укажите данные администратора, нажмите «Создать учетную запись». На следующей странице откроется окно входа. После логина Вы попадете на панель управления FreePBX, где сможете управлять своей АТС Asterisk.

Продолжаю обновление и актуализацию статей после выхода новой версии популярной серверной системы. Сегодня расскажу как собрать из исходников и установить сервер телефонии Asterisk 16 на Centos 8. Установка будет из исходных текстов, так как репозиториев с готовыми пакетами под новую систему я не смог найти.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .

Цели статьи

  1. Подготовить из исходников все зависимости.
  2. Установить asterisk 16 из исходников.
  3. Запустить asterisk и убедиться в его работоспособности.

Данная статья является частью единого цикла статьей про сервер Centos.

Введение

Устанавливать Asterisk 16 на Centos 8 будем из исходников. Это не для того, чтобы показать олдскул и крутость самостоятельной сборки софта. Это вынужденная мера. Всегда, когда есть возможность установить из пакетов, лучше ей воспользоваться. Либо можно собрать свой пакет и ставить уже из него. Сборка софта из исходников крайняя мера, когда готового пакета просто не существует.

Я устанавливаю версию 16, хотя есть уже 17-я. Именно 16-я версия имеет статус LTS, то есть длительная поддержка. Если вам не нужны новые фичи промежуточных версий, рекомендую всегда ставить lts версии.

Для установки Asterisk 16 на свежую Centos 8 я не нашел репозитория, где бы были собраны все пакеты с зависимостями для быстрой и безпроблемной установки. Так что будем по старинке собирать все руками. Ничего сложного тут нет. Все примерно так же, как и в прошлых версиях. Каких-то новых сложностей или нюансов я не заметил.

Если у вас еще нет готового сервера, то рекомендую мои статьи по установке и настройке Centos.

Для отладки и тестирования работы voip я рекомендую сервис Zadarma. Плюс его в том, что после регистрации вы получите настройки пира для внутренней сети оператора. И внутри этой сети вы можете бесплатно звонить. Например, я одного пира регистрирую на sip клиенте смартфона и с него звоню на второй аккаунт, пир от которого настроен в астериске. Таким образом эмулирую внешний звонок. Удобно отлаживать различные конфигурации звонков, не требуя платного подключения.

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

Первым делом надо отключить SELinux. Открываем файл /etc/sysconfig/selinux и меняем параметр.

Для применения настройки нужно перезагрузиться, либо временно приостановить selinux.

Установим теперь пакеты, которые нам понадобятся для сборки. В первую очередь подключим репозиторий epel.

Дальше идет мета пакет Development Tools со всем необходимым для сборки из исходников.

И еще некоторые зависимости, которые будут нужны.

Настройте mysql сервер, задав пароль для root.

На этом подготовка закончена.

Устанавливаем Jansson и pjsip

Все готово к установке непосредственно Astersik

Установка Asterisk 16

Устанавливаем на centos 8 пакет libedit-devel.

Выбирайте необходимые модули и звуки, в зависимости от того, что вам нужно. Я в общем случае указываю:

  • Add-ons: format_mp3, res_config_mysql.
  • Core Sound Packages: русские звуки RU-WAV.
  • Music On Hold File Packages: звук WAV.
  • Extras Sound Packages: английский EN-WAV, русского к сожалению нет.

Все остальные настройки оставляем по-умолчанию. Ставится много модулей. Все они не нужны, но мало ли, пригодится что-то в будущем. Неиспользуемые модули можно будет потом отключить в конфигурации.

Создание пользователя asterisk и запуск

По-умолчанию, asterisk установлен от root и будет запускаться от него же. Я предлагаю для этого создать отдельного пользователя и запускать астериск от него. Для этого создаем пользователя и добавляем его в некоторые группы.

Настраиваем Asterisk на запуск под этим пользователем. Для этого добавляем в конфиг /etc/sysconfig/asterisk параметры:

Теперь добавим примерно то же самое в сам конфиг астера /etc/asterisk/asterisk.conf.

Пробуем запустить asterisk:

Asterisk запустился, но есть небольшие ошибки.

Связаны с тем, что в конфигах неверно указан путь к radiusclient. Сейчас исправим это.

Перезапускаем asterisk и убеждаемся, что ошибок нет. Проверим, все ли в порядке, зайдя в консоль:

Если получили такой же вывод команды, значит все в порядке, астериск 16 установлен. Добавим его теперь в автозагрузку.

Видео

Для тех, у кого что-то не получается или не понятно, как сделать, записал видео по приведенной инструкции. Видео подтверждает, что материал актуален и если делать по нему, то все получится.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

На этом установка Asterisk 16 на Centos 8 закончена. Можете приступать к настройке. В этой статье очень подробно рассказано как настроить на астериске базовый функционал по телефонии для среднего офиса или коллектива.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Онлайн курсы по Mikrotik

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

57 комментариев

Спасибо за мануал! Подскажите, у вас был опыт переноса астера с физической машины на виртуальную? Есть ли там подводные камни?

Никаких нет. Можете в виртуалке установить ту же версию asterisk и перенести конфиги. Весь астериск живет в них, если не использовали mysql для хранения настроек.

Спасибо! Классная инструкция. Все получилось

К сожалению на шаге "И еще некоторые зависимости, которые будут нужны." ошибка:

Error: Unable to find a match: kernel-devel-4.18.0-240.el8.x86_64

Может я не понимаю зачем устанвливать pjsip если используем только sip ?

Добавьте в инсрукци иначе репозитарий не добавится и установка не начнется dnf install libedit-devel
dnf config-manager --set-enabled powertools

Спасибо, поправил. Раньше имя репозитория с заглавными буквами указывалось, теперь только со строчными.

Вам спасибо за отличные инструкции за ваши труды

Это в Centos 8 происходит?

у меня в oracle linux 8 такая история

Здравствуйте. У меня все работает помимо вкладки Inbound Routes. Никакие изменения не применяются, даже если удалить маршрут, входящие звонки все еще идут через старый маршрут, который когда-то применился. А теперь игнорирует любые изменения. Из за чего это может быть?

Что может быть, если при команде:
service asterisk restart

Получаю:
Restarting asterisk (via systemctl): Job for asterisk.service failed. See "systemctl status asterisk.service" and "journalctl -xe" for details.
[FAILED]

Дальше:
systemctl status asterisk.service

Asterisk 16.13. Что делать, как бороться?? ЗАРАНЕЕ БОЛЬШОЕ СПАСИБО.

По этому выводу не понятно, в чем конкретно проблема. Надо еще посмотреть системный лог в messages и лог самого астериска.

Ошибка с radius актуальна. не устранятется путём правки как в статье.

Zerox день добрый, вы не пробовали разворачивать asterisk через docker ?

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

Такое ощущение что ругается он на -

Подскажите пожалуйста что с этим делать?

Внимательно проверьте глазами команду. Где-то ошибка, как-будто после дефиса пробелы стоят. Их быть не должно. С помощью дефисов указываются ключи. Покажите скрин команды из консоли.

Ребята помогите уже от бессилия
1 каким то чудом завелась на одной из машин сейчас к ней нет доступа
2 решил дома реализовать srtp и упал
loader.c:2396 load_modules: Error loading module 'res_srtp.so': /usr/lib64/asterisk/modules/res_srtp.so: undefined symbol: crypto_policy_set_aes_cm_128_hmac_sha1_32

День добрый, при выполнении команды dnf config-manager --set-enabled PowerTools, выдаёт ошибку Failed to set locale, defaulting to C.UTF-8

Извиняюсь, разобрался, надо было предыдущую статью по настройке Centos прочитать и сделать всё как там. Походе не хватало репозитория yum install epel-release

перед созданием пользователя Asterisk и измените его
useradd -m asterisk &&
chown asterisk.asterisk /var/run/asterisk &&
chown -R asterisk.asterisk /etc/asterisk &&
chown -R asterisk.asterisk /var//asterisk &&
chown -R asterisk.asterisk /usr/lib/asterisk

нужно выполнить Asterisk от имени того же пользователя
sed -i 's/ASTARGS=""/ASTARGS="-U asterisk"/g' /usr/sbin/safe_asterisk

. Коллеги кто будет обновляться до Asterisk 17.2.0, Copyright (C) 1999 - 2018, Digium, Inc. and others.
обратите внимание на то что по умолчанию отключен модуль sip и походу его не будет скоро.

*******************************
[Mar 3 11:51:45] WARNING[19186]: chan_sip.c:35379 deprecation_notice: chan_sip has no official maintainer and is deprecated. Migration to
[Mar 3 11:51:45] WARNING[19186]: chan_sip.c:35380 deprecation_notice: chan_pjsip is recommended. See guides at the Asterisk Wiki:

Беда. Я только от Macro отказался, переделал все на Gosub. Теперь вот sip выпиливают :( Пустая возня на ровном месте. Переделываешь ради переделывания. Функционал, который используешь, все равно не меняется.

Как я понял, просто установить пакет не достаточно. При сборке идет попытка его скачать и установить и она не проходит. Надо либо убрать как-то эту проверку, либо решить вопрос с доступом к github. У меня нормально открывается путь по ссылке на pjproject.

С офф сайта все качается отлично, оттуда я пакет ручками и установил, но вот с гитхаба 404. Собственно вопрос в том и заключается, как убрать эту проверку? И может ли помочь ручной перенос установленного пакета в директорию, в которую пытается скачаться требуемый пакет?

Так попробуйте. Никто другой, кроме вас, не полезет смотреть исходники, чтобы убрать эту проверку. Пробуйте все варианты сами. Это какая-то ваша локальная проблема.

Проблема локальная, я согласен. Но вот мне теперь интересно, ставлю астериск на девственно чистую центось, в каком месте что-то пошло не так?

Решение проблемы, скачать данный пакет в tmp
[root@localhost

Не помогает, ошибка
verifying /tmp/pjproject-2.10.tar.bz2
Verify failed

а зачем вам mariadb если вы не подключаете odbc в меню конфигурации?

Чаще всего она все же нужна. В том числе используется в моей статье про настройку астериск. Так что лучше сразу поставить.

Может кому будет полезно.
При сборке астериска получил ошибку
error: unknown type name ‘my_bool’; did you mean ‘bool’
Я так понял, что в новом mysql переменная my_bool не может быть использована. Не знаю насколько правильно, но это решилось строчкой
sed -i s/my_bool/bool/ ./addons/cdr_mysql.c
По сути просто заменил переменную my_bool на bool в двух местах.

Припоминаю такую ошибку. Вроде тоже видел, но не стал разбираться, потому что прямая работа с mysql уже давно объявлена deprecated, а используется подключение через odbc.

Добрый день!
Спасибо за обзор. lame-3.98.4.tar.gz не пробовали ставить? Make install выводит Nothing to be done for 'install-exec-am'.

Как насчет утилиты DAHDI? Я не увидел её в процессе установки.

Она еще кому-то нужна? Я ни разу ей не пользовался, поэтому не описываю ее установку.

Настройка системы

Все действия по настройке и установке я произвожу с правами суперпользователя (root). Если у вас возникает ошибка с доступом используйте root или sudo.

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

Если при установки операционной системы вы выставили правильное время, можете смело пропускать данный пункт. Проверить текущий часовой пояс и время можно командой


В моём случае стоит временная зона America/New_York необходимо заменить ее на Europe/Moscow.


Перевод SELINUX в режим Permissive

Режим Permissive означает что SELINUX не будет ничего блокировать. Все действия попадающие под блокировку будут просто записываться в журнал.

Проверить текущий статус SELINUX можно командой

Откроем необходимые порты

Откроем порты в firewalld для подключения клиентов

Перечитаем измененный конфиг для применения новых параметров firewalld

Подключение репозитория EPEL

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

Установка связанного ПО

Перед установкой самого Asterisk необходимо скачать и установить дополнительные пакеты. Если вы планируете использовать в своем сервере платы T1/E1/J1/BRI и прочее оборудование, необходимо установить DAHDI и LibPRI. Я данное железо использовать не собираюсь, поэтому установку этих пакетов не описываю.

Установим набор пакетов Development Tools

Установка пакета jansson

Установим пакет libedit

Загрузим и установим PJSIP

Установка Asterisk

Скачаем последнюю версию Asterisk с сайта разработчика и распакуем архив

Запустим установку зависимостей Asterisk


Очистка временных файлов созданных в процессе установки

Добавляем возможность работы с форматом mp3

Конфигурируем исходник Asterisk

После успешного выполнения команды появиться примерно такая надпись, как на картинке ниже


Запустим меню выбора дополнительных параметров установки Asterisk

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

После завершения выбора компонентов нажимаем кнопку Save & Exit

Переходим к установке Asterisk

Результатом успешного выполнения команды make будет текст такого содержания


Далее выполним make install


На данном этапе установка Asterisk завершена, перейдём к настройке. Соберем конфигурационные файлы с комментариями и примерами. Данная процедура не обязательна, делаете по необходимости.

Добавим скрипты инициализации в автозагрузку

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

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

Необходимо создать пользователя под которым Asterisk будет запускаться.

Изменим владельца соответствующих каталогов

Укажем пользователя от которого будет запускаться Asterisk

Редактируем файл /etc/sysconfig/asterisk

Проверяем указанные строки, если они есть раскомментируем, если нет, добавим в файл.

Откроем на редактирование файл /etc/asterisk/asterisk.conf

Раскомментируем две строки

Перезагрузим Asterisk для применения внесенных нами изменений

Добавим Asterisk в автозагрузку при старте системы

Проверяем работу Asterisk

Давайте проверим статус процесса asterisk. Запущен он или нет и есть ли какие-то ошибки

По статусу видно что служба запущена (active). Внизу можно увидеть краткий лог работы программы.

Зайдем в консоль Asterisk и проверим что программа отвечает. Также выполним несколько команд. Зайти в консоль можно командой asterisk -r я обычно использую asterisk -rvvvvvv для полной детализации лога в консоли.

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


Команда отработала успешно, проверим список всех SIP peers

Эта команда не сработает. В предыдущих версиях Asterisk данная команда сработала бы без вопросов. Дело в том что начиная с 17 версии Asterisk модуль chan_sip отвечающий за работу модуля SIP считается устаревшим и по умолчанию отключен. Попытаемся его загрузить из консоли.

Видим что модуль загрузился но с предупреждениями. WARNING как раз повествует о том, что модуль устарел и скоро его не станет, используйте PJSIP. Попробуем выполнить

Команда отработала успешно. Но, чтобы модуль загружался и после выхода из консоли при старте сервера, необходимо отредактировать файл /etc/asterisk/modules.conf

Находим в файле запись noload => chan_sip.so и комментируем её поставив перед ней точку с запятой

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

Я сам постепенно перехожу и всем советую использовать новую библиотеку res_pjsip

В данной статье я рассмотрел как проходит установка Asterisk 18 на Centos 8. В следующей статье планирую рассмотреть процесс первоначальной настройки: подключение пользователей, транков и т.п. Список консольных команд Asterisk также есть на нашем сайте.

Весь процесс установки Asterisk 18 на Centos 8 я записал на видео.

Хотите отблагодарить автора статьи? Это даст ему дополнительный стимул к написанию новых статей.

Вам также может понравиться

Astrisk

Команды Asterisk

Skype fro Business Powershell

Включение политики звонков для группы

AsteriskPBX-s-nulya

Настройка Asterisk с нуля

19 thoughts on “ Установка Asterisk 18 на Centos 8 ”

Было очень полезно, спасибо! Ждём следующую статью по настройке))
Когда планируете выпустить ?

В ближайшее время как раз будет статья по начальной настройке

Ждём следующую статью по настройке.

Она в процессе, больше половины уже готово

Великолепная, актуальная статья. Все, четко, понятно, красиво! Конечно, тоже, будем рады статье по первоначальной настройке всего этого добра ))

Спасибо за комент. Статья уже есть посмотрите в разделе asterisk

Хотелось услышать Ваше мнение по поводу стоит ли устанавливать CentOS, ведь от неё отказались

Спасибо за ответ! А как Вы относитесь к Ubuntu Serv

Вполне нормальный сервер, скажу больше почтовые сервера у меня на нем. Можно как вариант брать его для продакшена, только лучше версию LTS

Для Asterisk он пойдет? (Ubuntu)

Конечно подойдет. Asterisk есть в RPM и DEB пакетах. А если очень захочется то можно собрать из исходников

после команды systemctl enable asterisk

сервис не нативный, в итоге не ясно сработало или нет?

Команда systemctl enable asterisk добавляет asterisk в автозагрузку. Проверить отработала она или нет можно очень просто. Перезагрузите систему и зайдите к консоль asterisk, либо проверьте статус сервиса systemctl status asterisk

Он может не находить какие-то модули, которые скорее всего никогда не будут использоваться. Если же они потребуются их можно будет подключить позже. Пользователь asterisk должен быть без пароля, под ним запускается сервис. Сам астериск паролем не защищается

В данной статье мы поговорим об установке Asterisk 16 на Centos 8. Рассмотрим необходимые пакеты, а также нюансы и особенности. Для начала нам необходимо отключить SELINUX Устанавливаем инструменты разработчика Далее устанавливаем пакет Jansson Загружаем и устанавливаем пакеты PJSIP Скачиваем и устанавливаем Asterisk. Будем использовать 16 версию. Устанавливаем пакеты libedit Конфигурируем Asterisk Если все сделали правильно, […]

Установка Asterisk 16 на centos 8

В данной статье мы поговорим об установке Asterisk 16 на Centos 8. Рассмотрим необходимые пакеты, а также нюансы и особенности.

Для начала нам необходимо отключить SELINUX

Устанавливаем инструменты разработчика

Далее устанавливаем пакет Jansson

Загружаем и устанавливаем пакеты PJSIP

Скачиваем и устанавливаем Asterisk. Будем использовать 16 версию.

Устанавливаем пакеты libedit

 Уведомление об успешном конфигурировании

Уведомление об успешном конфигурировании

Далее нам необходимо выбрать пакеты для сборки Asterisk. Выполняем команду make menuselect. После её выполнение откроется следующее окно:

Окно выбора выбора модулей для конфигурирования

Окно выбора выбора модулей для конфигурирования

Выбираем на первой вкладке модули chan_ooh323 и format_mp3

На вкладке Core sound packages выбираем необходимые аудио пакеты.

Выбор аудио пакетов

Выбор аудио пакетов

Далее выбираем аудио пакеты для Music On Hold

Аудио пакеты для Music On Hold

Аудио пакеты для Music On Hold Если дальше будет необходимость установки FreePBX то не забудьте включить приложение app_macro

Включение приложения app_macro

Включение приложения app_macro

Сохраняем и выходим из меню конфигурирования

Собираем Asterisk. Сперва включаем возможность mp3 доекидрования.

Теперь устанавливаем Asterisk.

Успешная установка Asterisk

Успешная установка Asterisk

Опционально выполняемmake samples, на случай если хотим собрать базовые конфигурационные файлы

Далее выполняем make config и ldconfig

Теперь нам необходимо внести некоторые настройки. Создаем пользователя Asterisk и выдаем права необходимым директориям

Сделаем Asterisk пользователем по умолчанию.

Открываем файлvim /etc/sysconfig/asterisk и раскомментируем там следующее

Открываем файлvim /etc/asterisk/asterisk.conf и в разделе options раскомментируем там следующее

Перезагружаем службу asterisk и добавляем в автозагрузку

Выполним проверки службы Asterisk. Выполним следующее systemctl status asterisk, должно отобразиться следующее.

Зайдем в Asterisk и проверим, что службы SIP работают корректно.

Проверка работы Asterisk

Проверка работы Asterisk

Читайте также: