Данный материал открывает цикл статей по настройке корпоративной телефонии на основе программного пакета Asterisk с открытым исходным кодом. Проект Asterisk динамично развивается — он очень функционален и позволяет реализовать сложную конфигурацию сети и полностью отказаться от использования традиционных телефонов и АТС. Рассмотрим как выполняется установка Asterisk.
Также продукт бесплатен, что обуславливает его широкое распространение в компаниях малого и среднего бизнеса. Установка Asterisk из исходников позволяет получить самую свежую версию пакета, которой нет в репозиториях. Из исходников собирать также нужно когда нужна какая-то особенная конфигурация.
Для демонстрации используется ОС Ubuntu 14.04 и пакет Asterisk 11 — LTS (Long Term Support).
Установка Asterisk из исходников на Ubuntu
Прежде всего пакет необходимо скачать с официального сайта компании http://www.asterisk.org. Находим нужную версию и копируем ссылку на скачивание при помощи правой кнопки мыши.
Скачиваем пакет
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
Устанавливаем ПО, необходимое для сборки и компиляции
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 соотносящуюся с используемой версией ядра ОС.
Разархивируем основной скачанный пакет:
tar zxvf asterisk-11-current.tar.gz
Переходим в каталог и изучаем инструкцию по сборке и установке
cd asterisk-11.25.1
less README.txt
Конфигурируем
./configure
Выполняем make menuconfig и, при необходимости, включаем или выключаем определенные опции установки
Компилируем пакет
make
Устанавливаем
make install
После установки каталог /etc/asterisk с конфигурационными файлами пуст — их можно создавать вручную, можно также создать файлы с тестовой конфигурацией — так и поступим:
make samples
Убедимся в том, что файлы создались успешно
ls
Теперь asterisk можно запустить из консоли выполнив
asterisk -cvvv
CTRL+C завершит процесс
Пакет на данном этапе уже работоспособен, но для его нормального использования необходимо создание инициализационного скрипта
Копируем его из директории с распакованным пакетом, который скачали изначально, при этом переименовывая
cd /asterisk-package/contrib/init.d/
cp rc.debian.asterisk /etc/init.d/asterisk
Чтобы инициализационный скрипт работал в него необходимо внести некоторые изменения
which asterisk
Увидим asterisk /usr/sbin/asterisk
Соответственно, задаем параметры в конфигурационном файле
mcedit /etc/init.d/asterisk
DEAMON=/usr/sbin/asterisk
ASTVARRINDIR=/var/run/asterisk
ASTETCDIR=/etc/asterisk
/etc/init.d/asterisk start
Сейчас скрипт отрабатывает корректно, однако выдает ошибку об эскалации прав privilege escalation protection desabled
Исправляем:
mcedit /etc/asterisk/asterisk.conf
live_dangeroulsy=no
Требуется просто снять знак комментария
Создадим системного пользователя astertisk и заставим пакет работать от его имени
astertisk -r
ps aux
Сейчас работает от имени root
/etc/init.d/asterisk stop
useradd -d /var/lib/asterisk asterisk
chown -R asterisk /var/spool/asterisk /var/lib/asterisk /var/run/asterisk
Переходим в каталог с распакованным пакетом
cd contrib/init.d
cp etc_default_asterisk /etc/default/asterisk
Задаем в скопированном и переименованном скрипте пользователя и группу снимая знаки комментария
mcedit /etc/default/asterisk
AST_USER="asterisk"
AST_GROUP="asterisk"
/etc/init.d/asterisk start
ps aux
Сейчас процесс выполняется от имени пользователя asterisk
asterisk -r
Перезапускаем корректно работающий сервис
/etc/init.d/asterisk restart
Последним шагом добавляем процесс в автозагрузку.
update-rc.d asterisk defaults
Теперь при рестарте системы asterisk будет запускаться автоматически.