Тематические термины: Asterisk , Linux , Ubuntu
Инструкция позволит быстро познакомиться с сервером Asterisk, выполнив базовые действия по установке и настройке сервера. Нижеописанные действия протестированы на Ubuntu 16.04 и Asterisk 15.
Подготовка
Установка
Сборка DAHDI
Сборка LibPRI
Установка Asterisk
Настройка и запуск
Возможные ошибки
Возможные предупреждения
Заведение первых номеров (extensions)
Проверка
Актуализируем список пакетов:
apt-get update
Синхронизируем время:
ntpdate ru.pool.ntp.org
Установку можно выполнить с помощью команды apt install asterisk. Но в данной инструкции мы разберем установку путем сборки из исходников.
Рекомендуется установить Asterisk с DAHDI (драйверы плат интерфейсов телефонии) и LibPRI (библиотека для работы с потоковыми TDM-интерфейсами). Сначала необходимо собрать DAHDI, затем LibPRI и только потом — Asterisk.
Устанавливаем пакеты, необходимые для корректной сборки DAHDI и LibPRI:
apt install make pkg-config linux-headers-$(uname -r)
Загружаем исходник:
wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
Распаковываем его и переходим в распакованный каталог:
tar -xvf dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-*/
Собираем пакет и устанавливаем его:
make
make install
make config
Выходим из каталога dahdi:
cd ..
Загружаем исходник:
wget https://downloads.asterisk.org/pub/telephony/libpri/libpri-1-current.tar.gz
Распаковываем:
tar -xvf libpri-*.tar.gz
cd libpri-*/
Собираем и устанавливаем:
make
make install
Выходим из каталога libpri:
cd ..
Переходим по ссылке https://downloads.asterisk.org/pub/telephony/asterisk и копируем ссылку на последнюю версию asterisk. Используя ссылку, скачиваем исходник:
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz
* в моем случае, последняя версия была 15.
Распаковываем архив и переходим в папку, появившуюся после распаковки:
tar -xvf asterisk-*.tar.gz
cd asterisk-*
Устанавливаем зависимости:
./contrib/scripts/install_prereq install
./contrib/scripts/install_prereq install-unpackaged
Удаляем мусор:
make distclean
Устанавливаем библиотеки для работы с mp3:
./contrib/scripts/get_mp3_source.sh
Конфигурируем исходник:
./configure —prefix=/usr —sysconfdir=/etc —localstatedir=/var —libdir=/usr/lib64 —with-dahdi —with-pri —with-iconv —with-libcurl —with-speex
* где:
** список всех доступных опций можно посмотреть командой ./configure -h .
Мы должны увидеть логотип астериска:
.$$$$$$$$$$$$$$$=..
.$7$7.. .7$$7:.
.$$:. ,$7.7
.$7. 7$$$$ .$$77
..$$. $$$$$ .$$$7
..7$ .?. $$$$$ .?. 7$$$.
$.$. .$$$7. $$$$7 .7$$$. .$$$.
.777. .$$$$$$77$$$77$$$$$7. $$$,
$$$~ .7$$$$$$$$$$$$$7. .$$$.
.$$7 .7$$$$$$$7: ?$$$.
$$$ ?7$$$$$$$$$$I .$$$7
$$$ .7$$$$$$$$$$$$$$$$ :$$$.
$$$ $$$$$$7$$$$$$$$$$$$ .$$$.
$$$ $$$ 7$$$7 .$$$ .$$$.
$$$$ $$$$7 .$$$.
7$$$7 7$$$$ 7$$$
$$$$$ $$$
$$$$7. $$ (TM)
$$$$$$$. .7$$$$$$ $$
$$$$$$$$$$$$7$$$$$$$$$.$$$$$$
$$$$$$$$$$$$$$$$.
Вызываем оконное меню настройки модулей:
make menuselect
Для большинства случаев, настройки можно оставить по умолчанию. В противном случае рекомендуется изучить опции и выбрать необходимые. После нажимаем Save & Exit .
Затем собираем исходник:
make
И выполняем установку:
make install
Установим примеры конфигурационных файлов и документацию:
make samples
make progdocs
Устанавливаем скрипт инициализации (для автозапуска):
make config
Устанавливаем скрипты для отсекания логов:
make install-logrotate
Создаем конфигурационный файл для указания дополнительного пути с библиотеками:
vi /etc/ld.so.conf.d/asterisk.conf
Добавляем в него одну строчку:
/usr/lib64
* это путь до каталога с библиотеками, с которым мы собирали asterisk (опция —libdir ).
Применяем настройку:
ldconfig
Открываем конфигурационный файл:
vi /etc/asterisk/asterisk.conf
И редактируем следующее:
runuser = asterisk
rungroup = asterisk
defaultlanguage = ru
documentation_language = ru_RU
Создаем системную учетную запись asterisk:
useradd asterisk -m
Задаем права:
chown -R asterisk:asterisk /var/run/asterisk
chown -R asterisk:asterisk /etc/asterisk
chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk
chown -R asterisk:asterisk /usr/lib64/asterisk
chown -R asterisk:asterisk /var/log/asterisk
Проверяем конфигурацию:
asterisk -c
Исправляем ошибки и предупреждения. В моем случае были следующие.
No configured users for ARI. ARI предоставляет API для Asterisk REST Interface. В данном примере, отключаем поддержку:
vi /etc/asterisk/ari.conf
enabled = no
Name or service not known. Если появится такая ошибка, система не может разрешить имя компьютера в IP-адрес. Необходимо правильно настроить DNS или прописать имя компьютера в файл /etc/hosts .
No directory URL or host found. Модуль для работы lpad неправильно настроен или не настроен.
PostgreSQL RealTime: Failed to connect database asterisk on 127.0.0.1. Модуль для работы с СУБД PostgreSQL.
Failed to open /dev/dahdi/transcode: No such file or directory. Ошибку можно увидеть, если нет оборудования DAHDI.
Вышеописанные ошибки возникают из-за включенных, но не используемых модулей. Отключаем:
vi /etc/asterisk/modules.conf
noload => res_config_ldap.so
noload => res_config_pgsql.so
noload => codec_dahdi.so
Отключаем следующие модули:
noload => res_phoneprov.so
noload => app_dahdiras.so
noload => chan_dahdi.so
noload => res_pjsip_phoneprov_provider.so
noload => cel_pgsql.so
noload => cel_tds.so
Список всех загружаемых модулей можно посмотреть командой:
ls -la /usr/lib64/asterisk/modules/
Разрешаем сервис asterisk и запускаем его:
systemctl enable asterisk
systemctl start asterisk
Для первой настройки достаточно завести 2 номера с возможностью подключения по SIP.
Создаем правило обработки вызова (контекст). Открываем следующий файл:
vi /etc/asterisk/extensions.conf
И добавляем в него следующее:
[outcaling]
exten => _XXXX,1,Dial(SIP/${EXTEN},,m)
* создаем контекст с именем outcaling для четырехзначных номеров ( XXXX ) с вызовом по SIP по внутреннему номеру.
Открываем следующие конфигурационный файл:
vi /etc/asterisk/sip.conf
И добавляем в него два внутренних номера (extensions):
[1001]
type=friend
regexten=1001
secret=1234
context=outcaling
host=dynamic
callerid=»1001″ <1001>
disallow=all
allow=alaw
allow=ulaw
language=ru
callgroup=1
pickupgroup=1
qualify=yes
canreinvite=yes
call-limit=4
nat=no
[1002]
type=friend
regexten=1002
secret=1234
context=outcaling
host=dynamic
callerid=»1002″ <1002>
disallow=all
allow=alaw
allow=ulaw
language=ru
callgroup=1
pickupgroup=1
qualify=yes
canreinvite=yes
call-limit=4
nat=no
* где:
Перезапускаем asterisk:
systemctl restart asterisk
Все, что происходит в Asterisk можно посмотреть в лог-файле командой:
tail -f /var/log/asterisk/messages
Для теста настроенного сервера можно воспользоваться IP-телефоном или софт-фоном на компьютере или телефоне. Например, а качестве SIP-клиента под Windows можно установить бесплатную программу 3CX, для Android — Zoiper.
Подробнее рассмотрим настройку 3CX. Скачиваем ее с официального сайта . Устанавливаем, приняв лицензионное соглашение и нажимая далее. После установки запускаем приложение и на запрос отвечаем, что создадим новый профиль. Нажимаем New и вводим данные для подключения:
* настраиваем первый клиент для подключения с логином и паролем 1001 / 1234 , второй — 1002 / 1234 .
Пробуем позвонить.
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…