Настройка asterisk debian 10

Обновлено: 03.07.2024

В статье описывается процесс установки автоматической телефонной станции на базе Asterisk в операционной системе Debian 10 из исходных кодов.

Дано: компьютер со свежеустановленной операционной системой Debian 10; должен быть установлен хотя бы один сетевой адаптер.
Задача: установить Asterisk из исходных кодов и протестировать работу на базовом уровне.
Уровень пользователя: средний (умеющий работать в командной строке и в файловом менеджере Midnight Commander).
Начальные условия:

в компьютере не будут работать специализированные телекоммуникационные платы типа DAHDI, PRI, E1, ISDN и тд. Внутри сети будут работать железные и софтовые VoIP-телефоны, а для соединения с внешним миром будут использоваться VoIP-шлюзы. во внутренней сети уже работает пограничный маршрутизатор, отделяющий Интернет от локальной сети. IP-адрес адаптера маршрутизатора в локальной сети: 192.168.1.1

Решение:

Очень кратко план будет таков: сперва настроим сетевое взаимодействие, чтобы у машины нормально работала сеть и был прямой доступ в интернет - скрипты инсталлятора Asterisk будут докачивать нужные файлы в процессе установки. Далее отключим внутренний кэширующий DNS -сервер systemd, вместо внутренней системы синхронизации времени установим ntpd. Затем скачаем пакет с исходниками Asterisk, произведём конфигурирование и настройку опций, скомпилируем, настроим окружение и попробуем запустить станцию.

Базовая донастройка машины

Сперва доустанавливаем полезные для работы утилиты:

Сетевой стек

Если сетевой стек на будущем сервере Asterisk уже настроен, этот шаг пропускаем.

Открываем и редактируем файл конфигурации сетевых адаптеров /etc/network/interfaces и добавляем конфигурацию сетевого адаптера:

Имя интерфейса у вас может быть другое, исталлятор Debian автоматически находит интерфейсы и предлагает вести конфигурацию. Если был выбран способ получения адреса автоматически, то в /etc/network/interfaces уже будет минимальный набор опций, откуда можно получить имя интерфейса.

В примере выше добавлен автостарт интерфейса, ему дан адрес 192.168.1.10, указан основной шлюз и адрес DNS -сервера 192.168.1.1

После изменений перезагружаем машину и тестируем работу сети - пинг до шлюза и в интернет. Далее просматриваем лог-файл /var/log/syslog . Если в нём обнаруживаем проблему с загрузкой драйверов на сетевой адаптер, например:

, то можно доустановить родной дравер, а не использовать упрощённый, входящий в базовый комплект дистрибутива. Для этого добавляем ветку non-free в /etc/apt/sources.list :

, а затем обновляем список пакетов и доустанавливаем бинарники драйверов:

, где firmware-realtek - имя пакета, куда входит драйвер. Эту информацию можно найти в интернете.

После установки недостающих драйверов перезагружаем машину и снова смотрим /var/log/syslog на предмет проблем с сетевым адаптером. Ядро подгружает драйверы автоматически, как только находит нужный файл.

Настройка systemd и её встроенных служб

По умолчанию в Debian 10 ставится система инициализации systemd. Для нашей основной задачи она вполне подойдёт, только необходимо её немного настроить, а именно: отключить внутренний кэширующий DNS -сервер и внутреннюю систему синхронизации времени.

Отключение внутреннего резолвера и кэширующего DNS -сервера:

Отключение внутренней системы синхронизации времени:

Устанавливаем ntpd взамен systemd-timesyncd :

Демон настройки обычно не требует. Проверить работу можно командой: ntpq -p , которая выдаст список серверов с метками времени. Сразу после запуска ntpd, эта команда ничего не выдаст - нужно подождать, пока ntpd не найдёт серверы времени и не обменяется с ними информацией.

Получение исходного кода Asterisk

Итак, идём на официальный сайт и скачиваем на машину последнюю стабильную версию пакета. Пакет копируем в какую-нибудь директорию, например /home/user/asterisk и распаковываем в этой директории:

Доустановка дополнительных пакетов

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

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

Будет доустановлено пакетов примерно на 200…300 Мбайт.

На этом этапе инсталлятор возможно запросит ITU код страны, на что нужно ввести международный код России 7

Конфигурирование установщика и опций Asterisk

и знакомимся с путями и опциями. В самом широком пространстве вариантов опций, можно выполнить так:

, что обеспечит поддержку в Asterisk технологии JSON, возможности подключения к MySQL (MariaDB), а также встроенную поддержку pjsip (усовершенствованный модуль поддержки SIP-соединений).

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

Независимо от планируемой конфигурации, нужно зайти в категории меню:

и выбрать английские и русские пакеты с файлами озвучки для кодека ALAW. В категории "Music On Hold File Packages", нужно выбрать пакет MOH-OPSOUND-ALAW. Когда все необходимые модули выбраны - нажимаем "Save & Exit" для сохранения конфигурации.

Почему именно ALAW?
Если АТС будет работать в локальной сети с высокоскоростными каналами, то нет необходимости использовать кодеки с более высоким уровнем сжатия (и, соответственно, низким использованием пропускной способности), такими как gsm, g729, g722. Дополнительно это обеспечит намного лучшее качество звука.
Все телефоны и софт-фоны нужно будет настроить на использование ALAW в первую очередь, чтобы станция не тратила процессорное время на перекодировку между разными форматами. Можно также использовать ULAW - это американская версия европейского ALAW.

Установка

По умолчанию, без установки значения PREFIX на этапе выполнения . /configure , всё ставится в /usr

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

Устанавливаем скрипт инициализации:

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

Обновляем кэши библиотек операционной системы.

Подготовка окружения

Добавляем в систему пользователя, от имени которого будет работать Asterisk:

Раскомментируем строки в /etc/default/asterisk

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

Раскомментируем строки в /etc/asterisk/asterisk.conf

и там же глобально устанавливаем язык голосовых файлов:

Тестовый запуск

Запускаем Asterisk и читаем логи.

При запуске Asterisk в syslog может выдать:

- это проблемы неверно указанных путей к радиус-клиенту в файле /etc/asterisk/cel.conf . По факту, файл radiusclient.conf в Debian 10 находится в каталоге /etc/radcli и необходимо в файле /etc/asterisk/cel.conf скорректировать путь на:

Есть опция radiusclient и в /etc/asterisk/cdr.conf , но она закомментирована по умолчанию, хотя Asterisk в логах "ругается" на неё.

Добавление учётной записи и тестовый звонок

Добавляем в конец /etc/asterisk/pjsip.conf данные для подключения тестового телефона:

Здесь, для подключения телефона используется password=222password и username=222

Заходим в консоль Asterisk и даём команду перечитать конфигурационный файл pjsip.conf :

  1. Настройка ОС Debian 10.
  2. Установку всех необходимых компонентов и приложений.
  3. Инсталляция средств администрирования Linux.
  4. Интеграция с БД MariaDB.
  5. Установку Asterisk 16 LTS.
  6. Настройка Asterisk 16 LTS.
  7. Подключение Asterisk 16 через драйвер unixODBC к MariaDB.
  8. Выполним настройку безопасности Asterisk!

Введение

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

Исходные данные

  1. Физический сервер с ОС Debian 10.
  2. VoIP-шлюзы и IP-телефоны в локальной сети.
  3. Voice VLAN = 192.168.0.0/16, 172.16.0.0/16.
  4. Asterisk 16 LTS (*CLI).
  5. LAMP (Linux Apache2 + MariaDB 10.3 + PHP 7.3 + PhpMyAdmin).
  6. IPtables.
  7. IPset.

Asterisk 16 на Debian 10

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

Первым делом исправим файл с репозиториями /etc/apt/sources.list.

Обновление системы

Во-вторых, произведем обновление системы и установку необходимых пакетов.

Установка зависимостей

Установка LAMP

MariaDB

Во время установки необходимо задать пароль пользователя root к БД MariaDB, поэтому следует указать более сложный пароль.

Apache2
PhpMyAdmin

Далее, сгенерируем шифр Blowfish:

На следующем шаге установим полученное значение в файл конфигурации PhpMyAdmin, а значит вместо значения Your_Blowfish_Secret нужно вставить полученный выше шифр:

Необходимо настроить службу Apache2, чтобы она работала совместно с PhpMyAdmin, следовательно правил следующий файл:

После этого, устанавливаем БД, потому что для PhpMyAdmin необходима собственная база, где:

Для доступа к WEB прежде всего следует настроить Apache2:

Установка Asterisk

Необходимые зависимости для Asterisk
Инсталляция дополнительных библиотек
Установка Asterisk

Если вы следуете нашей инструкции следует, включить следующие модули:

  • chan_ooh323
  • chan_sip
  • app_macro
  • res_config_mysql
  • app_mysql
  • cdr_mysql
  • format_mp3
  • codec_g726
  • codec_g722
  • codec_opus
  • codec_silk
  • codec_siren7
  • codec_siren14
  • FILE_STORAGE
  • cdr_adaptive_odbc
  • cdr_csv
  • cdr_odbc
  • MOH-OPSOUND-WAV
  • CORE-SOUNDS-RU-WAV

По желанию можно отключить те модули, которые вы явно использовать не собираетесь, поэтому лучше их отключить. С точки зрения оптимизации ресурсов, мы отключили следующие:

  • chan_alsa
  • chan_console
  • chan_mgcp
  • chan_skinny
  • BUILD_NATIVE
Настройка Asterisk
Настройка ODBC подключения к БД

Подключим Asterisk через драйвер unixODBC к БД MariaDB. Между тем, об этом мы писали ранее в статье.

Итак, запускаем Asterisk как службу:

Проверяем статус службы:

Если ошибок нет, значит установка завершилась успешно. В случае возникновения ошибки:

Редактируем файл /etc/asterisk/cdr.conf и раскомментируем строки:

Также редактируем файл /etc/asterisk/cel.conf:

После чего перезапускаем службу:

Создание БД для Asterisk

Чтобы подключаться к БД через WEB-интерфейс сделаем импор БД через PhpMyAdmin:

Настройка безопасности Asterisk

Установка пакетов безопасности Asterisk

В итоге, установим пакеты, обеспечивающие безопасность системы.

Установка безопасности на уровне Asterisk

На этом все! Установка и настройка Asterisk 16 окончена. Тем не менее, пожелания, замечания, предложения просим оставлять в комментариях.

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

Asterisk – свободный сервер для цифровой телефонии, работающий на базе Linux, FreeBSD, OpenBSD. Использование Asterisk позволяет создать собственную АТС с возможностью гибкой настройки функциональности. Сервер распространяется на условиях двойной лицензии, благодаря которой можно использовать решения как с открытым кодом, так и интегрировать модули с содержанием лицензионного кода.

В этой статье мы рассмотрим как выполняется установка Asterisk Debian 10. В репозиториях Debian как правило, содержится не самая свежая версия Asterisk, так как тысячи людей со всего мира активно развивают проект. Поэтому при установке собственного сервера часто используют компиляцию из исходного кода, что, кроме прочего, позволяет оптимизировать сервер под конкретное окружение Linux или BSD системы, что, в свою очередь, даёт прирост производительности при прочих равных условиях.

Шаг 1. Подготовка

Установите необходимые пакеты и выполните обновление ОС Debian 10

sudo apt -y update && sudo apt -y upgrade

sudo apt install -y build-essential linux-headers-`uname -r` openssh-server mariadb-server mariadb-client bison flex curl sox libncurses5-dev libssl-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp2-dev libspandsp-dev subversion libtool-bin python-dev unixodbc dirmngr debhelper cmake libmariadb-dev odbc-mariadb libodb-mysql-dev

4DSYE+l0AAAAAElFTkSuQmCC

Шаг 2. Загрузка исходников

Создайте в месте хранения исходных кодов /usr/src директорию asterisk, в которую вы в дальнейшем поместите все исходные файлы и перейдите в неё

sudo mkdir /usr/src/asterisk

AQbMLT1ZWmALAAAAAElFTkSuQmCC

Загрузите исходный код Asterisk16 с официального сайта и распакуйте его:

Шаг 3. Сборка дополнительных библиотек

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

sudo tar xvzf libpri-current.tar.gz
sudo rm libpri-current.tar.gz
sudo tar xvzf dahdi-linux-complete-current.tar.gz
sudo rm dahdi-linux-complete-current.tar.gz
cd /usr/src/asterisk/dahdi-linux-com*
sudo make
sudo make install
cd /usr/src/asterisk/libpri*
sudo make
sudo make install
sudo ldconfig

Астериск работает с оригинальной полноценной имплементацией протокола SIP, а также может одновременно для разных каналов использовать PJProject – более современную имплементацию протокола SIP. При этом на этапе подготовки к сборке можно указать ключ --with-pjproject-bundled скрипту для сборки проекта, расположенному по адресу /path/asterisk-source-dir/configure

Шаг 4. Установка PJSIP

Перейдите в каталог сборки проекта:

На момент написания статьи актуальный стабильный релиз PJProject 2.10. Необходимо скачать проект, распаковать и запустить компиляцию из исходного кода. Для этого поочерёдно введите команды:

wGmPRLupKKEaAAAAABJRU5ErkJggg==

Шаг 5. Подготовка к компиляции Asterisk

Добавьте пользователя asterisk в список Linux пользователей:

sudo useradd asterisk

84AVxVt5CSzgAAAABJRU5ErkJggg==

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

QpzYQBnvG8MwyrvqYEU62tiW4qPLrqHBp2G7KJW9mKZss6NLYWjpWyUwrCPlvHmnt7F4TEU62rgxzrSZMwHTURTHbSguQz4JMrmYpgy7VcIwTKejdu0qIsGRFr1JbD6U6VfrICis6mA6nW5TX6jSjllB4x1ImQ16nJzjnKRGa5cWck0V5Roc21VUFHYibxgGFW0pPibVrqVHaKBMPh3rpUaf97RGcAzDwCcG5RmGWnSJZBgGFW2pmELy4WLLgfr+f7dGIlEJhD3NAAAAAElFTkSuQmCC

На момент написания статьи актуальной версией Asterisk 16 является 16.17.9. Сначала необходимо установить оставшиеся зависимости. После выполнения команды:

IErFW2jpvMQAAAABJRU5ErkJggg==

Должен появиться вывод приблизительно такой, как на скриншоте выше. В этой директории содержатся несколько исполняемых файлов asterisk, которые необходимо выполнить

yZ34swbYZHa8CKjximjGduAakWKplwsdb2LThh62D6qgU10Vf0DxLmHNgSZgEUAAAAASUVORK5CYII=

AEik6aWCfoiJkUInAJYwSBiyE30OwKJtcnO0IXIg0YHHHppaKrIk4yH00S73GcNkBsJe7CJLFCZSost8PAXR7OYoy4qCzTFxgfOW2YMpDBwxsP8DQJgCEWpIQMwEKCNNn96huAWJBIIDzpHRPpWR3wcIewohngZQJwMEvvnNUUI0EkgkEARwjoz2AYICCQgPiKcBcC4NkUfiMW+Jiv8Dn1QrNvTmDtMAAAAASUVORK5CYII=

yUO7SGCvqlaAAAAAElFTkSuQmCC

wf4uOh3EWU5WgAAAABJRU5ErkJggg==

В процессе установки зависимостей может потребоваться ввести код страны, для которой устанавливается АТС, временную зону сервера Debian 10. Введите цифры кода без знака «+»

gRRa+DbmTKCt+JXZznZNgt1ys52a82yb1w4C35bqsrYBJ6eEZPc3s50a5xL9H4r0uL2xtsWmAAAAAElFTkSuQmCC

8ltHDlOo0Hj2O7A41SjD5oYmGgF7TwAZtaA6FYEQklA56Lsp3R0xEIsgvvAebGll12smwPMLkKY1wLqCgMqfPmNI4tZQRCLoBY4L7b0DEKHEDAPzGsBeP40US9i2zOIRaCvF9Hf3mK7AZAIwDylyOB5AzxQJKAWjdSL6IuFWAR1vwcWz08tsuAiT4CZz4EMuhWBYbHAU6hRPyIspgOxCB58fkIqtLyKCmkATIblUPWBhlpEDCUZqRexTW474f8BYv0aYpZdDUsAAAAASUVORK5CYII=

Шаг 6. Сборка Asterisk из исходного кода

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

/usr/src/asterisk/asterisk-16.17.0/configure --with-pjproject-bundled –with-jansson-bundled

Jansson это ещё один проект, который используется при работе Asterisk. Он позволяет использовать данные JSON, на нем основано много функций гибкого управления АТС и передачи данных во внешние приложения и получения данных из них же.

На следующем этапе создаётся меню, которое позволяет управлять модулями для текущей сборки Asterisk

3Ii0Q6nQ5J4QL8P0fHGJlmS8FYAAAAAElFTkSuQmCC

В этом меню XXX отмечены модули, которые не были найдены в системе.

D1yMF1SW+q1DAAAAAElFTkSuQmCC

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

sLgrxFkce4HhzhS3Alkl8iPD3wbex7gk18rfxyVrBnfMDWu4d0sZHGFpODg1vX9ei2KzK5U45Nd11sQM1Jjv+ZztDdrfxwVCrWaP44Nzf8DMimDmGppcB8AAAAASUVORK5CYII=

Особое внимание уделите кодекам, которые будут собраны при сборке проекта. Лучше выделить все доступные, чтобы в дальнейшем не тратить ресурсы сервера на пересборку проекта. После завершения выбора нажмите Save & Exit и последовательно введите команды сборки:

Если после завершения сборки, в директории /lib/systemd/system не появился файл asterisk.service необходимо его туда скопировать командой

sudo cp /usr/src/asterisk/asterisk-16.17.0/contrib/systemd/asterisk.service /lib/systemd/system

Задайте права на исполняемые файлы и создайте необходимые директории

chown asterisk:asterisk /var/run/asterisk

chown -R asterisk:asterisk /etc/asterisk

chown -R asterisk:asterisk /var//asterisk

chown -R asterisk:asterisk /usr/lib/asterisk

Шаг 7. Запуск Asterisk

По завершении включаем автозагрузку Asterisk при запуске ОС Debian 10 и перезапускаем службу сервера

systemctl enable asterisk

systemctl restart asterisk

Шаг 8. Настройка Asterisk

Для подключения к консоли сервера телефонии из терминала наберите команду

vYNmcnWVFlZV7d4VDdEjpjYRtdsveSaLRtF0J7bBuwlICnSss2pIXLExLYoZXPYfL2rDNrrj0JTIltbdWWHvxKSoiFyyru7rr2mMlbrVBjGJh1qtF9oT6Z9x0S1E1tZTR4GdRnlUAF5PZVKBXW+i3L4f+Y5IynUu8rPAAAAAElFTkSuQmCC

Убедиться, что произошло подключение к собранной версии АТС можно с помощью команды консоли Asterisk

core show version

MMlawAAAABJRU5ErkJggg==

rkxEf9KOn0AAAAASUVORK5CYII=

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

При вводе команды make samples при сборке Asterisk создаются типовые файлы настроек, которые возможно редактировать из Терминала или с помощью различных административных панелей управления сервером Asterisk, например такой, как FreePBX. Убедитесь, что исходные настройки были созданы командой

wM541GQaxYaQwAAAABJRU5ErkJggg==

Теперь вы знаете как выполняется установка Asterisk 16 на Debian 10. Сборка Asterisk из исходного кода позволяет оптимизировать под выбранное окружение исполняемые файлы сервера. Этот достаточно простой и проработанный процесс позволяет понять каким образом собираются проекты из исходного кода, какие элементы ОС Debian 10 использует собираемый проект.

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

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.


Установите Asterisk 16 в Ubuntu 18.04 / 16.04 и Debian 10/9

Ниже приведены шаги по установке Asterisk 16 на Ubuntu 20.04 / 18.04 / 16.04 и Debian 10/9.

Шаг 1. Обновите систему

Начните установку Asterisk 16 в Ubuntu 20.04 / 18.04 / 16.04 и Debian 10/9, обновив систему, чтобы избежать проблем с зависимостями:

Шаг 2. Установите зависимости Asterisk 16 LTS

После того, как система будет запущена и обновлена, установите все необходимые пакеты зависимостей Asterisk:

Затем добавьте репозиторий юниверса и установите из него Subversion:

Шаг 3. Загрузите тарбол Asterisk 16 LTS

Поскольку Asterisk 16 недоступен в исходных репозиториях Debian и Ubuntu, установка будет выполнена из исходников. Сборка из исходного кода позволяет легко создавать все необходимые функции УАТС и настраивать систему VoIP.

Загрузите последнюю версию Asterisk 16 LTS в локальную систему для установки

Затем извлеките файл:

Выполните следующую команду, чтобы загрузить библиотеку mp3-декодера в дерево исходных текстов.

Убедитесь, что все зависимости разрешены:

Шаг 4. Соберите и установите Asterisk 16 в Ubuntu 20.04 / 18.04 / 16.04 и Debian 10/9

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

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

Успех должен иметь результат, как показано ниже:

Параметры меню настройки, выполнив следующую команду:

Используйте клавиши со стрелками для навигации и клавишу Enter для выбора.

Add-ons выберите chan_ooh323 и, format_mp3 как показано ниже

В Core Sound Packages выберите форматы аудио пакетов, как показано ниже.

Для Music On Hold выберите следующие минимальные модули

В дополнительных звуковых пакетах выберите, как показано ниже:

Включите app_macro в меню « Приложения» .

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

Затем соберите Asterisk, запустив:

Когда закончите, установите Asterisk, выполнив команду:

При желании вы можете установить документацию:

Наконец, установите конфиги и образцы.

Будет создан файл служебной единицы systemd для звездочки.

Создать пользователя Asterisk

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

Установите для пользователя Asterisk по умолчанию asterisk:

После внесения изменений перезапустите службу asterisk:

Включите службу звездочки для запуска при загрузке системы:

Сервис должен работать без ошибок:

Проверьте, можете ли вы подключиться к Asterisk CLI:

Теперь у вас установлен Asterisk 16 LTS на вашем сервере Ubuntu 20.04 / 18.04 / 16.04 и Debian 10/9.

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