Установка asterisk 14 + freepbx 13 ubuntu 16.04

Настройка

Теперь выберем параметры для телефонного сервера Ubuntu. Настройка с нуля Asterisk выглядит так.

Меню

  1. Зайдите в меню программы — «make menuselect».
  2. Активируйте все функции «MySQL».
  3. Откройте вкладку «Add-ons».
  4. Выберите опцию «format_mp3». Так голосовое меню будет в MP3-формате.
  5. Если вы хотите поставить поддержку русского языка (или какого-то другого), включите её в подразделе «Core Sound Packages».
  6. Вам нужны все три кодека. «ALAW» — основной. «G729» — для номеров, которые присоединяются через внешнюю сеть. «GSM» — для GSM-шлюзов.
  7. Скачайте модуль «meetme».
  8. В разделе «Extras Sound Packages» тоже подключите кодеки.
  9. Для использования FreePBX выберите «cdr_odbc».
  10. На вкладке «Music On Hold File» активируйте всё.
  11. Загрузите «MOH-OPSOUND-WAV». Это набор мелодий. Потом вы сможете их заменить на те, которые вам нужны.
  12. Нажмите «Save & Exit».

Консоль

Включили модуль MP3? Теперь скачайте пакеты голосовых сообщений.

  1. Перейдите в папку «contrib/scripts/» при помощи команды «cd».
  2. Откройте скрипт «get_mp3_source.sh».
  3. Введите «make install».
  4. Подождите, пока загрузятся архивы.

Установленный Asterisk надо настраивать и через меню, и через терминал. Поэтому откройте консоль.

  1. Сделайте конфигурационные файлы. Можно в качестве теста. Команда — «make samples».
  2. Активируйте функцию автозапуска — «make config ldconfig».
  3. Теперь можно запустить сервис — «service asterisk start».
  4. Или сразу открыть его в качестве демона — «/etc/init.d/asterisk start». Чтобы включить его консоль, введите команду «sudo asterisk -rvvvcd».

Пока для работы с Астериском вам нужны права суперюзера. Но лучше создать отдельного пользователя и предоставить ему доступ к функциям программы. Для этого:

  1. Временно отключите утилиту — «service asterisk stop».
  2. Добавьте нового юзера — «adduser ». Можете создать группу, которой предоставите нужные права. Она пригодится, если вы решите сделать нескольких пользователей для работы с разными службами Астериска.
  3. Теперь нужна директория для запуска. Добавьте её при помощи команды «mkdir». После неё напишите параметр «-p» и путь к папке «/var/run/asterisk».
  4. Чтобы приложение открывалось сразу под нужным юзером, отредактируйте файл «/etc/default/asterisk». Установите там следующие параметры: «AST_GROUP=»dialout»» и «AST_USER=»asterisk»».
  5. Можно сделать это проще — впишите скрипт «sed -i ‘s/#AST_USER=»asterisk»/AST_USER=»asterisk»/g’ /etc/default/asterisk».
  6. Предоставьте пользователю доступ ко всем папкам программы — «chown -R ».
  7. Откройте файл «asterisk.conf», найдите в нём параметр «runuser» и укажите в нём только что созданного пользователя. Если делали группу, также перепишите строчку «rungroup».
  8. Перезагрузите систему — «reboot».
  9. Зайдите под именем Asterisk-юзера — «su ».
  10. И запустите программу.
  11. Чтобы посмотреть информацию о ней, введите «asterisk -rvvvv».

Утилита готова к работе. Дальнейшие действия зависят от того, в каких условиях будет использоваться станция. Есть несколько файлов, в которых расписана конфигурация:

  • conf — общие настройки сервера. В нём можно указать, сколько подключено абонентов. Там устанавливают правила дозвона.
  • conf — в нём также настраивают правила дозвона и выставляют параметры звонков.
  • conf — конфигурация абонентских аккаунтов.

С Asterisk вы создадите АТС любой сложности. В нём много полезных функций и модулей. После установки и настройки вы сможете взаимодействовать со станцией при помощи клиентского программного обеспечения. Например, Linphone.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Установка GUI

Создание папки, где будут размещаться установочные файлы GUI и его загрузка с помощью утилиты svn

mkdir ~/asterisk-gui
cd ~/asterisk-gui/
svn export http://svn.digium.com/svn/asterisk-gui/branches/2.0/
cd 2.0/

Конфигурирование и установка

./configure
sudo make install

установочная директория GUI /var/lib/asterisk/

на нее должны быть права у пользователя asterisk

Так как установка была от пользователя root, установим владельца и группу asterisk — на всю директорию

sudo chown asterisk:asterisk -R /var/lib/asterisk/

Настроим доступ для управления asterisk’ом с конфигурацией для пользователя admin и паролем 1234

sudo nano /etc/asterisk/manager.conf

содержимое

manager.conf

;
; Asterisk Call Management support
;

; By default asterisk will listen on localhost only.

enabled = yes
port = 5038
;bindaddr = 127.0.0.1
webenabled = yes

; No access is allowed by default.
; To set a password, create a file in /etc/asterisk/manager.d
; use creative permission games to allow other serivces to create their own
; files
;include "manager.d/*.conf"


secret = 1234
read = system,call,log,verbose,command,agent,user,config
write = system,call,log,verbose,command,agent,user,config

Перед установкой

В Линукс одна программа может зависеть от дополнительных модулей. И без них не будет работать. Поэтому надо скачать не одну утилиту, а несколько. Для Астериска нужны пакеты:

  • Взаимодействие с потоковыми интерфейсами ISDN. Например, с PRI, который нужен для связи с российскими операторами по E1.
  • Работа с цифровыми интерфейсами.

Они есть на сайте asterisk.org в разделе «Download». Там же указаны терминальные команды для загрузки исходников.

Перед установкой:

  1. Откройте консоль. Она в меню «Программы — Стандартные».
  2. Перед каждой командой ставьте «sudo».
  3. Обновите систему. Для этого напишите «apt-get upgrade» и нажмите Enter. Потом «apt-get update».
  4. Перезагрузите ОС командой «reboot».
  5. Синхронизируйте дату и время с официальным сервером — «apt-get install ntp».
  6. Получите права администратора — «sudo -i».

Для работы Asterisk нужны дополнительные библиотеки. Если вы ставите программу из репозитория, они должны догрузиться автоматически. Но при запуске из исходников необходимые пакеты придётся ставить вручную. Для этого используйте команду «apt-get install ». Название библиотек вводите через пробел. Понадобятся:

  • Apache Предназначен для работы с HTTP-серверами
  • OpenSSL. Криптографический инструмент.
  • LibSSL-Dev.
  • Build-Essential.
  • PHP Язык программирования, который используется для создания Web-приложений.
  • PHP5-MySQL.
  • Libxml2-Dev.
  • Subversion. Нужна для контроля версий.
  • Libncurses5-Dev.
  • Wget. С её помощью вы скачаете исходники с сайта разработчика.
  • Linux Headers. Для установки напишите не только название, но и параметры «linux-headers-$(uname -r)».

При загрузке система попросит ввести Root-пароль. У вас набор модулей может быть другим. Это зависит от того, какие пакеты у вас уже есть, и для каких целей вы будете использовать утилиту. Когда закончите с библиотеками, снова перезапустите систему. После этого можно устанавливать остальные зависимости.

Установка 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

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

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

git clone git://github.com/asterisk/pjproject pjproject
$ cd pjproject
$ ./configure —prefix=/usr —enable-shared —disable-sound —disable-resample —disable-video —disable-opencore-amr CFLAGS=»-O2 -DNDEBUG»
$ 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 автоматически, при каждой загрузке выполните:

make config ldconfig

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

service asterisk start

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

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

Получение значения UserAgent

Для выборка корректного SIP заголовка необходимо понимать какое конечное устройство подключено к endpoint. В случае с pjsip ситуация несколько изменилась. Пример:

Пример в одну строчку для AOR с ID 300. Для упрощения ID endpoint = ID AOR и = EXTEN:

В функцию «PJSIP_AOR» передаем ID AOR, и в качестве опции указываем, что вернуть нам следует поле «contact».

В функцию «PJSIP_CONTACT» передаем полученный контакт, и в качестве опции указываем, что вернуть следует поле «user_agent».

Обратите внимание, PJSIP_AOR(300,contact) вернет ID контакта, но это не тоже самое, что можно увидеть в CLI. Пример результата PJSIP_AOR:

Пример результата PJSIP_AOR:

Пример вывода в CLI:

Звонки с/на Skype

Для запуска Skype в консольном Linux используем Xvfb (X Virtual Frame Buffer) и для настройки Skype с другой машины — x11vnc:

apt-get install xvfb x11vnc
dpkg -i skype.deb

Для работы SipToSis необходима Java версии не ниже 1.5.

sudo add-apt-repository ppa:webupd8team/java 
sudo apt-get update

Установим java:

sudo apt-get install oracle-java7-installer

Разархивируем в и проставим на исполняемый файл:

chmod +x /etc/siptosis/SipToSis_linux

man hier не согласится с этим

Теперь настроим asterisk.

В добавим:

username=Skype
type=friend
context=Skype
secret=
host=dynamic
nat=no
dtmfmode=auto
canreinvite=no
incominglimit=1
outgoinglimit=1
call-limit=1
busylevel=1

В добавим

exten => 1001,1,Dial(SIP/Skype/echo123)

И перезагрузим asterisk.

sudo /etc/init.d/asterisk restart

Теперь правим конфиг SipToSis:

sudo nano /etc/siptosis/siptosis.cfg

Закомментируем блок настроек, начинающийся с «#Sample AUTO config with NO registration»
Раскомментируем блок «#Sample Asterisk registration example», поправим:

host_port=5070
contact_url=sip:[email protected]:5070
from_url="Skype" <sip:[email protected]:5060>
username=Skype
realm=asterisk
passwd=
expires=300
do_register=yes
minregrenewtime=120
regfailretrytime=15

Запускаем:

sudo /usr/bin/Xvfb :101 -ac &
sudo DISPLAY=:101 /usr/bin/skype &
sudo x11vnc -display :101 &

Подключаемся с другой машины (в моем случае, с Windows XP через VNC Viewer), вводим в Skype логин-пароль, отключаем все лишнее.

Теперь запускаем :

DISPLAY=:101 /etc/siptosis/SipToSis_linux

Если все сделано правильно, SipToSis запустится и попытается подключиться к Skype. Skype выдаст вопрос — разрешить ли подключение. Разрешаем и ставим галку «запомнить».

Проверяем: набираем с подключенного к Asterisk клиента 1001 — мы должны услышать тестовый звонок Skype.

Чтобы принимать входящие звонки, в прописываем соответствующее правило. Например:

*,sip:[email protected]:5060

-перенаправлять все входящие звонки Skype SIP-юзеру «user1».

Естественно, нужно создать в контекст «», в котором разрешить звонки на этот extension.

Asterisk 14 установка

Как использовать данное руководство.

Блоки команд с ключом ‘&&’ могут быть скопированы вместе и будут выполняться последовательно. ‘&&’ выполняет переход к следующей команде, при условии успешного выполнения предыдущей. Если вы хотите полностью, пошагово контролировать процесс установки, выполните каждую команду отдельно, без ввода ‘&&’.

Скачайте исходные файлы

cd /usr/src
wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&
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-14-current.tar.gz &&
git clone https://github.com/akheron/jansson.git &&
wget http://www.pjsip.org/release/2.5.5/pjproject-2.5.5.tar.bz2 &&
echo " ¯_(ツ)_/¯ "

Скомпилируйте и установите Lame (mp3)

cd /usr/src &&
tar zxvf lame-3.98.4.tar.gz &&
cd lame-3.98.4 &&
./configure &&
make &&
make install  &&
echo " ¯_(ツ)_/¯ "

Скомпилируйте и установите DAHDI и LibPRI

cd /usr/src &&
tar xvfz dahdi-linux-complete-current.tar.gz &&
tar xvfz libpri-current.tar.gz &&
rm -f dahdi-linux-complete-current.tar.gz libpri-current.tar.gz &&
cd dahdi-linux-complete-* &&
make all &&
make install &&
make config &&
cd /usr/src/libpri-* &&
make &&
make install &&
echo " ¯_(ツ)_/¯ "

Скомпилируйте и установите pjproject

Требуется для поддержки драйвера SIP канала PjSIP

cd /usr/src &&
tar -xjvf pjproject-2.*.*.tar.bz2 &&
cd pjproject-* &&
CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr &&
make dep &&
make &&
make install &&
echo " ¯_(ツ)_/¯ "

Скомпилируйте и установите Asterisk

cd /usr/src && 
tar xvfz asterisk-14-current.tar.gz &&
rm -f asterisk-14-current.tar.gz &&
cd asterisk-* &&
./configure &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

После ввода команды make menuselect, вам будет предложено выбрать устанавливаемые модули. Большинство требуемых модулей выбираются автоматически. Для поддержки mp3 включите модуль ‘format_mp3′. ‘res_config_mysql’ вынесено в addons по условиям лицензирования.
В разделе Core Sound Packages выберите поддержку русскоязычных файлов (если требуется) В разделе Extra Sound Packages выберите дополнительные звуковые файлы.

Asterisk 14 + OPUS

Asterisk 14 поддерживает Opus без дополнительных патчей. Зависимости (xmlstarlet) должны быть установлены до конфигурации. В разделе Codec Translators убедитесь, что модуль кодека доступен для компиляции и отметьте для установки.

Для сохранения нажмите Save & Exit и продолжите установку.

make &&
make install &&
make config &&
ldconfig

Запуск от имени пользователя ‘Asterisk‘
Расcкомментируйте в /etc/default/asterisk

AST_USER="asterisk"
AST_GROUP="asterisk"

Создайте пользователя Asterisk и задайте права пользователя.

useradd -m asterisk &&
chown asterisk. /var/run/asterisk &&
chown -R asterisk. /etc/asterisk &&
chown -R asterisk. /var/{lib,log,spool}/asterisk &&
chown -R asterisk. /usr/lib/asterisk

Перезагрузите сервер и проверьте состояние Asterisk подключившись к консоли

asterisk -vvvr
Asterisk 14.2.0, Copyright (C) 1999 - 2016, Digium, Inc. and others.
Created by Mark Spencer <[email protected]>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 14.2.0 currently running on ubuntu (pid = 1269)
ubuntu*CLI>

Убедитесь, что Asterisk запущен под своим пользователем:

ps aux | grep asterisk
asterisk  1269  4.7 11.4 1446068 57504 ?       Ssl  07:57   0:07 /usr/sbin/asterisk -U asterisk -G asterisk

Настройка межсетевого экрана и средства предотвращения вторжений

В ядре CentOS 8 по умолчанию используется межсетевой экран FirewallD, при этом настоящая инструкция предусматривает работу с iptables. Если вы предпочитаете использовать FirewallD, настройте его и пропустите данный раздел.

4.1. Деактивация FirewallD и активация iptables

systemctl stop firewalld
systemctl disable firewalld
systemctl enable iptables.service
systemctl start iptables.service

4.2. Подключение модулей iptables

Для обеспечения работы механизма динамического открытия портов RTP (SIP ALG), необходимо подключить дополнительные модули iptables:

sed -i 's/IPTABLES_MODULES=""/IPTABLES_MODULES="ip_conntrack iptable_filter iptable_mangle ipt_LOG ipt_limit ipt_state ipt_REJECT ip_conntrack_sip"/g' /etc/sysconfig/iptables-config

4.3. Настройка правил iptables

iptables -F INPUT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s <local network x.x.x.x/x> -j ACCEPT
iptables -A INPUT -s <management network x.x.x.x/x> -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 5060 -j ACCEPT
iptables -A INPUT -p tcp --dport 5060 -j ACCEPT
iptables -A INPUT -p udp --dport 4569 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables-save > /etc/sysconfig/iptables

Примечания

  1. При отсутствии корректной поддержки SIP ALG на граничном маршрутизаторе, может потребоваться статическое открытие портов UDP для прохождения медиатрафика. Для этого следует добавить указанное ниже правило iptables:

  2. Точный набор правил зависит от перечня используемых протоколов.
  3. Защита от нежелательного трафика на уровне сервера является дополнительной. Предполагается, что основная защита обеспечивается на уровне сетевой инфраструктуры.

4.4. Настройка утилиты fail2ban

Отредактируйте файл и замените исходные строки в указанных ниже секциях приведенными ниже:

ignoreip = 127.0.0.0/24
ignoreip = <local network x.x.x.x/x>
banaction = iptables-multiport

enabled = true
logpath = /var/log/asterisk/security
maxretry = 3
bantime = 3600

enabled = true

Перезапустите fail2ban и добавьте его в автозапуск:

systemctl restart fail2ban
systemctl enable fail2ban

О природе каналов и их происхождении

Каждый канал SIP и PJSIP непосредственно связан с SIP диалогом «PBX — UAC».

Проще говоря один INVITE = один канал вида SIP/104-0000XX.

Если к endpoint подключено несколько контактов, то при звонке на внутренний номер INVITE будет отправлен каждому контакту, будет создано несколько каналов.

Зная это, можно сделать следующие выводы:

  • Чем больше каналов, тем больше событий в AMI

  • Каждый канал пройдет определенный для него dialplan

  • Каждый канал повлияет на CDR записи

Если кратко подвести итог, то, после включения множественной регистрации, мы видим влияние на все основные модули наших продуктов:

  • История звонков на АТС

  • Функция записи разговоров

  • Работа CTI приложений, завязанных на AMI

Настройка множественной регистрации

После конвертации конфигурационного фала потребовалось увеличить количество контактов, которые могут подключаться к учетной записи (далее endpoint).

Каждую входящую регистрацию Asterisk рассматривает как contact.

Параметр «max_contacts» позволяет ограничить количество устройств, которые могут подключиться к endpoint.

Количество подключенных контактов можно посмотреть в CLI консоли Asterisk:

Для того, чтобы при входящем звонили сразу все контакты, потребовалось доработать dialplan.

Пример c комментариями:

После правки dialplan началось интересное поведение системы.

Наши ожидания не оправдались. Мы предполагали, что при таком звонке, asterisk будет оперировать двумя каналами «Кто звонит» и «Кому звонит». На практике, все оказалось иначе.

Установка

Теперь установка самого Asterisk на Ubuntu.

  1. Скачайте его с сайта разработчика. Введите «wget ». Файл будет помещён в текущий каталог. Поэтому заранее откройте нужную папку при помощи команды «cd».
  2. Если программа заархивирована, распакуйте её — «tar zxvf ».
  3. Зайдите в директорию с Астериксом.
  4. В последних версиях утилиты используются службы WebRTC. Их можно загрузить прямо из Asterisk-исходников — введите «contrib/scripts/install_prereq install». Е нужны скрипты «Pjproject» и «Libsrtp». Чтобы их запустить, напишите ту же команду, но с параметром «-unpackaged».
  5. Снова перейдите в каталог с программой.
  6. Наберите «. /configure». Должна появиться заставка.
  7. Можете запустить графический интерфейс, чтобы посмотреть, как выглядит меню программы «make menuselect». Чтобы выйти из него, нажмите «Exit».
  8. Теперь последовательно введите две команды: вначале «make», потом «make install».
  9. Астериск установлен и работает.

Эту программу можно скачать из репозитория — «apt-get install asterisk».

Самостоятельная сборка Pjproject и Libsrtp

Если «Pjproject» и «Libsrtp» не запустятся из исходников или возникнет ошибка, придётся самостоятельно их «собирать».

  1. Введите команду «sudo su».
  2. Перейдите директорию, в которой хранятся скрипты — «cd /usr/src/».
  3. Скачайте в неё нужный модуль — «git clone github.com/cisco/libsrtp.git».
  4. Просто загрузить скрипт недостаточно. Надо его подготовить. Откройте его папку — «cd libsrtp».
  5. Теперь введите параметры для конфигурации и настройки — «./configure CFLAGS=-fPIC».
  6. Затем строчку «make libsrtp.a».
  7. И поочерёдно команды для установки: вначале «make uninstall», потом «make install».
  8. Перейдите в каталоге на уровень вверх «cd ..».
  9. Превратите всё это в готовый скрипт — «echo «/usr/local/lib» > /etc/ld.so.conf.d/usr_local.conf».
  10. И завершите командой «ldconfig».
  11. Можете выходить из Root-режима.

Установка Asterisk 16

Я буду устанавливать LTS версию Asterisk 16. Советую для долгосрочного использования всегда использовать LTS версии. Они в целом стабильнее и дольше срок поддержки. Идем на страницу https://www.asterisk.org/downloads/asterisk/all-asterisk-versions и копируем ссылку на нужную версию. Загружаем ее на сервер.

# cd ~
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
# tar xfz asterisk-16-current.tar.gz
# cd asterisk-16*/
# contrib/scripts/install_prereq install
# contrib/scripts/get_mp3_source.sh

Устанавливаем на centos 8 пакет libedit-devel.

# dnf config-manager --set-enabled powertools
# dnf install libedit-devel

Собираем asterisk.

# ./configure --libdir=/usr/lib64
# make menuselect

Выбирайте необходимые модули и звуки, в зависимости от того, что вам нужно. Я в общем случае указываю:

  • Add-ons: format_mp3, res_config_mysql.
  • Core Sound Packages: русские звуки RU-WAV.
  • Music On Hold File Packages: звук WAV.
  • Extras Sound Packages: английский EN-WAV, русского к сожалению нет.

Все остальные настройки оставляем по-умолчанию. Ставится много модулей. Все они не нужны, но мало ли, пригодится что-то в будущем. Неиспользуемые модули можно будет потом отключить в конфигурации.

Продолжаем установку:

# make && make install && make samples && make config
# ldconfig

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

Программа запускается от суперпользователя. Но нам нужно, чтобы ее можно было запустить ее от пользователя 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/{lib,log,spool}/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, а значит мы сделали все правильно.

Автоподъем. Paging. Intercom

Это крайне интересные функции. Все они завязаны на функцию «Автоответ». Может работать как с настольными телефонами, так и с многими софтфонами.

Принцип работы многих UAC схож. Чтобы «поднять трубку» достаточно в INVITE передать дополнительный заголовок. Пример:

В случае с аппаратным телефоном будет включена либо громкая связь, либо произойдет ответ в гарнитуре.

При работе с chan_sip при originate достаточно было установить переменную SIPADDHEADER:

Работа с этой переменной была описана в chan_sip.с и при звонке заголовок добавлялся автоматически в INVITE.

В случае с PJSIP подход отличается. Упрощенный пример extensions.conf:

Опция «b» в команде «Dial» позволяет созданный канал назначения с помощью Gosub направить в дополнительный контекст «dial_create_chan».

Только в этом месте есть возможность управлять SIP заголовками ДО отправки INVITE.

Интересный вывод: «dial_create_chan» — место в dialplan, где канал еще существует, но НЕ связан с SIP диалогом.

Теперь более правильный пример установки заголовка:

С помощью функции «FIELDQTY» мы анализируем количество контактов, подключенных к endpoint. Если контактов несколько, то функцию лучше отключить, ведь сложно предугадать, на каком из телефонов сработает ответ на вызов.

С помощью функции «CUT» происходит разбор строки «SIPADDHEADER», выделяем имя заголовка и его значение.

Обязательно, после PJSIP_HEADER очищаем значение переменной SIPADDHEADER. Это страховка от случайного срабатывания «ответа» на вызов при переадресациях.

Asterisk 14 установка

Как использовать данное руководство.

Блоки команд с ключом ‘&&’ могут быть скопированы вместе и будут выполняться последовательно. ‘&&’ выполняет переход к следующей команде, при условии успешного выполнения предыдущей. Если вы хотите полностью, пошагово контролировать процесс установки, выполните каждую команду отдельно, без ввода ‘&&’.

Скачайте исходные файлы

cd /usr/src
wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&
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-14-current.tar.gz &&
git clone https://github.com/akheron/jansson.git &&
wget http://www.pjsip.org/release/2.5.5/pjproject-2.5.5.tar.bz2 &&
echo " ¯_(ツ)_/¯ "

Скомпилируйте и установите Lame (mp3)

cd /usr/src &&
tar zxvf lame-3.98.4.tar.gz &&
cd lame-3.98.4 &&
./configure &&
make &&
make install  &&
echo " ¯_(ツ)_/¯ "

Скомпилируйте и установите DAHDI и LibPRI

cd /usr/src &&
tar xvfz dahdi-linux-complete-current.tar.gz &&
tar xvfz libpri-current.tar.gz &&
rm -f dahdi-linux-complete-current.tar.gz libpri-current.tar.gz &&
cd dahdi-linux-complete-* &&
make all &&
make install &&
make config &&
cd /usr/src/libpri-* &&
make &&
make install &&
echo " ¯_(ツ)_/¯ "

Скомпилируйте и установите pjproject

Требуется для поддержки драйвера SIP канала PjSIP

cd /usr/src &&
tar -xjvf pjproject-2.*.*.tar.bz2 &&
cd pjproject-* &&
CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr &&
make dep &&
make &&
make install &&
echo " ¯_(ツ)_/¯ "

Скомпилируйте и установите Asterisk

cd /usr/src &&
tar xvfz asterisk-14-current.tar.gz &&
rm -f asterisk-14-current.tar.gz &&
cd asterisk-* &&
./configure &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

После ввода команды make menuselect, вам будет предложено выбрать устанавливаемые модули. Большинство требуемых модулей выбираются автоматически. Для поддержки mp3 включите модуль ‘format_mp3′. ‘res_config_mysql’ вынесено в addons по условиям лицензирования.
В разделе Core Sound Packages выберите поддержку русскоязычных файлов (если требуется) В разделе Extra Sound Packages выберите дополнительные звуковые файлы.

Asterisk 14 + OPUS

Asterisk 14 поддерживает Opus без дополнительных патчей. Зависимости (xmlstarlet) должны быть установлены до конфигурации. В разделе Codec Translators убедитесь, что модуль кодека доступен для компиляции и отметьте для установки.

Для сохранения нажмите Save & Exit и продолжите установку.

make &&
make install &&
make config &&
ldconfig

Запуск от имени пользователя ‘Asterisk‘
Расcкомментируйте в /etc/default/asterisk

AST_USER="asterisk"
AST_GROUP="asterisk"

Создайте пользователя Asterisk и задайте права пользователя.

useradd -m asterisk &&
chown asterisk. /var/run/asterisk &&
chown -R asterisk. /etc/asterisk &&
chown -R asterisk. /var/{lib,log,spool}/asterisk &&
chown -R asterisk. /usr/lib/asterisk

Перезагрузите сервер и проверьте состояние Asterisk подключившись к консоли

asterisk -vvvr
Asterisk 14.2.0, Copyright (C) 1999 - 2016, Digium, Inc. and others.
Created by Mark Spencer <[email protected]>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 14.2.0 currently running on ubuntu (pid = 1269)
ubuntu*CLI>

Убедитесь, что Asterisk запущен под своим пользователем:

ps aux | grep asterisk
asterisk  1269  4.7 11.4 1446068 57504 ?       Ssl  07:57   0:07 /usr/sbin/asterisk -U asterisk -G asterisk

Заключение

Мы установили оригинальную версию asterisk 13 на сервер под управлением debian 8 без каких-либо дополнений и web панелей. Дальше можно приступать к настройке. Я рекомендую воспользоваться моей инструкцией по базовой настройке asterisk с нуля. Там подробно рассказано как сконфигурировать основной функционал, который удовлетворит потребности в телефонии для среднестатистического офиса. Настройка включает в себя так же запись разговоров и подробную статистику звонков.

Онлайн курс «DevOps практики и инструменты»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

Проверьте себя на вступительном тесте и смотрите программу детальнее по .

Помогла статья? Подписывайся на telegram канал автора

Рекомендую полезные материалы по Debian:
Настройки системы
  • Установка
  • Базовая настройка
  • Настройка сети
  • Обновление 8 до 9
  • Обновление 7 до 8
  • Включение логов cron

Подробная установка Debian 9 Stratch с помощью графического инсталлятора со скриншотами и пояснениями к каждому пункту установщика.

Базовая настройка сервера Debian. Приведены практические советы по улучшению безопасности и удобства администрирования.

Подробное описание настройки сети в Debian — задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др.

Обновление предыдущей версии Debian 8 Jessie до последней Debian 9 Stratch. Подробная инструкция с описанием по каждому этапу обновления.

Обновление версии Debian 7 wheezy до Debian 8 Jessie. Подробная инструкция с описанием по каждому этапу обновления.

Включение записи логов cron в Debian в отдельный файл и настройка ротации этого файла. Отключение логов в syslog.

Настройка программных комплексов
 
  • Proxmox
  • Шлюз в интернет
  • Установка Asterisk
  • Asterisk+Freepbx
  • PostgreSQL для 1С
  • Настройка pptp

Подробное описание установки гипервизора proxmox на raid1 mdadm на базе операционной системы Debian 8. Приведены практические советы по настройке.

Настройка интернет шлюза на Debian. Включает в себя настройку iptables, nat, dhcp, dns, iftop.

Чистая установка Asterisk 13 на сервер под управлением Debian 8. Никаких дополнений и GUI, только vanilla asterisk.

Установка Freepbx 12 и Asterisk 13 на сервер под управлением Debian/Ubuntu. Подробное описание и разбор ошибок установки.

Рассказ об установке и небольшой настройке сервера бд postgresql для работы с базами 1С. Задача не сложная, но есть небольшие нюансы как по настройке, так и по выбору дистрибутива.

Описание установки и настройки pptp сервера в Debian с передачей статических маршрутов клиенту для организации доступа к ресурсам сети.

Разное
  • Бэкап с помощью rsync
  • Тюнинг postgresl для 1C

Подробное описание настройки бэкапа с помощью rsync на примере скрипта инкрементного архива на системе Centos, Debian, Ubuntu, Windows.

Ускорение работы 1С с postgresql и диагностика проблем производительности

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: