Как скачать, установить и настроить через FreePBX за 15 минут

Как скачать, установить и настроить через FreePBX за 15 минут Хостинг
Содержание
  1. Как скачать, установить и настроить через FreePBX за 15 минут
  2. Подготовка сервера
  3. Установка
  4. Сборка DAHDI
  5. Сборка LibPRI
  6. Установка Asterisk
  7. Настройка и запуск
  8. Ошибки запуска
  9. Предупреждения при запуске
  10. Заведение первых номеров
  11. Проверка
  12. Подготовка системы
  13. 1. Время
  14. 2. Настройка firewall
  15. 3. Установка пакетов
  16. 4. Создание пользователя
  17. Настройка веб-сервера
  18. Сервер баз данных
  19. NGINX
  20. PHP и компоненты
  21. NGINX + PHP
  22. NodeJS
  23. Установка Asterisk
  24. Установка FreePBX
  25. CDR и подключение к базе данных
  26. Читайте также
  27. Файлы для первоначальной настройки
  28. Установка Asterisk из исходников
  29. Сборка и установка необходимых зависимостей и пакетов.
  30. Установка и установка их исходников
  31. Подключение абонентов
  32. Добавление плана звонков
  33. Настройка транка
  34. Редактирование dialplan
  35. Ошибки в настройке Asterisk
  36. Расширенные настройки Asterisk
  37. Настройка голосового меню (IVR)
  38. Голосовая почта
  39. Очередь входящих звонков (queue)
  40. Статистика звонков (cdr viewer)
  41. Запись разговоров (record)
  42. Музыка на ожидании (hold on)
  43. Конференции
  44. Перевод, перехват и переадресация звонков
  45. Настройка Asterisk с помощью fail2ban
  46. Настройка обратного звонка
  47. Настройка черного списка
  48. Настройка умной предустановленной переадресации вызовов
  49. Автообзвон
  50. Отправка факсов на e-mail
  51. Преимущества Asterisk

Как скачать, установить и настроить через FreePBX за 15 минут

Как скачать, установить и настроить через FreePBX за 15 минут
Бытует мнение, что для того, чтобы установить Asterisk, сначала нужно установить Linux на компьютер, или сервер. А что делать, если отказ от Windows невозможен? Просто установите Asterisk под Windows!

•   Устанавливаем VirtualBox: Всё время жмем далее и со всем соглашаемся;
•   Далее в окне программы нажимаем «Файл» > «Импорт конфигураций». Указываем путь до скачанного образа;
•   После импорта нам останется запустить получившуюся виртуальную машину и приступать к настройке телефонии в офисе.

Что Вы получите:
В итоге Вы получите полнофункциональную систему телефонии Asterisk 13 с WEB интерфейсом FreePBX 14. Система телефонии работает под Windows.

Видео по установке Asterisk под Windows:

Что еще нужно сделать для телефонизации офиса?

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

Обычно, Директору, секретарю, или начальникам отделов требуется смотреть статистику звонков. Также им необходимо искать и прослушивать записи разговоров.
В решении этой задачи Вам поможет Windows программа HelloAsterisk.

Посмотрите обзор поиска звонков в программе HelloAsterisk:

Тематические термины: Asterisk, LinuxUbuntu

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

Подготовка
Установка
    Сборка DAHDI
    Сборка LibPRI
    Установка Asterisk
Настройка и запуск
    Возможные ошибки
    Возможные предупреждения
Заведение первых номеров (extensions)
Проверка

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

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

Установка

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

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

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

apt install make gcc

Сборка 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.

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

tar -xvf asterisk-*.tar.gz

Устанавливаем библиотеки для работы с 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.

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

               .$$$$$$$$$$$$$$$=..
            .$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$$$$$$$$$.$$$$$$
       $$$$$$$$$$$$$$$$.
 

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

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

Затем собираем исходник:

И выполняем установку:

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

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

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

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

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

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

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

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

И редактируем следующее:

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

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

chown -R asterisk:asterisk /etc/asterisk

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

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

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

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

enabled = no

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

systemctl start asterisk

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

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

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

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

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

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

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

systemctl restart asterisk

Проверка

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

tail -f /var/log/asterisk/messages

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

Подробнее рассмотрим настройку 3CX. Скачиваем ее с официального сайта. Устанавливаем, приняв лицензионное соглашение и нажимая далее. После установки запускаем приложение и на запрос отвечаем, что создадим новый профиль. Нажимаем New и вводим данные для подключения:

Пример настройки подключения к Asterisk в софтфоне 3CX

Используемые термины: Asterisk, FreePBX, Ubuntu, NGINX.

Самый быстрый способ установить Asterisk + FreePBX — использовать ISO-образ FreePBX Distro. Но мы рассмотрим установку данной сборки на Linux Ubuntu «с нуля».

Данная инструкция написана на примере установки Asterisk 18 LTS и FreePBX 16 — хоть на момент написания этих строк, последняя версия астериска была 20-я, FreePBX 16 поддерживает, максимум, Asterisk 19. В качестве веб-сервера для FreePBX мы будем использовать NGINX.

Подготовка системы

Для корректной работы сервера необходимо настроить системное время, открыть порты в брандмауэре и создать пользователя asterisk. Также мы установим несколько пакетов и создадим учетную запись, от которой будет работать Asterisk.

1. Время

Задаем часовой пояс:

timedatectl set-timezone Europe/Moscow

* в данном примере московское время. Список всех зон можно посмотреть командой timedatectl list-timezones.

Устанавливаем сервис для синхронизации времени:

apt install chrony

И запускаем его с разрешением автозапуска:

systemctl enable chrony —now

2. Настройка firewall

Мы должны открыть порты:

  • 5060 (tcp/udp) — SIP.
  • 5061 (tcp/udp) — SIP over TLS.
  • 80 (tcp) — http.
  • 443 (tcp) — https.
  • Диапазон от 10000 до 20000 (udp) — голосовой трафик.

В Ubuntu для управления брандмауэром, как правило, использоваться iptables. Рассмотрим настройку.

Открываем порты для астериска и веб-сервера:

iptables -I INPUT -p tcp —match multiport —dports 5060,5061 -j ACCEPT

iptables -I INPUT -p udp —match multiport —dports 5060,5061 -j ACCEPT 

iptables -I INPUT -p tcp —match multiport —dports 80,443 -j ACCEPT

iptables -I INPUT -p udp —dport 10000:20000 -j ACCEPT

Для сохранения правил установим:

3. Установка пакетов

Выполним установку пакетов:

apt install wget tar language-pack-ru

  • wget — утилита для загрузки файлов по сети.
  • tar — для распаковки архивов.
  • language-pack-ru — русская локаль. Она нужна, чтобы у нас была возможность выбрать русский интерфейс во FreePBX.

4. Создание пользователя

Нам нужен общий пользователь, от которого будет работать Asterisk и веб-сервер. Это необходимо, чтобы веб-сервер имел доступ к каталогам астериска.

Создаем пользователя командой:

Настройка веб-сервера

Для работы FreePBX нам необходим веб-сервер и СУБД. В нашем примере мы установим связку NGINX + PHP + MariaDB + NodeJS.

Сервер баз данных

apt install mariadb-server

Стартуем сервис и разрешаем его автозапуск:

Читайте также:  Добейтесь успеха с Composer: повысьте SEO-рейтинг и видимость

systemctl enable mariadb —now

Задаем пароль для суперпользователя СУБД:

NGINX

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

apt install nginx

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

В секции http добавим опцию:

* данный параметр разрешает загрузку файлов размером до 128 Мб.

Перезапускаем nginx и разрешаем автозапуск:

systemctl enable nginx

Стартовая страница NGINX

PHP и компоненты

Прежде чем начать установку, необходимо изучить документацию к устанавливаемой версии FreePBX в части требований версии PHP. Например, для нашей 16-й версии это можно сделать на странице с описанием релиза.

Также имейте ввиду, что для каждой версии дистрибутива Ubuntu характерна установка своей версии PHP. Иногда, для установки определенной версии нам потребуется подключить дополнительный репозиторий. Подробнее читайте в инструкции Установка разных версий PHP на Linux Ubuntu.

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

apt install php php-fpm php-bcmath php-gd php-json php-mbstring php-mysqlnd php-pear php-snmp php-zip php-curl

В процессе установки php устанавливается apache, но нам он не нужен — вводим команду для запрета его автозапуска:

systemctl disable apache2

Теперь смотрим установленную версию php командой:

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

Теперь открываем настройки для php командой:

Правим значения для следующих опций:

  • upload_max_filesize — максимальный объем загружаемого файла.
  • post_max_size — максимальный объем всех загружаемых файлов за один раз.
  • date.timezone — временная зона.
  • memory_limit — максимальный объем памяти, который может использовать интерпретатор.

Открываем настройки php-fpm:

Задаем значения для следующих опций:

* FreePBX должен работать с файлами в каталоге /etc/asterisk. Владельцем этого каталога будет пользователь asterisk, поэтому обработка php должна выполняться тоже от данного пользователя, чтобы иметь соответствующие права на редактирование конфигурационных файлов.

Разрешаем php-fpm и перезапускаем сервис:

NGINX + PHP

Свяжем наш веб-сервер с php. Для этого откроем конфигурационный файл:

Добавим следующие строки в разделы http — server:

* в данном примере мы создаем секцию location для обработки php через php-fpm. Обратите внимание, что в моем случае для взаимодействия используется сокет /run/php/php7.4-fpm.sock. Для другой версии PHP путь будет другим.

Выполним проверку конфигурации:

И перезапустим nginx:

nginx -s reload

Создадим файл php в домашней директории nginx:

<?php phpinfo(); ?>

Информационная страница phpinfo

Мы готовы идти дальше.

NodeJS

Последний компонент для нашего веб-сервера — NodeJS.

В стандартном репозитории Ubuntu может быть очень старая версия данного компонента. Установим репозиторий для nodejs 16:

Теперь можно выполнить установку:

apt install nodejs

Убедиться в установке можно командой просмотра версии:

Наш веб-сервер готов к работе.

Установка Asterisk

Мы будем устанавливать 18-ю версию Asterisk. На странице загрузки мы можем посмотреть все версии АТС и ссылки на них:

Копируем ссылку на нужную нам версию Asterisk

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

tar -xvf asterisk-*.tar.gz

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

Если система запросит телефонный код страны, вводим 7 (если мы настраиваем телефонию для России).

В итоге, мы должны увидеть:

#############################################
## install completed successfully
#############################################

Чистим временные файлы, которые появились после установки зависимостей:

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

* в данном примере мы конфигурируем исходник без дополнительных опций. Полный перечень опций и что они означают можно посмотреть командой ./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$$$$$$$$$.$$$$$$      
       $$$$$$$$$$$$$$$$.                

configure: Package configured for: 
configure: OS type  : linux-gnu
configure: Host CPU : x86_64
configure: build-cpu:vendor:os: x86_64 : pc : linux-gnu :
configure: host-cpu:vendor:os: x86_64 : pc : linux-gnu :

Продолжаем настройку — запускаем меню для выбора параметров:

Можно оставить значения по умолчанию и сохранить настройки.

Теперь можно запустить сборку астериска:

Мы должны увидеть сообщение об успешной сборке:

 +——— Asterisk Build Complete ———+
 + Asterisk has successfully been built, and +
 + can be installed by running:              +
 +                                           +
 +                make install               +
 +——————————————-+

Устанавливаем скрипты для автозапуска АТС и готовые конфигурационные файлы:

Ранее мы создали пользователя asterisk, от которого должен запуститься наш сервер телефонии. Для этого откроем файл:

defaultlanguage = ru
documentation_language = ru_RU

Задаем владельца для следующих каталогов:

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

chown -R asterisk:asterisk /etc/asterisk

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

Откроем файл с настройкой модулей:

Можно добавить модуль chan_sip:

load = chan_sip.so

Мы должны увидеть Asterisk Ready:

Проверка запуска Asterisk

После успешной проверки, можно запустить Asterisk в качестве демона:

systemctl enable asterisk

systemctl start asterisk

Установка FreePBX

Возвращаемся в домашнюю папку пользователя:

apt install sox mpg123

  • sox — консольная утилита для преобразования аудиофайлов из одного формата в другой.
  • mpg123 — аудиопроигрыватель/декодер реального времени.

Скачиваем портал для управления астериском:

* мы скачаем freepbx версии 16.

Распаковываем скачанный архив:

tar zxf freepbx-*.tgz

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

Запускаем скрипт проверки работы Asterisk:

STARTING ASTERISK
Asterisk is already running

Начнется установка — в конце мы должны увидеть:

You have successfully installed FreePBX

Доустановим модуль управления сертификатами:

fwconsole ma downloadinstall certman

Обновим все компоненты:

fwconsole ma updateall

fwconsole reload —verbose

Задаем стартовые настройки freepbx

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

Настраиваем язык веб-интерфейса

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

#include manager_additional.conf
#include manager_custom.conf

;include manager_additional.conf
;include manager_custom.conf

Перезапускаем сервис Asterisk:

systemctl restart asterisk

Asterisk + FreePBX настроен.

CDR и подключение к базе данных

В моем случае, не работало ведение CDR, а при вводе в консоли asterisk команды:

> odbc show

ODBC DSN Settings
——————

  Name:   asteriskcdrdb
  DSN:    MySQL-asteriskcdrdb
    Last fail connection attempt: 2021-05-08 10:25:52
    Number of active connections: 0 (out of 5)
    Logging: Disabled

То есть, нет подключения к базе данных asteriskcdrdb. А при попытке подключиться к нужному DSN из командной строки:

isql -v MySQL-asteriskcdrdb

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

Нам необходимо выполнить 2 действия:

  1. Установить коннектор ODBC.
  2. Изменить драйвер для подключения к СУБД в odbc.ini.

Так как в данной инструкции мы используем в качестве севера баз данных MariaDB, нам необходим соответствующий коннектор. Для его установки воспользуемся инструкцией Настройка в Linux подключения к MariaDB из PHP с помощью ODBC.

После открываем файл:

В разделе MySQL-asteriskcdrdb задаем новое значение для параметра driver, а также проверяем что есть директива Server со значением нашего сервера баз данных:

* список доступных драйвером можно посмотреть в файле /etc/odbcinst.ini.

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

Проверяем наличие следующей записи (если ее нет, добавляем):

* в данном примере описано подключение к СУБД с драйвером MariaDB и путем до файла с библиотекой (отдельно для 32- и 64-разрядной версии).

systemctl restart asterisk

После можно проверить, что Asterisk подключился к базе:

Мы должны увидеть:

ODBC DSN Settings
——————

  Name:   asteriskcdrdb
  DSN:    MySQL-asteriskcdrdb
    Number of active connections: 1 (out of 5)
    Logging: Disabled

Читайте также

Вам могут быть полезны следующие инструкции:

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

2. Настройка очередей звонков в Asterisk.

IP-АТС Asterisk умеет все то же, что и традиционная АТС, плюс поддерживает актуальные для бизнеса VoIP-протоколы: голосовую почту, конференц-связь, центр обработки звонков, интерактивное меню, хранение записей. Рассказываем, как настроить с нуля базовый функционал «Астериск» АТС и получить рабочий сервер компьютерной телефонии.

Для примера настройки Asterisk возьмем офис с такими характеристиками:

  • 3 отдела, в которых работают 25 сотрудников;
  • используются трехзначные телефонные номера;
  • услуги предоставляет один SIP-провайдер.

Не советуем устанавливать Asterisk из репозитория, так как при данной установке может установиться не та версия Asterisk и необходимых к ней зависимостей. В данном случае используем установку Asterisk из исходников.

В разных операционных системах (Cent Os, Ubunty и др.) отличаются команды и необходимые зависимости.

Файлы для первоначальной настройки

Настройка Asterisk – это, по сути, редактирование конфигурационных файлов в директории /etc/asterisk/. К таким файлам относят:

  • pjsip.conf – настройка мультимедийной библиотеки PJSIP;
  • extensions.conf – настройка диалплана: вызовы, переадресация, мелодии на удержании, автосекретарь и прочее;
  • asterisk.conf – настройка путей к используемым папкам Asterisk;
  • cdr.conf – основные настройки отчета о звонках Call Detail Record;
  • rtp.conf – настройки протокола RTP;
  • features.conf – параметры перехвата и парковки вызова, максимальное время набора и переадресации, DTMF-коды абонентских функций;
  • modules.conf – данные о модулях загрузки при старте Asterisk;
  • musiconhold.conf – конфигурации музыки на удержании;
  • iax.conf – соединения по протоколу IAX для объединения между собой двух и более АТС;
  • voicemail.conf – параметры голосовой почты;
  • logger.conf – параметры журналирования работы Asterisk.
Читайте также:  Где хранится база данных хостинга и где MySQL хранит файлы базы данных в Windows и каковы имена файлов?

Установка Asterisk из исходников

Сборка и установка необходимых зависимостей и пакетов.

Вначале нужно установить дополнительные пакеты, которые необходимы для установки и работы Asterisk. Без части из этих пакетов Asterisk вообще откажется устанавливаться (к примеру, если отсутствует gcc). Без некоторых пакетов Asterisk установится и даже будет работать, однако часть функционала окажется недоступна.

Например, пакет bison необходим для обработки выражений в файле extensions.conf. Еще пример: libnewt необходим для работы интерфейса управления astman. Для сервера Asterisk он не требуется, но без этого пакета у вас не будет приложения astman, которое является отдельной программой.

Приводим пример установки Asterisk 13 в системе Cent OS 6.9:

yum -y install gcc gcc-c++ make ncurses-devel libxml2-devel sqlite-devel bison kernel-headers kernel-devel openssl openssl-devel newt newt-devel flex curl sox binutils

Для 12-13 версии Asterisk требуется установка пакетов uuid и janson. Для установки библиотеки uuid в RHEL / Centos выполните команду:

yum -y install libuuid-devel

. Для установки библиотеки jansson в RHEL / Centos выполните команду:

yum -y install jansson-devel (предварительно требуется установка репозитория epel): yum install epel-release

После обновляем систему до последней версии командой yum update –y и перегружаем ее:

Установка и установка их исходников

Настройка Asterisk выполняется в чистом виде, без дополнительных плат расширения и модемов. Так вы получите максимально эффективное и рабочее решение – программную АТС, которую можно легко переносить с одного сервера на другой. Для этого необходимо установить Asterisk с нуля, инсталлировать pjproject с jansson, обновить систему и отключить SELinux.

Для начала отключим Selinux. Для этого заходим /etc/selinux/config и ставим: SELINUX=DISABLED.

Также выключаем FireWall (iptables):

  1. Проверка статуса: service
  2. Отключение: service
  3. Отключение из автозагрузки: chkconfig iptables off
  4. Перегружаем систему:

git clone git://github.com/asterisk/pjproject pjproject

Для конвертации mp3-файлов необходим пакет Lame. Установим его из репозитория:

rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

— проверка установленных репозиториев

Далее устанавливаем сам пакет: yum install lame

Скачиваем и устанавливаем библиотеку Libpri:

tar xvfz libpri-1.4-*.tar.gz

Если команды wget – не существует, то устанавливаем ее командой yum –y install wget

Далее скачиваем и устанавливаем сам asterisk 13:

tar xvfz asterisk-13-current.tar.gz

Если при проверки и подготовки сборки необходимых настроек, моделей никаких ошибок нету, то появиться в консоли иконка Asterisk

Настройка Asterisk АТС - изображение 1

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

Выберите модули и звуки (можно оставить по умолчанию). В модулях выбираем только sip. (pjsip не ставим):

Настройка Asterisk АТС - изображение 2

Настройка Asterisk АТС - изображение 3

Настройка Asterisk АТС - изображение 4

Установите озвучку для core и extra (для второй она доступна на русском языке). Рекомендуем кодеки g729, alaw, ulaw, ,gsm. Далее уже на Ваш вкус какие кодеки необходимы.:

Другие настройки можно оставить по умолчанию. Если вы установили модуль, но поняли, что он вам не нужен, просто отключите его в конфигурации и сделайте заново сборку через make. Сохраняем выбранные изменения.

При успешной установки Asterisk видно в строчках лога эмблему Asterisk (появляется после этапа configure).

Добавьте Asterisk в автозапуск и приступайте к работе:

chkconfig asterisk on

service asterisk start

Проверьте корректность запуска через консоль:

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

Подключение абонентов

Протестируйте работу ATC Asterisk с помощью программного сервиса звонков. Сделайте базовые настройки в файле конфигурации sip.conf (где лежит – /etc/asterisk/sip.conf). По умолчанию в нем много полезных комментариев, но они загромождают код. Рекомендуем сделать копию файла конфигурации и сохранить ее отдельно, а оригинальную очистить от лишнего текста. Пример типовой конфигурации Asterisk:

context = default

realm = Test Aster

trustrpid = yes

sendrpid = yes

Настройка peer — https://www.voip-info.org/wiki/view/Asterisk+config+sip.conf

Для применения изменений Sip перегружаем SIP в консоли астера (asterisk -r) командой sip reload

Добавление плана звонков

План звонков при настройке Asterisk потребуется для совершения вызовов. Найдите файл конфигурации extensions.conf, сделайте его резервную копию, а оригинальную версию очистите от комментариев и запишите в нее следующее:

extension — http://asterisk.ru/knowledgebase/Asterisk+config+extensions.conf

;для исход. внутренних номеров между собой

Так вы добавите план звонков на трехзначные номера. В нашем случае это номера 101 и 102 (в sip.conf)

Перезагрузите план набора (диалплан):

Не страшно, если на экране появятся сообщения об ошибках – вы еще не завершили настройку и исправите их на следующих шагах.

Проверьте список пользователей командой:

sip show peers

Список пользователей и их пароли

Пользователи, пароли и контекст

Установите любую программную «звонилку» или воспользуйтесь реальным телефоном. В первом варианте вам понадобится настроить софт для работы с АТС. В нашем примере используем Zoiper 5. Пример настроек указан в нашей вики http://wiki.new-tel.net/doku.php?id=Zoiper-PC:

Рекомендованные настройки для программной «звонилки»

Настройки софтовой «звонилки» для проверки Asterisk

Все дальнейшие настройки звонилки и принцип работы указан в ссылке выше.

Теперь проверьте подключенные пиры с помощью команды:

Sip show peers

Если все верно, вы увидите такую строку:, в котором видно нашу SIP-линию и статус подключения SIP-линии:

Sip-линия IP-address A 5060 OK Cached RT

После настройки Asterisk протестируйте звонки на двух абонентах. Для этого подключите еще один физический или программный телефон. Позвоните от одного абонента другому (набрав с 101 на 102 и наоборот). Проверьте содержимое файла /var/log/asterisk/full. – там появится запись о последнем вызове. Также там фиксируется все сообщения и ошибки, возникаемые при работе Asterisk.

Записи обо всех последующих вызовах тоже попадут в этот файл. Позже их можно будет перебросить в базу данных.

Настройка транка

В конец файла sip.conf добавьте нового пира, как это рекомендует ваш провайдер:

secret=password ;пароль для подключения транка

Пусть Asterisk заново перечитает файл:

Если настройка программы в IP АТС Asterisk прошла успешно, в консоли появится такая строка:

Sip-линия IP-address A 5060 Unmonitored Cached RT

Редактирование dialplan

Чтобы настроить входящие и исходящие звонки в IP-телефонии Asterisk, отредактируйте файл extensions.conf, добавив в конце следующий код (с контекста local):

;для исход по транку (пример указан с префиксом 123#).

exten => _123#8XXXXXXXXXX,1,Set(CALLERID(all)=78125000963)

exten => _123#8XXXXXXXXXX,n,Noop( (CALLERID(all) + Boris)

избавление от префикса 123# и заменой цифры 8 на 7. Далее отправляется звонок на хост IP провайдера (указан в sip.conf)

для вход. по транку на 101.

exten => _XXXXXXXXXX,1,Dial(SIP/101,30,r)

Перезагрузите Asterisk командой core restart now и снова сделайте тестовый звонок. Информация о нем добавится в файле full

Пример лога консоли Asterisk:

Настройка Asterisk АТС - изображение 5

На этом базовая настройка IP-телефонии «Астериск» завершена. Чтобы расширить функционал после того, как Asterisk установлен, настройте приветствие и голосовое меню (ivr), активируйте голосовую почту, настройте очередь (queue) входящих звонков, сбор и просмотр статистики (cdr viewer), запись (record) разговоров, поставьте музыку на ожидание (on hold), настройте конференции, перевод, перехват и переадресацию звонков.

Ошибки в настройке Asterisk

Рассмотрим распространенные ошибки при настройке виртуальной АТС «Астерикс» и дадим инструкции, которые помогут их .

  • Asterisk не регистрируется на сервере и возвращает ответ Forbidden в режиме отладки.

    Причина: некорректно введен пароль, указан SIP ID или домен. Проверьте содержимое файла sip.conf.

  • Сбрасываются входящие звонки.

    Причины: внутренний пользователь не зарегистрирован. Проверьте регистрацию командой sip show registry.

  • Не проходят исходящие вызовы.

    Причина: некорректно задан шаблон номера (пропущен символ «_» перед шаблоном).

  • Звук проходит только в одну сторону.

    Причина: вы используете NAT. Включите debug и используйте tcpdump – так вы увидите, куда уходят запросы и аудиотрафик.

Расширенные настройки Asterisk

Дальше нас интересует расширенная настройка Asterisk. Рассказываем, как несколько несложных действий помогут вам добавить новые возможности IP-телефонии для бизнеса.

Настройка голосового меню (IVR)

Другое его название – голосовое дерево. Настройка Asterisk IVR служит для того, чтобы звонящий мог подключиться к конкретному сотруднику организации или переключиться на определенную линию техподдержки. Также IVR позволяет получать полезную информацию без соединения с оператором: звонящий сможет выбрать пункт голосового меню и прослушать его содержимое.

Для настройки IVR перейдите в файл конфигурации extensions.conf. Все изменения необходимо внести в план набора dialplan. Общая схема выглядит так: вначале воспроизводится запись с приветствием, затем звонящий слышит предложение ввести номер в тональном режиме. Нам нужно обработать эту информацию и затем в зависимости от выбранного сценария перевести звонящего на конкретного сотрудника, очередь или другой план набора.

Голосовое приветствие должно быть сохранено в формате .waw или .gsm, это можно сделать во многих приложениях для звукозаписи. Если вы используете готовый файл в другом формате, воспользуйтесь пакетом для конвертации sox.

В Asterisk инструкция для изменения или создания IVR выглядит следующим образом:

а) в файл конфигурации добавьте код:

б) перезапустите настройки:

asterisk -x «dialplan reload»

в) настройте возможность выбора отдела:

exten => 333,1,Answer()
exten => 333,2,Background(basic-pbx-ivr-main)
exten => 333,3,WaitExten(5)
exten => 1,1,Goto(managers,s,1)
exten => 2,1,Goto(support,s,1)

Снова перезапустите настройки:

asterisk -x «dialplan reload»

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

При наборе внутреннего номера могут возникнуть проблемы. Если это случилось, проверьте режим DTMF – это аналоговый сигнал для набора телефонного номера. Чтобы настроить sip-пир на определенный способ передачи DTMF, добавьте в файл конфигурации такую строку:

Голосовая почта

Если звонящий долго находится на линии в ожидании ответа оператора, ему можно предложить оставить голосовое сообщение. Для реализации этого функционала откройте файл voicemail.conf и добавьте в него такой код:

Предварительно настройте локальный почтовый сервер или используйте внешний.

Перезапустите модуль голосовой почты и протестируйте его работу:

CLI> voicemail reload

default 130 Number 121 0

default 100 Number 100 0

Добавьте голосовую почту в dialplan:

Номер для записи звуков, окончание записи #

exten => _35X, 1, NoOp()

exten => _35X, n, Wait(2)

exten => _35X, n, Playback(beep)

exten => _35X, n, Wait(1)

exten => _35X, n, Wait(2)

exten => _35X, n, Hangup()

Управление голосовой почтой

Читайте также:  Почему не приходят сообщения на Яндекс.Почту

exten => 500,1,VoiceMailMain()

Звонок на внутренний номер

Звонок на внешний номер

По умолчанию время ожидания ответа до включения голосовой почты составляет 15 секунд.

Очередь входящих звонков (queue)

Настройка Asterisk с нуля редко предполагает организацию очереди, но мы рассмотрим, как ее реализовать, если ваша компания в этом функционале нуждается. Очередь позволяет управлять потоком звонков и перераспределять их по заданным правилам – например, направлять первому освободившемуся оператору. Для настройки очереди откройте файл queues.conf. Предположим, что у нас два оператора с внутренними номерами 101 и 102. Тогда в конец файла добавьте такой код:

strategy = ringall

member => SIP/100

member => SIP/130

Узнать, какие значения может принимать параметр strategy, который отвечает за принцип распределения вызовов, можно здесь: https://www.voip-info.org/asterisk-call-queues/.

exten => t,1,Dial(SIP/100,15)

на строку с таким содержимым:

exten => t,1,Queue(secretary,t)

Перезагрузите конфигурацию Asterisk:

Статистика звонков (cdr viewer)

Вы можете попробовать разобрать содержимое файла /var/log/asterisk/cdr-csv/Master.csv, где Asterisk по умолчанию сохраняет собранную статистику звонков, но проще воспользоваться другим инструментом. Предлагаем перенести сбор статистики в базу данных MySQL. Для этого запустите сервер mariadb и введите следующие команды:

# systemctl start mariadb

# systemctl enable mariadb.service

Создайте БД и пользователя:

# mysql -uroot -p

# yum install -y mysql-connector-odbc.x86_64 unixODBC-devel.x86_64

Откройте /etc/asterisk/res_odbc.conf и в конец файла добавьте код:

enabled => yes

dsn => MySQL-asterisk

password => 12345678

Аналогично с файлом /etc/asterisk/cdr_adaptive_odbc.conf:

alias start => calldate

Создайте новый файл /etc/odbc.ini и внесите туда такой фрагмент:

Description = MySQL Asterisk database

Driver = MySQL

Server = localhost

Password = 12345678

Socket = /var/lib/mysql/mysql.sock

Database = asterisk

В инструкции «Астериска» предлагают после этого перезапустить его:

# service asterisk restart

Затем проведите тест, совершив пару звонков. После запустите и добавьте в автозагрузку такие строки:

# systemctl start httpd

# systemctl enable httpd

Запись разговоров (record)

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

mkdir /records
chmod 777 /records

Откройте файл extensions.conf и внесите туда такие изменения:

Музыка на ожидании (hold on)

Эта настройка Asterisk позволит выбрать мелодию, которая будут звучать на линии во время ожидания звонка в очереди. По умолчанию мелодии воспроизводятся из директории /var/lib/asterisk/moh. Чтобы добавить свою мелодию в формате mp3, скопируйте ее на сервер любым удобным способом, а затем создайте директорию /var/lib/asterisk/mohmp3 и перекодируйте в ней музыку в «понятный» для системы формат wav:

# mkdir /var/lib/asterisk/mohmp3

# lame —decode /root/music.mp3 /var/lib/asterisk/mohmp3/music.wav

Откройте файл /etc/asterisk/musiconhold.conf и в конец добавьте новый класс музыки musiconhold.conf:

К описанию очереди добавьте еще один параметр:

music = mp3

strategy = ringall

member => SIP/100

member => SIP/130

Выполните перезапуск, как сказано в инструкции по настройке Asterisk:

# service asterisk restart

Конференции

Конференции позволяют организовать одновременный разговор между несколькими звонящими. Для их настройки откройте confbridge.conf и добавьте в конец файла:

В начало файла:

exten => 333,1,Answer()

exten => 333,n,ConfBridge(1,confer)

Теперь при наборе номера 333 звонящий попадет в комнату для конференций.

Поздравляем, установка и настройка Asterisk завершена!

Перевод, перехват и переадресация звонков

По умолчанию для перевода звонков используется команда # + номер, на который нужно перевести звонок. Для успешного перевода нужно, чтобы он был предварительно разрешен в диалплане в команде Dial:

В «Астериске» для перевода звонков используется режим Attended Transfer, который по умолчанию выключен. Чтобы использовать его для перенаправления звонков, в файле features.conf необходимо раскомментировать строку:

atxfer => *2

Горячую клавишу для перевода можно назначать произвольным образом.

Перехват звонков в Asterisk работает по умолчанию, дополнительные настройки этой функции не требуются. Комбинация кнопок для перехвата задается в уже знакомом файле features.conf.

Например, чтобы реализовать переадресацию на мобильный номер 222, в dialplan следует добавить строку:

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

А теперь вариант с переадресацией для звонков извне:

Настройка Asterisk с помощью fail2ban

Для начала необходимо инсталлировать fail2ban:

# dnf install fail2ban

Запись событий будем вести в лог. Откроем файл /etc/asterisk/logger.conf и раскомментируем такую его строку:

security => security

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

# asterisk -x «logger reload»

После этого в директории /var/log/asterisk должен появиться файл с названием security, записи из которого будет анализировать инструмент fail2ban.

logpath = /var/log/asterisk/security

enabled = true

Нужно, чтобы fail2ban запускался автоматически:

# systemctl start fail2ban

# systemctl enable fail2ban

Не забываем, что для корректной работы fail2ban требуется заранее сконфигурированный и запущенный iptables. Учитывайте, что при отключенном firewalld вначале нужно удалить /etc/fail2ban/jail.d/00-firewalld.conf, после чего перезапустить fail2ban, чтобы он заработал.

Настройка обратного звонка

Настройка Asterisk Callback очень удобна в использовании: клиент вводит свой номер телефона в специальную форму на сайте, а спустя какое-то время ему перезванивает специалист компании. Чтобы воспользоваться Asterisk Web Callback, потребуется веб-сервер с поддержкой PHP. Настройки выполняются в файле manager.conf.

enabled = yes

port = 5038

bindaddr = 0.0.0.0 ;или реальный IP вашего сервера Asterisk

permit=0.0.0.0/0.0.0.0 ;или ip вашего веб-сервера

$strHost = «Asterisk IP Address»;

Назначаем пользовательское имя – то, которое ранее задали в файле /etc/asterisk/manager.conf):

$strSecret = «your_secret»;

Канал, куда будут направлены звонки:

$strChannel = «SIP/107»;

exten = s,1,Goto(from-internal,600,1)

Чтобы защититься от нежелательных звонков:

$strChannel = «SIP/107»;

Теперь следует задать длину номера телефона, которую могут указать клиенты в веб-форме (в нашем случае это 11 символов):

if ($length == 11 && is_numeric($strExten))

<table width=»300″ border=»1″ bordercolor=»#630000″ cellpadding=»3″ cellspacing=»0″>

<font size=»2″ face=»arial,georgia» color=»#630000″>Введите Ваш номер 812XXXXXXX.</font>

<input type=»text» size=»20″ maxlength=»11″ name=»txtphonenumber»><br>

<input type=»submit» value=»Позвонить!»>

$strHost = «127.0.0.1»;

$strSecret = «test2»;

$strContext = «from-script»;

$strWaitTime = «60000»;

$strPriority = «1»;

$strCallerId = «n <$strExten>»;

$length = strlen($strExten);

if ($length == 11 && is_numeric($strExten))

$oSocket = fsockopen($strHost, 5038, $errnum, $errdesc) or die(«Connection to host failed»);

fputs($oSocket, «Action: login\r\n»);

fputs($oSocket, «Events: off\r\n»);

fputs($oSocket, «Secret: $strSecret\r\n\r\n»);

fputs($oSocket, «Action: originate\r\n»);

fputs($oSocket, «Channel: $strChannel\r\n»);

fputs($oSocket, «Timeout: $strWaitTime\r\n»);

fputs($oSocket, «CallerId: $strCallerId\r\n»);

fputs($oSocket, «Exten: $strExten\r\n»);

fputs($oSocket, «Context: $strContext\r\n»);

fputs($oSocket, «Priority: $strPriority\r\n\r\n»);

fputs($oSocket, «Action: Logoff\r\n\r\n»);

<table width=»500″ border=»2″ bordercolor=»#850000″ cellpadding=»3″ cellspacing=»0″>

<table width=»500″ border=»1″ bordercolor=»#850000″ cellpadding=»3″ cellspacing=»0″>

<font size=»2″ face=»verdana» color=»#850000″>Введите номер телефона.</font>

<input type=»text» size=»20″ maxlength=»12″ name=»txtphonenumber»><br>

<input type=»submit» value=»Позвонить!»>

Настройка черного списка

Эта настройка Asterisk позволяет запретить нежелательные входящие звонки и оставить линию свободной для приоритетных звонков. Работает следующим образом: сверяет, не содержится ли входящий номер в черном списке внутренней базы данных Asterisk. Для проверки используется astdb, на выходе функция возвращает значение «0» (нет в базе данных) или «1» (есть в базе данных).

Для вызова функции используется команда:

Допустим, 2000 – наш абонент, 8882888 – CallerID в черном списке. Тогда:

same => n,Dial(PJSIP/2000,,tr)

exten => black,1,Playback(privacy-you-are-blacklisted)

same => n,Hangup()

Чтобы добавить новый номер в черный список, используем Asterisk CLI (Command Line Interface):

asterisk -rx «database put blacklist 8882888 1»

Допустим, нам нужно текущее содержимое черного списка. Как его получить:

Чтобы сделать то же самое, но с помощью sqlite cli, выполняем команду:

sqlite> select * from astdb where key like ‘%blacklist%’;

Настройка умной предустановленной переадресации вызовов

music => default

context => default

number => 1965751234,5

number => 17182025678,20

number => 1234

number => 5678

number => 09253&410,30,2 ; вызываются одновременно 09253 и 410 в течение 30 секунд.

number => 525,40,1 ; но сначала вызывается 525 в течение 40 секунд.

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

Подготовьте голосовое объявление для абонента: предложите или принять, или отказаться от переадресации:

По умолчанию код значения кода DTMF равен двум:

Абонент будет слышать стандартное музыкальное сопровождение:

Автообзвон

Для автоматического обзвона в настройке Asterisk используются call-файлы (Call Files). Список для автообзвона генерируется на основе номеров из заранее подготовленного текстового файла. После выполнения bash-скрипта готовый перечень звонков попадает в каталог /var/spool/asterisk/outgoing.

Пример автообзвона, при котором номера вызываются по порядку из списка и каждому абоненту проигрываются сообщения в зависимости от выбранного контекста:

exten => s,1,Wait(2)

exten => s,n,Playback(/var/lib/asterisk/sounds/custom/you_call_your_friends_are_collectors)

exten => s,n,Hangup

Так выглядит bash-скрипт:

while read number; do

cat <<EOF > /var/spool/asterisk/$number

chown asterisk:asterisk /var/spool/asterisk/$number

mv /var/spool/asterisk/$number /var/spool/asterisk/outgoing

number=`expr $number + 1`

done < /var/spool/asterisk/list.txt

Список для автоматического обзвона хранится в файле с названием /var/spool/asterisk/list.txt. Каждый следующий номер написан с новой строки, например:

Отправка факсов на e-mail

В «Астериск» реализована функция отправки факсов на электронную почту (например, общую или отдельно назначенную). Чтобы реализовать прием факсов в FreePBX 12, в Asterisk должна быть реализована поддержка SpanDSP. Для начала убедимся, что у нас предварительно загружены два важных модуля – res_fax.so и res_fax_spandsp.so.

localhost*CLI> module show like fax

Module Description Use Count Status

res_fax.so Generic FAX Applications 1 Running

res_fax_spandsp.so Spandsp G.711 and T.38 FAX Technologies 1 Running

2 modules loaded

Переходим в настройки системного факса:

Settings > Fax Configuration

Создаем виртуальный факс командой Add Extension, а затем в настройках включаем поддержку факсов (для этого достаточно поставить галочку напротив Fax Email).

Переходим в модуль FolowMe. В блоке Destination if no answer: указываем Fax Recipient и уже там – номер нашего факса FAX (например, 2566).

Аналогичным образом можно пользоваться созданным факсом для приема входящих факсов в следующем модуле:

Connectivity > Inbound Routes

Активировать автоматическое распознавание факс-сигнала можно в разделе Fax Detected.

Все входящие факсы по умолчанию сохраняются в каталоге /var/spool/asterisk/fax.

Преимущества Asterisk

У системы Asterisk есть ряд важных преимуществ:

  • Не нужно платить за лицензии, минуты и количество пользователей.
  • Легко масштабируется под любое количество сотрудников.
  • После настройки Asterisk вы получаете неограниченный набор функций IP-телефонии: запись и хранение звонков, голосовое меню, интеграцию с CRM и мессенджерами, автообзвон, обратный звонок и прочее.

Оцените статью
Хостинги