Меню Рубрики

Установка asterisk с нуля на ubuntu server

Установка Asterisk 13 на Ubuntu 16.04

Asterisk — это решение для компьютерной телефонии с открытым исходным кодом, которое поддерживает протоколы VoIP, SIP и PJSIP для операционной системы Linux. Если подключить к компьютеру соответствующее оборудование, то с помощью Asterisk можно создать полноценную станцию ATC. Среди основных возможностей программы можно отметить голосовую почту, конференции, интерактивное голосовое меню и распределение звонков.

В этой статье мы рассмотрим как выполняется установка Asterisk 13 на Ubuntu 16.04. Самой новой версии программы нет в официальных репозиториях, так как используется она рядовыми пользователями на так часто, поэтому нам придется собрать ее из исходников.

Установка Asterisk на Ubuntu 16.04

Для сборки из исходников нам нужно будет выполнять большинство действий от имени суперпользователя, поэтому сразу же получим полные права в системе:

Обратите внимание, что если вы заходите зайти на свой сервер по ssh от имени root, то вам все равно придется подключаться от имени обычного пользователя, а уже потом переключаться в консоль root. Дальше вам нужно установить зависимости для работы программы:

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

Дальше мы можем перейти к сборке программы, сначала скачаем исходный код из официального сайта:

cd /usr/src
$ wget downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz

Для распаковки исходников наберите:

tar zxvf asterisk-13-current.tar.gz

Дальше нам нужно перейти в папку с исходниками, но мы не знаем точную версию программы. У нас есть мажорная версия 13, но минорную версию мы не знаем. Поэтому используйте такую команду:

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

git clone git://github.com/asterisk/pjproject pjproject
$ cd pjproject
$ ./configure —prefix=/usr —enable-shared —disable-sound —disable-resample —disable-v
$ make dep make && make install
$ ldconfig
$ ldconfig -p|grep pj

Наконец теперь мы готовы выполнить сборку и установку Asterisk на Ubuntu 16.04:

cd .. contrib/scripts/get_mp3_source.sh
$ contrib/scripts/install_prereq install

Эти команды позволят вам установить некоторые зависимости для проигрывания mp3. Выполнение может занять некоторое время, а также вам нужно будет ввести код страны. Дальше начинаем сборку:

./configure && make menuselect && make && make install

Когда установка будет завершена, выполните такую команду, чтобы не создавать сотни конфигурационных файлов вручную:

Чтобы установить скрипты инициализации, которые позволят запускать asterisk автоматически, при каждой загрузке выполните:

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

И смотрим информацию про утилиту через терминал:

Читайте также:  Установка блютуз на lenovo g570

Если все было сделано правильно и установка Asterisk на Ubuntu 16.04 прошла успешно, то все будет работать.

Настройка Asterisk в Ubuntu 16.04

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

sudo service asterisk stop

Дальше добавьте группу и пользователя asterisk:

groupadd asterisk
$ useradd -d /var/lib/asterisk -g asterisk asterisk

Дальше нам нужно изменить скрипт инициализации так, чтобы программа запускалась от имени нужного пользователя. Мы можем отредактировать файл /etc/default/asterisk вручную, но проще использовать такие команды:

sed -i ‘s/#AST_USER=»asterisk»/AST_USER=»asterisk»/g’ /etc/default/asterisk
$ sed -i ‘s/#AST_GROUP=»asterisk»/AST_GROUP=»asterisk»/g’ /etc/default/asterisk

Для того чтобы все работало правильно, пользователю asterisk нужно дать доступ ко всем каталогам программы:

chown -R asterisk:asterisk /var/spool/asterisk /var/run/asterisk /etc/asterisk /var//asterisk /usr/lib/asterisk

Также укажем правильные настройки пользователя для полей runuser и rungroup в файле asterisk.conf:

sed -i ‘s/;runuser = asterisk/runuser = asterisk/g’ /etc/asterisk/asterisk.conf

$ sed -i ‘s/;rungroup = asterisk/rungroup = asterisk/g’ /etc/asterisk/asterisk.conf

Когда все будет готово запустите ранее остановленную службу или перезагрузите, если не останавливали:

sudo service asterisk start

Если пользователь и группа — asterisk, а значит мы сделали все правильно.

Выводы

Вот и все. Установка Asterisk 13 на Ubuntu 16.04 завершена. Теперь вы можете перейти к дальнейшей настройке сети для совершения звонков между вашими абонентами прямо через интернет. В качестве клиентского программного обеспечения можно использовать любую программу, поддерживающую нужные протоколы, например Jitsi или Linphone.

источник

Установка и базовая настройка сервера Asterisk на Ubuntu

Инструкция позволит быстро познакомиться с сервером Asterisk, выполнив базовые действия по установке и настройке сервера. Нижеописанные действия протестированы на Ubuntu 16.04 и Asterisk 15.

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

Актуализируем список пакетов:

Установка

Установку можно выполнить с помощью команды apt install asterisk. Но в данной инструкции мы разберем установку путем сборки из исходников.

Рекомендуется установить Asterisk с DAHDI (драйверы плат интерфейсов телефонии) и LibPRI (библиотека для работы с потоковыми TDM-интерфейсами). Сначала необходимо собрать DAHDI, затем LibPRI и только потом — Asterisk.

Устанавливаем пакеты, необходимые для корректной сборки DAHDI и LibPRI:

Сборка DAHDI

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

tar -xvf dahdi-linux-complete-current.tar.gz

Собираем пакет и устанавливаем его:

Выходим из каталога dahdi:

Сборка LibPRI

tar -xvf libpri-current.tar.gz

Выходим из каталога libpri:

Установка Asterisk

Переходим по ссылке https://downloads.asterisk.org/pub/telephony/asterisk и копируем ссылку на последнюю версию asterisk. Используя ссылку, скачиваем исходник:

Читайте также:  Установка веерных форсунок опель астра h

* в моем случае, последняя версия была 15.

Распаковываем архив и переходим в папку, появившуюся после распаковки:

Устанавливаем библиотеки для работы с mp3:

./configure —prefix=/usr —sysconfdir=/etc —localstatedir=/var —libdir=/usr/lib64 —with-dahdi —with-pri —with-iconv —with-libcurl —with-speex

  • —with-dahdi — с драйверами DAHDI.
  • —with-pri — с библиотекой PRI.
  • —with-iconv — с возможностью конвертации кодировок (будет не лишним для поддержки русских символов).
  • —with-libcurl — возможность извлекать данные посредством CURL-запросов (по http).
  • —with-speex — дополнительный VBR-кодек (используется на многих софт-фонах).

** список всех доступных опций можно посмотреть командой ./configure -h.

Мы должны увидеть логотип астериска:

Вызываем оконное меню настройки модулей:

Для большинства случаев, настройки можно оставить по умолчанию. В противном случае рекомендуется изучить опции и выбрать необходимые. После нажимаем Save & Exit.

Установим примеры конфигурационных файлов и документацию:

Устанавливаем скрипт инициализации (для автозапуска):

Устанавливаем скрипты для отсекания логов:

Создаем конфигурационный файл для указания дополнительного пути с библиотеками:

Добавляем в него одну строчку:

* это путь до каталога с библиотеками, с которым мы собирали asterisk (опция —libdir).

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

Открываем конфигурационный файл:

runuser = asterisk
rungroup = asterisk
defaultlanguage = ru
documentation_language = ru_RU

Создаем системную учетную запись asterisk:

chown -R asterisk:asterisk /var/run/asterisk

chown -R asterisk:asterisk /etc/asterisk

chown -R asterisk:asterisk /var//asterisk

chown -R asterisk:asterisk /usr/lib64/asterisk

chown -R asterisk:asterisk /var/log/asterisk

Исправляем ошибки и предупреждения. В моем случае были следующие.

Ошибки запуска

No configured users for ARI. ARI предоставляет API для Asterisk REST Interface. В данном примере, отключаем поддержку:

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.

Вышеописанные ошибки возникают из-за включенных, но не используемых модулей. Отключаем:

noload => res_config_ldap.so
noload => res_config_pgsql.so
noload => codec_dahdi.so

Предупреждения при запуске

  • Unable to find a valid server address or name.
  • Process_dahdi: Ignoring any changes to .
  • CEL pgsql config file missing global section.
  • Cel_tds module had config problems; declining load.

Отключаем следующие модули:

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

Читайте также:  Установка компрессора на 112

Список всех загружаемых модулей можно посмотреть командой:

ls -la /usr/lib64/asterisk/modules/

Разрешаем сервис asterisk и запускаем его:

systemctl enable asterisk

Заведение первых номеров

Для первой настройки достаточно завести 2 номера с возможностью подключения по SIP.

Создаем правило обработки вызова (контекст). Открываем следующий файл:

И добавляем в него следующее:

[outcaling]
exten => _XXXX,1,Dial(SIP/$,,m)

* создаем контекст с именем outcaling для четырехзначных номеров (XXXX) с вызовом по SIP по внутреннему номеру.

Открываем следующие конфигурационный файл:

И добавляем в него два внутренних номера (extensions):

[1001]
type=friend
regexten=1001
secret=1234
context=outcaling
host=dynamic
caller
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
caller
disallow=all
allow=alaw
allow=ulaw
language=ru
callgroup=1
pickupgroup=1
qualify=yes
canreinvite=yes
call-limit=4
nat=no

  • [1001], [1002] — имена для обозначения номеров.
  • type — типы проверки номеров. Могут быть peer, user или friend. Peer — вызовы сопоставляются с IP-адресами и номерами портов. User — проверка username. Friend — включает возможности peer и user (проверка username и IP-адреса источника) и лучше всего подходит для телефонов и телефонных программ.
  • regexten — добавочный номер. Если не задан, используется имя.
  • secret — пароль для аутентификации.
  • context — контекст или группа правил.
  • host — IP-адрес или имя клиента. Для автоматической регистрации используем dynamic.
  • callerid — идентификатор пользователя при звонке.
  • disallow — запрещает кодеки (задается перед параметром allow).
  • allow — разрешает кодеки. alaw и ulaw — алгоритмы для кодеков g711.
  • language — код используемого языка.
  • callgroup — задает группу устройства (для возможности перехвата).
  • pickupgroup — задает перечень групп, которые можно перехватывать.
  • qualify — включает или отключает периодическую проверку подключенного клиента.
  • canreinvite — включает или отключает прохождение голосового RTP трафика через Asterisk. Устанавливать, только если клиент поддерживает функцию SIP re-invites.
  • call-limit — ограничение количества одновременных вызовов.
  • nat — устанавливается в yes, если клиент находиться за NAT.

systemctl restart asterisk

Проверка

Все, что происходит в Asterisk можно посмотреть в лог-файле командой:

tail -f /var/log/asterisk/messages

Для теста настроенного сервера можно воспользоваться IP-телефоном или софт-фоном на компьютере или телефоне. Например, а качестве SIP-клиента под Windows можно установить бесплатную программу X-Lite, для Android — Zoiper.

Настраиваем первый клиент для подключения с логином и паролем 1001 / 1234, второй — 1002 / 1234. Пробуем позвонить.

источник

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

Adblock
detector