Установка asterisk из исходников

Установка asterisk из исходников

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

Для установки из репозитория в debian / Ubuntu запустите из командной строки:

sudo apt-get install asterisk

Для установки из репозитория в RHEL / CentOS запустите из командной строки:

yum install asterisk

При этом будут проанализированы зависимости, и в случае отсутствия необходимых пакетов сначала будут установлены эти пакеты, а затем уже — Asterisk.

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

Установка из исходников

Установка необходимых пакетов

Вначале нужно установить дополнительные пакеты, которые необходимы для установки и работы Asterisk. Без части из этих пакетов Asterisk вообще откажется устанавливаться (к примеру, если отсутствует gcc). Без некоторых пакетов Asterisk установится и даже будет работать, однако часть функционала будет недоступна. Например, пакет bison необходим для обработки выражений в файле extensions.conf. Еще пример: libnewt необходим для работы интерфейса управления astman. Для сервера Asterisk он не требуется, но без этого пакета у Вас не будет приложения astman, которое является отдельной программой.

Для Debian / Ubuntu:

sudo apt-get install linux-headers-`uname -r` bison flex curl sox libncurses5-dev libssl-dev libxml2-dev binutils gcc g++ ncurses-dev libsqlite3-dev make uuid uuid-dev

Для RHEL / CentOS:

yum -y install gcc gcc-c++ make ncurses-devel libxml2-devel sqlite-devel bison kernel-headers kernel-devel openssl openssl-devel newt newt-devel flex curl sox binutils

после чего выполнить команду:
yum update
(чтобы загрузить последние обновления пакетов)

Дополнение для asterisk 12 / 13

Для asterisk 12 / 13 необходимо также установить библиотеки uuid и libjansson.

Для установки библиотеки uuid в RHEL / Centos выполните команду:
yum -y install libuuid-devel

Для установки пакета libjansson необходимо сначала подключить дополнительный репозиторий EPEL.

После этого в RHEL / CentOS нужно поставить пакет jansson-devel, выполнив команду:
yum -y install jansson-devel

Автоматизация установки необходимых пакетов

Как утверждает сайт wiki.asterisk.org, вовсе не обязательно самому заниматься установкой необходимых пакетов — asterisk может сделать это сам. Для этого воспользуйтесь скриптом install_prereq, находящимся в подкаталоге contrib/scripts папки с исходными кодами asterisk: после скачивания (и распаковки исходников asterisk, зайдите в "корень" этой распакованной папки, например:
cd /usr/src/asterisk-X.Y.Z

теперь зайдите в подкаталок contrib/scripts и запустите скрипт install_prereq. У скрипта есть опции:
test — просто отображает список пакетов, которые будут установлены
install — устанавливает все необходимые пакеты
cd contrib/scripts
./install_prereq install

Что еще может понадобиться для установки asterisk

Если требуется загрузить дистрибутив Asterisk из интернета (а не с локального носителя), то может потребоваться установка wget. Кроме того, для редактирования файлов нужен текстовый редактор — например, vi, nano или mc (Midnight Commander).

Отключите SELinux

Для успешной работы asterisk необходимо отключить SELinux. Чтобы это сделать, найдите файл:
/etc/selinux/config
Удалите в нём строку, начинающуюся со слова "SELINUX", после чего добавьте следующую строчку:
SELINUX=disabled
После этого необходимо перезагрузить компьютер (это можно будет сделать и после компиляции астериска).

pjproject для asterisk 12 и выше

При установке asterisk 12 и выше Вы можете захотеть установить пакет pjproject (обновленная версия драйвера SIP). Подробнее об этом см. на сайте wiki.asterisk.org.

DAHDI и LibPRI

Перед установкой самого Asterisk необходимо решить для себя, устанавливать ли компоненты DAHDI и/или libpri. На официальном сайте Asterisk, в wiki-разделе (https://wiki.asterisk.org/wiki/display/AST/Installing+Asterisk+From+Source) разработчики настоятельно рекомендуют устанавливать эти пакеты, даже если Вы не планируете их использовать (libpri предназначен для работы с ISDN соединениями, а DAHDI — с аналоговыми телефонными линиями — PTSN).

Если Вы решите устанавливать DAHDI и/или LibPRI, инструкции по скачиванию и установке можно взять здесь:

Загрузка и распаковка Asterisk

Переходим в каталог исходников Linux:

Скачиваем нужную версию Asterisk. Посмотреть, какая версия asterisk актуальная на данный момент и скачать нужную, можно здесь: http://www.asterisk.org/downloads/asterisk/all-asterisk-versions

для версии 1.8 это будет:

Для версии 11 это будет:

распаковываем asterisk — для этого выполняем команду tar:

tar –xvzf asterisk-. tar.gz

где asterisk. tar.gz — это имя архива с asterisk, например:

tar –xvzf asterisk-1.8-current.tar.gz

tar –xvzf asterisk-11-current.tar.gz

Теперь нам нужно перейти в папку, которая создалась при распаковке архива. Название папки может совпадать, а может и не совпадать с именем архива. Узнать, какие папки есть в /usr/src, можно с помощью команды ls. Найдя папку, переходим в нее:

Компиляция asterisk

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

Если конфигурирование было успешным, то в конце выполнения команды на экране появится значок астериска (звездочка).

Читайте также:  Как установить screen mirroring

Теперь запускаем выбор компонентов пакета:

Здесь Вы можете выбрать любые необходимые компоненты. Компоненты, которые выбрать нельзя, отмечены крестиками (XXX). Чтобы появилась возможность их выбрать, надо выйти из этого меню, установить недостающие пакеты (например, кодеки, приложение Festival, и так далее), и заново запустить компиляцию asterisk (начиная с команды configure).

На данном этапе рекомендуем установить поддержку русских звуковых файлов в asterisk. Если коротко: для этого перейдите в раздел Core Sound Packages, и отметьте галочками пакеты CORE-SOUNDS-EN-WAV и CORE-SOUNDS-RU-WAV. Кроме того, перейдите в раздел Extras Sound Packages и отметьте галочкой EXTRA-SOUNDS-EN-WAV. В данном случае мы выбрали установку базового голосового пакета для русского языка, а также установку базового и расширенного голосовых пакетов для английского языка (расширенного пакета звуковых файлов для русского языка непосредственно в дистрибутиве asterisk пока нет). Английский пакет рекомендуем устанавливать, поскольку в случае отсутствия нужных файлов в русском пакете, будет воспроизведен файл из английского пакета — и проблемы будет легче обнаружить.

После выбора требуемых пакетов обязательно выберите "сохранить изменения и выйти": "Save and exit".

Теперь мы запускаем самую главную (и самую длительную) часть компиляции пакета — сборку:

Если сборка прошла успешно, то в результате на экране появится текст в рамочке, сообщающий что-то вроде: "Asterisk build complete", "Asterisk has successfully been built. ". Если этого не произошло, то это значит, что возникли проблемы при установке asterisk. Вероятнее всего, не установлен какой-то из пакетов, требующихся для работы asterisk (список нужных астериску пакетов см. выше, "Установка необходимых пакетов"). Как вариант, Вы можете попробовать установить другую (более новую или более старую) версию asterisk.

Если все прошло удачно, выполняем саму установку asterisk:

Если при этом на этапе make menuselect были выбраны дополнительные звуковые пакеты, asterisk скачает их из интернета перед установкой.

Если установка была успешной, Вы увидите сообщение в рамке, вида "Asterisk Installation Complete".

Если Вы делаете установку первый раз, то необходимо также создать конфигурационные файлы. Если же Вы переустанавливаете / обновляете asterisk, обязательно убедитесь, что Ваши конфигурационные файлы сохранены (или не выполняйте команду создания конфигов).

Создаем конфигурационные файлы:

А теперь добавляем asterisk в сценарии запуска linux:

Если у Вас RHEL/CentOS, то понадобится выполнить еще одну команду:

chkconfig asterisk on

Теперь до перезагрузки компьютера Вы можете проверить, работает asterisk или нет. Для этого в командной строке linux наберите:

Если Вы увидите сообщение "Asterisk ready", значит asterisk установлен успешно. После чего из командной строки asterisk (Asterisk CLI) наберите:

для остановки астериска.

Теперь Вы можете перезагрузить компьютер, и убедиться, что asterisk автоматически запускается при старте. Для этого после перезапуска (и логина под root) запустите следующую команду:

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

Проблемы при установке asterisk

При возникновении проблем, возникающих в процессе компиляции / установки / запуска asterisk, смотрите эту статью.

Прежде всего пакет необходимо скачать с официального сайта компании http://www.asterisk.org. Находим нужную версию и копируем ссылку на скачивание при помощи правой кнопки мыши.

Устанавливаем ПО, необходимое для сборки и компиляции

apt-get install build-essential wget libssl-dev libncurses-dev libnewt-dev libxml2-dev linux-headers-$(uname -r) libsqlite3-dev uuid-dev

Конструкция linux-headers-$(uname -r) позволяет скачать версию linux-headers соотносящуюся с используемой версией ядра ОС.

Разархивируем основной скачанный пакет:

Переходим в каталог и изучаем инструкцию по сборке и установке

Выполняем make menuconfig и, при необходимости, включаем или выключаем определенные опции установки

После установки каталог /etc/asterisk с конфигурационными файлами пуст — их можно создавать вручную, можно также создать файлы с тестовой конфигурацией — так и поступим:

Убедимся в том, что файлы создались успешно

Теперь asterisk можно запустить из консоли выполнив

CTRL+C завершит процесс

Пакет на данном этапе уже работоспособен, но для его нормального использования необходимо создание инициализационного скрипта

Копируем его из директории с распакованным пакетом, который скачали изначально, при этом переименовывая

cp rc.debian.asterisk /etc/init.d/asterisk

Чтобы инициализационный скрипт работал в него необходимо внести некоторые изменения

Увидим asterisk /usr/sbin/asterisk

Соответственно, задаем параметры в конфиге

DEAMON=/usr/sbin/asterisk
ASTVARRINDIR=/var/run/asterisk
ASTETCDIR=/etc/asterisk

Сейчас скрипт отрабатывает корректно, однако выдает ошибку об эскаляции прав «privilege escalation protection desabled»

live_dangeroulsy=no

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

Создадим системного пользователя astertisk и заставим пакет работать от его имени

Сейчас работает от имени root

useradd -d /var/lib/asterisk asterisk

chown -R asterisk /var/spool/asterisk /var/lib/asterisk /var/run/asterisk

Переходим в каталог с распакованным пакетом

cp etc_default_asterisk /etc/default/asterisk

Задаем в скопированном и переименованном скрипте пользователя и группу снимая знаки комментария

Читайте также:  Название к фотографии о природе

AST_USER=»asterisk»
AST_GROUP=»asterisk»

Сейчас процесс выполняется от имени пользователя asterisk

Перзапускаем корректно работающий сервис

Последним шагом добавляем процесс в автозагрузку.

Теперь при рестарте системы asterisk будет запускаться автоматически.

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

Цели статьи

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

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Установка Asterisk 16

Я буду устанавливать LTS версию Asterisk 16. Советую для долгосрочного использования всегда использовать LTS версии. Они в целом стабильнее и дольше срок поддержки. Идем на страницу https://www.asterisk.org/downloads/asterisk/all-asterisk-versions и копируем ссылку на нужную версию. Загружаем ее на сервер.

Устанавливаем на 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

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

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

перед созданием пользователя 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:

localhost*CLI> sip show peers
No such command ‘sip show peers’ (type ‘core show help sip show’ for other possible commands)
localhost*CLI> module load chan_sip.so
Loaded chan_sip.so
SIP channel loading…
== SIP Listening on 0.0.0.0:5060
== Using SIP CoS mark 4
— Message technology ‘sip’ registered.
== Registered channel type ‘SIP’ (Session Initiation Protocol (SIP))
== Registered RTP glue ‘SIP’
== Registered application ‘SIPDtmfMode’
== Registered application ‘SIPAddHeader’
== Registered application ‘SIPRemoveHeader’
== Registered custom function ‘SIP_HEADER’
== Registered custom function ‘SIP_HEADERS’
== Registered custom function ‘SIPPEER’
== Registered custom function ‘CHECKSIPDOMAIN’
== Manager registered action SIPpeers
== Manager registered action SIPshowpeer
== Manager registered action SIPqualifypeer
== Manager registered action SIPshowregistry
== Manager registered action SIPnotify
== Manager registered action SIPpeerstatus
[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:
[Mar 3 11:51:45] WARNING[19186]: chan_sip.c:35381 deprecation_notice: https://wiki.asterisk.org/wiki/display/AST/Migrating+from+chan_sip+to+res_pjsip
[Mar 3 11:51:45] WARNING[19186]: chan_sip.c:35382 deprecation_notice: https://wiki.asterisk.org/wiki/display/AST/Configuring+res_pjsip
Loaded chan_sip.so => (Session Initiation Protocol (SIP))
localhost*CLI> sip show peers
Name/username Host Dyn Forcerport Comedia ACL Port Status Description
0 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 0 offline]
localhost*CLI>

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

Добрый вечер. При попытки сборки астериска получаю вот что:
checking for embedded pjproject (may have to download)… configuring
[pjproject] Downloading https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/2.9/pjproject-2.9.tar.bz2 to /tmp/pjproject-2.9.tar.bz2
[pjproject] Retrying download
[pjproject] Downloading https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/2.9/pjproject-2.9.tar.bz2 to /tmp/pjproject-2.9.tar.bz2
make: *** [Makefile:92: /tmp/pjproject-2.9.tar.bz2] Error 4
make: *** Deleting file ‘/tmp/pjproject-2.9.tar.bz2’
failed
configure: Unable to configure third-party/pjproject
configure: error: Re-run the ./configure command with ‘NOISY_BUILD=yes’ appended to see error details.
По адресу 404, это понятно. Установил этот пакет в ручную, но результата это не дало. В чем причина? Как лечить?

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

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

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

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

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

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

выскакивает asterisk.service: Supervising process 4384 which is not
как исправить?

Может кому будет полезно.
При сборке астериска получил ошибку
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? Я не увидел её в процессе установки.

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

Ссылка на основную публикацию
Удаление последнего элемента списка
Введение. Основные операции О дносвязный список – структура данных, в которой каждый элемент (узел) хранит информацию, а также ссылку на...
Телефон самсунг с хорошей камерой недорогой
Если вы ищете лучший телефон Samsung, тогда рейтинг поможет разобраться в их различиях. Посмотрите какой смартфон лучшие купить из всех...
Телефон перестал заряжаться быстрой зарядкой
Наверняка многие сталкивались с тем, что смартфон ни с того ни с сего перестаёт заряжаться. Другая распространённая беда — слишком...
Удаление дубликатов фотографий на русском бесплатно
Здравствуйте Уважаемый Друг. У каждого из нас на компьютере хранится большое количество различных фотографий изображений и тому подобных картинок. Парой...
Adblock detector