Меню Рубрики

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

Установка Asterisk 15 и FreePBX 14 из исходников на CentOS7

В рамках статьи будет рассмотрена сборка новейших на момент написания статьи релизов Asterisk и FreePBX. Так как с выходом FreePBX 14 его производители официально стали поддерживать Centos версии 7, то и в статье рассматривается установка на данную ОС.

На данный момент не рекомендуется использовать Asterisk 15 в «продакшн» в связи с тем, что вышел он совсем недавно и еще «сыроват».

1. Отключение Selinux и обновление системы

Перед началом необходимо выключить Selinux, сделать это можно любым из указанных ниже способов:
а) в файле /etc/selinux/config изменить значение параметра SELINUX= с enforsing на disabled

б) в файле /etc/sysconfig/selinux изменить значение параметра SELINUX= с enforsing на disabled (по сути файл selinux в директории /etc/sysconfig — это симлинк на /etc/selinux/config)

На данном этапе можно установить дополнительные репозитории пакетов: epel и wbtatic

Epel можно установить через yum командой yum -y install epel-release, а webtatic только скачиванием rpm пакета:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Далее следует обновить систему командой yum update

После завершения обновления необходимо перезагрузить сервер командой reboot

Чтобы убедиться что selinux отключен необходимо выполнить команду sestatus — она выводит состояние selinux

2. Установка зависимостей и необходимых утилит

Сначала необходимо создать пользователя asterisk:

Перед установкой непосредсвенно Asterisk+FreePBX, необходимо установить такие утилиты как:

— mysql в данном случае ставится amriadb

— php версии 5.6, так как FreePBX c 14 версии официально объявили поддержку данной версии php

— lame — утилита кодирования аудио

— pjproject — при необходимости использовать pj-sip

— srtp — при необходимости шифрования RTP трафика

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

yum groupinstall core
yum groupinstall base
yum groupinstall «Development Tools»
(возможно единой командой yum groupinstall core base «Development Tools»)

Установка mariadb и ODBC-коннектора, запуск и первичная настройка mysql

yum install mariadb mariadb-server unixODBC unixODBC-devel mysql-connector-odbc mariadb-devel

Для запуска базы данных необходимо выполнить команду systemctl start mariadb

Далее необходимо добавить в автозагрузку командой sytemctl enable mariadb.service

После этого необходимо произвести первичную настройку безопасности mysql, запустив команду mysql_secure_installation

Рекомендуемые действия после запуска:
— установить root-пароль на mysql

— удалить анонимных пользователей

— оключить удаленную авторизацию под root

— удалить тестовую базу и доступ к ней

Установка php необходимых зависимостей:

yum install php56w php56w-mbstring php56w-ldap php56w-intl php56w-mysql php56-pdo php56w-pear php56w-process php56w-xml php56-opcache php56w-ldap

Установка веб-сервера и его минимальная настройка для FreePBX:

После этого установить в файле /etc/php.ini параметры:

Запуск веб-сервера и помещение его в автозапуск

systemctl start httpd.service
systemctl enable httpd

Установка остальных зависимостей:

yum install libtool-ltdl-devel ncurses-devel sendmail sendmail-cf sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel kernel-devel kernel-headers git cronie cronie-anacron tftp-server цпуе uuid-devel sqlite sqlite-devel gnutls-devel python-devel texinfo libuuid-devel libxml2-devel libtool-ltdl libtool-ltdl-devel e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp audiofile-devel linx libogg-devel openssl-devel zlib-devel perl-DateManip sox git wget psmisc speex-devel gsm-devel libtool libtool-ltdl xmlstarlet libsrtp-devel crontabs subversion jansson-devel lame curl curl-devel corosync corosync-devel

Установка nodejs, так как в репозитории по умолчанию находится nodejs версии 1.6, а для FreePBX необходима версия nodejs 8, необходимо выполнить следующие команды:

curl -sL https://rpm.nodesource.com/setup_8.x | bash —
yum install nodejs

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

cd /usr/src/
wget https://netix.dl.sourceforge.net/project/srtp/srtp/1.4.4/srtp-1.4.4.tgz
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz

Установка SRTP (если необходимо использовать)

tar zxvf srtp-1.4.4.tgz
Далее необходимо заменить в файле /usr/src/srtp/test/rtpw_test.sh строчку RTPW=rtpw на строчку RTPW=./rtpw

cd srtp
autoconf
./configure CFLAGC=-fPIC —prefix=/usr
make
make runtest
make install

cd /usr/src/
tar zxvf dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-*
make all
make install
make config

Установка Libpri
Информер2: данный модуль можно не устанавливать если не планируется использовать цифровые платы потока Е1)

cd /usr/src/
tar zxvf libpri-current.tar.gz
cd libpri-*
make
make install

cd /usr/src/
tar zxvf tar zxvf asterisk-15-current.tar.gz
cd asterisk-15*
./contrib/scripts/get_mp3_source.sh
./configure —prefix=/usr —sysconfdir=/etc —localstatedir=/var —libdir=/usr/lib64 —with-pjproject-bundled
(также можно добавить следующие параметры, если требуется шифрование: —with-crypto —with-ssl=ssl —with-srtp)
make menuconfig — выбрать для установки необходимые модули (в основном можно оставить все по-умолчанию).

make
make install
make config
ldconfig

Необходимо убрать Asterisk из автозагрузки командой: chkconfig asterisk off, так как в дальнейшем автозапуск будет осуществляться через оснастку frepbx (fwconsole)

Перед установкой FreePBX в конфигурационный файл веб-сервера (/etc/httpd/conf/httpd.conf) необходимо добавить параметры:
User asterisk

Для применения параметров необходимо перезапустить веб-сервер командой systemctl restart httpd.service

cd /usr/src/
tar xvf freepbx-14.0-latest.tgz
cd freepbx
./start_asterisk start

Информер3: Если в консоли выведено сообщение Asterisk Started, значит все корректно и можно продолжать установку.

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

Далее появятся различные запросы на внесение параметров установки — в квадратных скобках даны параметры по-умолчанию, почти на всех параметрах можно нажимать Enter, кроме запроса на root пароль к базе данных, в данном параметре нужно указать пароль, который был установлен на пользователя root базы данных при конфигурировании.

Читайте также:  Установки для изомеризации бутана

На этом установка завершена, далее следует создать юнит для автозагрузки FreePBX.

Для этого в директории /etc/systemd/system/ необходимо создать файл freepbx.service со следующим содержимым:
[Unit]

Description=FreePBX VoIP Server
After=mariadb.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/fwconsole start -q
ExecStop=/usr/sbin/fwconsole stop -q

Теперь можно управлять запуском freepbx как любым сервисом systemd

Запуск командой: systemctl start freepbx

Добавление в автозагрузку: enable freepbx.service

Для проверки статуса сервиса необходимо выполнить команду: systemctl enable freepbx.service

Теперь можно залогиниься на FreePBX 14 через веб-интерфейс, достаточно в браузере ввести ip-адрес сервера

После логина система выдаст страницу на которой необходимо будет внести данные об админимтраторе веб-интерфейса.

После внесения данных под указанным пользователем можно логиниться во FreePBX 14

источник

Простая установка Asterisk + FreePBX для начинающих

Ситуация

В сети на сегодняшний день достаточно много описаний по развертыванию IP телефонии и в основном это два варианта:

  • Берём готовый дистрибутив в виде установочного образа (Elastix,Trixbox etc. ) и в результате получаем рабочий комплекс не имея никаких знаний в Linux
  • Устанавливаем комплекс самостоятельно занимаясь при этом компиляцией из исходных кодов и ручной правкой множества конфигурационных файлов.

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

Предпосылки

В процессе внедрения IP телефонии в одной из компаний с разветвленной структурой филиалов рассматривались оба варианта но оба не устраивало по ряду причин:

  • Бюджет на проект не подразумевал затрат на привлечение сторонних компаний для развертывания проекта, весь комплекс телефонии было решено развертывать своими силами.
  • Большинство системных администраторов в филиалах были не знакомы с Linux системами и являлись чистыми Winows админами.
  • Требовалось заложить высокую гибкость системы под будущие, еще не придуманные задачи.

Перед нами встала дилемма, с одной стороны проще настроить сервера и разослать их в регионы, а с другой весь груз сопровождения такого «черного ящика» ложится на наши плечи, а нас мало. В общем нас самих такая ситуация не устраивала. Вариант заказа внедрения сторонней компании был сразу отметен руководством по финансовым причинам.
Вариант с готовым дистрибутивом тоже отпал, поскольку проект подразумевал необходимость расширения функционала телефонии под нужды компании с учетом особенностей филиалов и это расширение необходимо было выполнять силами местных сотрудников. То есть без обучения nix системам никак.

Решение

Мы решили пойти путем более сложным и трудозатратным для нас, но дешевым для компании. Начали учить системных администраторов азам работы с linux. Концепция обучения состоит в том, чтобы сотрудник мог самостоятельно взяв типовой дистрибутив linux ubutu server 12.04 сумел установить на него Asterisk, Веб управление FreePBX и систему веб-управления факсами hylafax+Avantfax, при этом использую реальные проекты в их текущих состояниях.

Кроме того, для упрощения развертывания, инструкция должна была стать максимально простой и короткой. В итоге всё свелось к простому копи-пасту и установке большинства пакетов из репозиториев. Весь процесс множество раз выверялся повторными установками. Мы постарались обеспечить принцип минимальной достаточности. Всё без чего можно обойтись пропускалось (оставлено для самостоятельного освоения сотрудниками).
Это очень облегчило задачу для Win админов которые не привыкли к консоли и позволило им почувствовать себя более уверенно, особенно когда в результате собственных действий за минимальное число попыток получали рабочую систему. Это очень воодушевляет на первых этапах.

Итак сама инструкция

После установки чистой ubuntu server 12.04 LTS по этой инструкции мы готовы к началу установки.

В первый раз ВСЕ действия выполняем копированием — вставкой ничего не меняя, как есть!

Установка LAMPA

В процессе установки мастер попросит задать пароль для mysql сервера. Задаем например PaSs или свой и запоминаем. Пустым пароль оставлять не надо!

FreePBX

Указываем пароль, который поставили при установке mysql

Загрузка и создание базы
Установка FREEPBX

Запускаем установку (заполняем параметры или оставляем по умолчанию):

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

Изменение конфигурации apache2, для корректной работы с русским языком, а так-же меняем пользователя www-data от имени которого стартует apache2 на пользователя asterisk

Загрузка модулей и обновлений

Загружаем и устанавливаем свежие модули

На этом базовый функционал готов, можно подключиться к серверу по
адрес сервера логин и пароль: admin

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

Небольшой твик для стабильной работы FOP панели, перезапускает её раз в 10 минут

Исправляем косяки с путями хранения звуков

На этом этапе базовая система считается развернутой, дальше уже идет настройка через WEB интерфейс.

источник

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

Продолжаю обновление и актуализацию статей после выхода новой версии популярной серверной системы. Сегодня расскажу как собрать из исходников и установить сервер телефонии 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.

Онлайн курс по Linux

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

Автор 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

Читайте также:  Установка hdd на резиновых

нужно выполнить 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? Я не увидел её в процессе установки.

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

источник

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