Установка и базовая настройка сервера asterisk на ubuntu

Содержание

Сразу приведу пример результата работы программы sngrep. Вот первое окно после запуска.

Можно заглянуть в каждую строку и посмотреть все этапы взаимодействия в sip протоколе.

У вас перед глазами будет полная картина в режиме реального времени всех событий на вашем сервере asterisk. Вы можете не только просматривать события, но и сохранять дампы для последующего изучения или отправки. Часто техподдержка оператора или просто в теме на форуме с вопросом, люди просят предоставить sip логи в режиме debug. Их можно собрать с помощью астериска через консоль или вывод в файл. Но с помощью sngrep это сделать удобнее и нагляднее, особенно если надо выделить какую-то одну небольшую часть.

Я расскажу, как установить sngrep на сервере с CentOS 7, а затем на простом примере, покажу, как пользоваться этим инструментом. Рассмотрим изменение конфигурации asterisk и проследим с помощью sngrep эти изменения в sip трафике. Работать будем на сервере, настроенном по моей статье — установка и настройка asterisk.

Разметка жесткого диска

Тема разметки диска раньше была достаточно спорной и вызывала много дискуссий и споров. Делали отдельно разделы под корень /, домашнюю директорию /home, под логи /var/logs и т.д. Мне кажется, что сейчас все это стало неактуально. Сервера общего назначения переехали в виртуальные среды, а там можно и дополнительный диск выделить под образовавшиеся нужды, либо увеличить текущий. Нет необходимости заранее продумывать на много шагов вперед, можно без проблем потом добавить дисковое пространство.

Если же вы настраиваете железный сервер, то скорее всего четко знаете для чего он нужен и разбиваете уже в зависимости от его прямого назначения. Я сам лично, если нет каких-то особых требований к серверу, создаю только один общий раздел /, lvm не использую. Не вижу в нем смысла в виртуальных машинах. А на железо я ставлю только гипервизоры, там lvm под системный раздел тоже не нужен.

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

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

Проверяем предлагаемую схему разбивки. Если все в порядке, продолжаем.

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

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

Отказываемся и идем дальше. Теперь нужно выбрать зеркало, с которым будет работать пакетный менеджер apt. Выбираем свою страну и подходящее зеркало. Я выбираю Russian Federation и зеркало Yandex.Mirror.

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

Нас спрашивают о том, хотим ли мы делиться анонимной статистической информацией об использовании различного ПО на сервере. Я обычно не делюсь.

Выбираем набор дополнительного ПО, которое будет установлено на сервер debian вместе с основной системой. Я никогда не ставлю ничего, кроме ssh сервера и системных утилит.

Все остальное можно установить потом. На последнем этапе установки нас спрашивают про загрузчик grub — установить ли нам его. В подавляющем большинстве случаев это нужно сделать. Если вы не знаете, нужно или нет, значит 100% нужно. Без загрузчика можно обойтись в очень специфических ситуациях, которые мы рассматривать не будем в этой инструкции по установке debian. Так что устанавливаем grub на единственных жесткий диск.

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

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

Устанавливаем на сервер необходимые пакеты. Скажу честно, я точно не знаю, нужны ли они все. Список подсмотрел у себя, но он явно избыточный, так как там еще и freepbx ставится. Заглянул еще в несколько руководств и сделал компиляцию, убрав то, что сразу показалось лишним. Думаю, тут есть еще что-то лишнее, например libsqlite3-dev, но на 100% не уверен, а проверять каждый пакет не хочется.

Дожидаемся установки всех пакетов. В процессе будет задан вопрос с паролем root для mysql, так что не уходите далеко от консоли. Параллельно можно пока скачать исходники необходимых программ — pjproject, jansson.

После установки пакетов, приступаем к сборке pjproject и jansson:

На этом подготовка сервера к установке asterisk 13 закончена. Приступаем к самому главному.

Установка FreePBX

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

Создаем файл конфигурации /etc/odbcinst.ini:

cat EOF /etc/odbcinst.ini

Description = ODBC for MySQL (MariaDB)
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc8w.so
FileUsage = 1
EOF

Создаем файл конфигурации /etc/odbc.ini

cat EOF /etc/odbc.ini

Description = MySQL connection to ‘asteriskcdrdb’ database
Driver = MySQL
Server = localhost
Database = asteriskcdrdb
Port = 3306
Charset = utf8
Socket = /var/run/mysqld/mysqld.sock
Option = 3
EOF

Создадим базу данных для работы FreePBX:

1 mysql -u root -p

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

Установка завершена, через Web браузер заходим в консоль FreePBX:

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА

Today’s:

  • FreePBX Production Install Guide (RHEL v5 or v6, Asterisk v1.8+, FreePBX v2.9+)
  • Kazoo v4 Single Server Install Guide
  • A2Billing v2.2 Install Guide
  • Homer SIP capture and VoIP Monitoring Install Guide
  • Simple IPTables Firewall with Whitelist and Blacklist

All time:

  • FreePBX Production Install Guide (RHEL v5 or v6, Asterisk v1.8+, FreePBX v2.9+)
  • A2Billing Install guide
  • A2Billing v2 Install Guide
  • Asterisk/FreePBX on an OpenVZ/Virtuozzo Virtual Private Server (VPS)
  • Freepbx Production Install Guide (RHEL v6, Asterisk v11+, Freepbx v2.11+)

Last viewed:

  • FusionPBX v4.4 Freeswitch v1.8 Debian v9 PostgreSQL Nginx Install Guide
  • Asterisk Freepbx on CentOS (CentOS v7, Asterisk v14, Freepbx v14)
  • Asterisk/FreePBX on an OpenVZ/Virtuozzo Virtual Private Server (VPS)
  • A2Billing v2.2 Install Guide
  • OpenSIPS v2 with GUI on Debian v8 MariaDB Apache install guide

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

Я рекомендую ознакомиться с моим материалом на тему установки и первоначальной настройки centos 8. Многие вопросы там рассмотрены подробнее, здесь же я не буду на них задерживаться, просто выполню необходимые команды.

Прежде чем мы начнем устанавливать asterisk, нам надо выполнить целый ряд подготовительных действий. Первым делом отключаем selinux. Для этого открываем файл:

и устанавливаем значение SELINUX=disabled. После этого применяем настройку без перезагрузки сервера:

Рекомендация по отключению selinux дается в официальной инструкции по установке freepbx, так как это может привести к нарушению процесса инсталляции.

Дальше обновляем систему и ставим пакеты Development Tools:

И еще некоторые зависимости, которые будут нужны.

В своей работе FreePBX использует базу данных Mysql. В качестве mysql сервера будем использовать mariadb. Для Freepbx версия не критична, так что будем ставить 10.3 из базового репозитория.

Запускаем mysql сервер.

Compile Asterisk

Once the asterisk archive is extracted, change to the directory with the following command:

Use the script to install all of the missing packages:

Depending on the number of the missing packages the installation may take some time, once it is completed the output will look like the following:

Next step is to run the script which will check your system for missing libraries and binaries and prepare the Asterisk source code for the build process:

The output of the successful completion should look like the following:

Now that the configuration is completed start the compilation process using the command:

Depending on your system resources the build process may take several minutes and once it is completed the following message will be printed on your console which means that the Asterisk was successfully compiled:

The next step is to run the command which will install Asterisk and all compiled Asterisk modules:

Upon successful Asterisk installation you will be presented with the following message on your screen:

Run the make samples command to install the Asterisk sample configuration files:

Install the initialization script so that you can manage your Asterisk service using the systemctl command :

The command above will show no output.

Next install the logrotation script with the following command:

You will see the following output indicating that the logrotation configuration has been successfully created:

Типы iso образов

Когда я начал готовить эту инструкцию по установке, был удивлен тем, что не смог быстро найти внятного и точного списка и описания официальных iso образов debian. Сам я почти всегда использую самый простой минимальный образ netinst.iso. С его помощью можно выполнить минимальную установку системы.

Название образа netinstall вводит в заблуждение, намекая на то, что для установки нужен интернет. На самом деле это не так. Базовую установку с минимальным набором программ, которые включают в себя основные системные утилиты, можно выполнить даже без наличия интернета. Более того, система нормально установится с этого минимального образа даже без сетевой карты.

На официальном сайте debian нет точного списка и описания всех образов. Я собрал информацию из содержания различных репозиториев дебиана, где представлены iso образы для загрузки. По смыслу есть 4 типа загрузочных дисков:

  • Минимальный для установки голой системы и системных утилит.
  • Минимальный с xfce для установки системы с простым графическим окружением.
  • Огромный dvd образ из 3-х дисков с системой и пакетами.
  • Различные live образы dvd дисков, которые отличаются графической оболочкой.

Последние 2 типа я даже не смотрел и не проверял. Мне обычно необходим сервер в минимальной установке, поэтому я использую netinstall образ. Для удобства я составил таблицу по редакциям Debian 9 Stertch


Источник: server-unit.ru