Меню Рубрики

Установка и настройка asterisk с нуля ubuntu

Установка и базовая настройка сервера 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. Используя ссылку, скачиваем исходник:

* в моем случае, последняя версия была 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

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

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. Пробуем позвонить.

источник

Установка Asterisk + Freepbx на Debian/Ubuntu

В настоящее время большую популярность получил сервер голосовой связи Asterisk. Удобнее всего им управлять с помощью web панели администрирования Freepbx. Вопросом установки и настройки этого инструмента я бы и хотел заняться в этой статье. За основу возьмем сервер Debian 8. Установка на сервер Ubuntu будет аналогична с точностью до каждой команды с сервером Debian.

Что такое Freepbx

FreePBX — это удобный GUI (графический интерфейс пользователя), который управляет Asterisk — самым популярным общедоступным программным обеспечением в области компьютерной телефонии. FreePBX является продуктом Open Source, он разработан тысячами добровольцев по всему миру.

На сегодня FreePBX загружен более чем 5 000 000 раз и обслуживает более чем 500 000 активных телефонных систем. Если Вы никогда не слышали про FreePBX, то, вероятно, будете удивлены ее возможностями для Вашего бизнеса.

FreePBX — это основанный на web интерфейс, который позволяет управлять самым популярным на сегодняшний день сервером ip телефонии asterisk. FreePBX выпускается под лицензией GNU и может свободно использоваться конечными пользователями без какого-либо ограничения. Данный продукт является компонентом FreePBX Distro и некоторых других дистрибутивов.

Первый релиз системы 0.2 (28 ноября 2004 года) был назван AMP (Asterisk Management Portal). Но имя пришлось изменить, так как Asterisk является зарегистрированной торговой маркой Digium corporation.

С тех пор вышло множество обновлений, поддерживающие новые версии Astersik, добавлены новые меню и поддержка голосовой почты, очереди звонков, факсов, различных языков, устройств DAHDI и папок пользователей.

Читайте также:  Установка бортового кузова на камаз

Поддерживаемое оборудование включает в себя устройства компаний Aastra Technologies, Algo, AND, AudioCodes, Cisco Systems, Cyberdata, Digium, Grandstream, Mitel, Panasonic, Polycom, Sangoma, Snom, Xorcom, and Yealink.

Что такое Freepbx Distro

FreePBX Distro — open source дистрибутив Linux на базе популярной операционной системы CentOS. Его можно использовать для быстрого разворачивания сервера Asterisk и панели управления Freepbx. Это вариант удобен для тех, кто не очень разбирается в linux и не хочет тратить время на ручную установку всех компонентов, необходимых для полноценной установки freepbx на отдельный сервер.

FreePBX Distro, в отличие от Elastix, выпускается самими разработчиками FreePBX, поэтому более динамично развивается и чаще выпускаются обновления. В него встроены Fail2Ban и IPTables, работает русский язык из коробки, настроен LAMP (Linux/Apache/MySQL).

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

Подготовка к установке Freepbx

Приступим к установке Freepbx. Предварительно, если вы еще не сделали, вам необходимо установить Debian сервер, а потом его настроить. Мы будем устанавливать на сервер следующей версии:

Первым делом устанавливаем зависимости:

Установка asterisk 13

Компилируем и устанавливаем pjproject

Компилируем и устанавливаем jansson

Собираем и ставим Astersik 13:

Выскочит окно, указываем код 7, если вы из России:

Продолжаем сборку:

Если все прошло без ошибок, продолжаем:


Выбираем отмеченные мной модули и продолжаем:

Устанавливаем дополнительные звуки:

Установка Freepbx 12

Создаем нового пользователя Asterisk:

Вносим изменения в конфиг apache:

Настраиваем базу данный mysql:

Отвечаем на заданные вопросы. Я везде оставлял значения по-умолчанию, кроме адреса сервера. Пароли не забудьте поставить свои:

Дальше идет установка, не буду приводить вывод. В конце установки будет сообщение:

Идет долгая установка, что-то постоянно качается, распаковывается, устанавливается. В конце у меня вылетела ошибка:

Setting operator panel web root and enabling dev state….
Done
Setting callevents = yes….
Creating client symlink….
Done
Enabling voicemail box polling
PHP Fatal error: Call to a member function send_request() on null in /var/www/html/admin/modules/voicemail/functions.inc.php on line 1154

Так как у меня уже был опыт установки предыдущих версий подобной связки, сразу полез проверять старые болячки. Открываем файл /etc/asterisk/manager.conf и видим в конце две строки:

Меняем # на ; чтобы стало так:

Сохраняем файл и перечитываем конфиг астериска:

Выходим из консоли астериск и запускаем заново установку FreePBX:

Продолжается стандартный процесс, доустанавливается то, что не установилось ранее. В конце получаем сообщение:

Если получили это сообщение, значит установка прошла успешно. Доделываем:

Все, на этом установка закончена. Теперь можно зайти по адресу http://192.168.8.101 и попасть в веб интерфейс freepbx:

Создаем пользователя и заходим в админку с этой учеткой:

На этом установка окончена, можно приступать к конфигурированию. Подробным примером настройки asterisk для чайников может служить моя статья. Хотя в ней речь идет о настройке без использования freepbx, какие-то вещи из статьи можете взять на вооружение.

источник

Установка 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 и убедится, что все действительно работает:

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

Если все было сделано правильно и установка 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.

источник

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