Asterisk полное руководство 7 е издание

Джим Ван Меггелен, Рассел Брайант и Лейф Мэдсен «Asterisk — Полное руководство». 5-e издание, Издательство О`Рейли
(на русском языке, в формате PDF)


Колмен Карпентер
Дэвид Даффет
Ник Мидлтон
Иан Плейн
«Asterisk 1.4 Пособие для профессионалов»
Внедрение, администрирование и консалтинг
коммерческих IP телефонных решений.(на английском языке, в формате PDF)


Russell Bryant, Leif Madsen и Jim Van Meggelen
«Астериск — будущее телефонии». 4-e издание, Издательство О`Рейли
(на английском языке, в формате PDF)
(на русском языке, в формате PDF)

Доступен частичный перевод на русский язык

  • Глава 1. Революция в телефонии
  • Глава 2. Архитектура Астериск
  • Глава 3. Установка Астериск
  • Глава 4. Задачи начальной настройки
  • Глава 5. Конфигурация пользовательских устройств
  • Глава 6. Основы диалплана
  • Глава 7. Внешние подключения
  • Глава 8. Голосовая почта
  • Глава 9. Интернационализация
  • Глава 10. Глубоко в диалплан
  • Глава 12. Маршрутизация интернет-вызовов
  • Глава 19. Факс
  • Глава 24. Системный мониторинг и протоколирование
  • Глава 26. Безопасность


Руководство FreePBX 13.

(на русском языке, в формате PDF)

Elastix 2.4 Руководство администратора (на русском языке, в формате PDF)  

А. Б. Гольдштейн, Б. С. Гольдштейн.

SOFTSWITCH на русском языке, в формате PDF и Google book вариант

Санкт-Петербург «БХВ-Петербург»

2014

 


Керри Гаррисон «Trixbox 2.6»
Развёртывание, настройка и поддержка Астериск систем (на английском языке, в формате PDF)


«Configuring Cisco SPA5xx IP Telephones in an Asterisk Environments»
(на английском языке, в формате PDF)


Алекс Робар «FreePBX 2.5 Мощные телефонные решения»
Конфигурация, развёртывание и обслуживание
корпоративных систем VoIP PBX.(на английском языке, в формате PDF)
FreePBX 2.10 Руководство администратора (на русском языке, в формате PDF)


Флавио Е. Гонсалвес
«Building Telephony Systems with OpenSER»
(на английском языке, в формате PDF)
Бен Шариф «Trixbox без слёз» (на английском языке, в формате PDF)

Бен Шариф «Elastix без слёз» (на английском языке, в формате PDF)

Содержание

  1. Глава 3. Установка Asterisk
  2. Перевод замечательной книги Asterisk™: Полное руководство, 5-е издание
  3. Глава 3. Установка Asterisk
  4. Пакеты Asterisk
  5. Проекты основанные на Asterisk
  6. Установка Linux
  7. Выбор вашей платформы
  8. Шаги для VirtualBox
  9. Linux (OpenStack) Host
  10. Зависимости
  11. Установка Asterisk
  12. Загрузка и необходимые компоненты
  13. Компиляция и установка
  14. Начальная конфигурация
  15. Настройки SELinux
  16. Настройки файрволла
  17. Финишные настройки
  18. Проверка вашей новой системы Asterisk
  19. Распространенные ошибки установки
  20. Некоторые финальные заметки по конфигурации
  21. Примеры файлов конфигурации для дальнейшего использования
  22. Командная оболочка Asterisk
  23. safe_asterisk
  24. Вывод

Глава 3. Установка Asterisk

Перевод замечательной книги Asterisk™: Полное руководство, 5-е издание

Глава 3. Установка Asterisk

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

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

В этой книге мы поможем вам построить функционирующую систему Asterisk с нуля. Для достижения этой цели в этой главе мы построим базовую платформу для вашей системы Asterisk. Поскольку мы устанавливаем из исходного кода, потенциально существует множество вариантов того, как вы можете это сделать. Наша цель — поставить стандартный вид платформы, подходящую для исследований во множестве областей. Можно снять звездочку до самых основ и запустить на очень слабой машине; однако это упражнение остается на усмотрение читателя. Процесс, который мы обсуждаем здесь, предназначен для быстрого и простого запуска, без кратковременного изменения доступа к интересным функциям.

Большинство команд, которые вы видите, будут лучше всего обрабатываться с помощью ряда операций копирования-вставки (на самом деле, мы настоятельно рекомендуем Вам иметь электронную версию этой книги под рукой именно для этой цели). 1 Хотя это выглядит как большой набор команд, которые мы даем вам, получить конфигурацию можно от начала до конца менее чем за 30 минут, так что это действительно не так сложно, как может показаться. Мы запускаем некоторые предварительные условия, некоторую компиляцию и некоторую конфигурацию после установки, и Asterisk готов к работе.

Для краткости эти шаги будут выполнены на системе CentOS 7. Это функционально эквивалентно RHEL и достаточно похоже на Fedora, так что шаги должны быть очень похожи. Для других платформ, таких как Debian/Ubuntu и так далее, инструкции также будут аналогичны, но вам нужно будет настроить по мере необходимости для вашей платформы. 2

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

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

Примечание

Если вы хотите изучить командную строку Linux, одна из лучших книг, которые мы нашли — это Командная строка Linux Уильяма Шоттса, которая была выпущена под лицензией Creative Commons и погружается прямо во все знания, необходимые для эффективного использования оболочки Linux. Её можно найти по адресу linuxcommand.org вы можете изучить книгу от начала до конца, и почти все, что вы узнаете будет тем, что стоит знать любому опытному администратору Linux.

Еще одна фантастическая книга — это, конечно же, легендарное Руководство по системному администрированию UNIX и Linux Дэна Макина, Бена Уэйли, Трента Р. Хейна, Гарта Снайдера и Эви Немет (Prentice Hall). Настоятельно рекомендуем.

Пакеты Asterisk

Существуют пакеты Asterisk, которые можно установить с помощью систем управления пакетами, таких как yum или apt-get. Вы можете использовать их как только ознакомитесь с Asterisk.

Если вы используете RHEL, Asterisk доступен из репозитория EPEL из проекта Fedora. Пакеты Asterisk доступны в репозитории Юниверса для Ubuntu.

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

Проекты основанные на Asterisk

Многие проекты используют Asterisk в качестве базовой платформы. Некоторые из них, такие как графический интерфейс FreePBX, стали настолько популярными, что многие люди ошибочно принимают его за сам продукт Asterisk. На самом деле, графический интерфейс FreePBX настолько распространен, что его можно найти в большинстве известных проектов на основе Asterisk. Эти проекты берут базовый продукт Asterisk и добавляют веб-интерфейс администрирования, сложную базу данных и внешние функции, которые полезны в типичной УАТС (например преднастройка (provisioning) аппаратов, сервер времени и т.д.).

Мы решили не освещать эти проекты в этой книге, по нескольким причинам:

  • Эта книга пытается, насколько это возможно, сосредоточиться на Asterisk и только Asterisk.
  • О многих из этих проектов, основанных на Asterisk, уже написаны книги.
  • Мы считаем, что если вы изучите Asterisk так, как мы будем учить вас, знания будут хорошо служить вам независимо от того, решите ли вы в конечном итоге использовать одну из этих предварительно упакованных версий Asterisk.
  • Если вы хотите понять, что происходит под капотом системы на базе FreePBX, эта книга познакомит вас с некоторыми навыками, которые вам понадобятся.
  • Для нас сила Asterisk заключается в том, что он не пытается решить ваши проблемы за вас. Эти проекты являются поистине удивительными примерами того, что можно построить с помощью Asterisk. Однако, если вы хотите создать свое собственное приложение Asterisk (чем на самом деле является Asterisk), эти проекты могут создавать ненужные препятствия, просто потому, что они направлены на упрощение процесса создания бизнес-АТС, а не на то, чтобы сделать возможным доступ к полному потенциалу платформы Asterisk.

Некоторые из самых популярных проектов на основе Asterisk включают (в определенном порядке):

Управляется Digium. Использует графический интерфейс FreePBX.

Ответвление оригинальных релизов open source продукта Elastix. 4 Использует графический интерфейс FreePBX.

Официальный дистрибутив проекта FreePBX. Управляется Sangoma.

Полная установка Asterisk и FreePBX для Raspberry Pi.

Проект AstLinux обслуживает сообщество, которое хочет запускать Asterisk на небольших, маломощных твердотельных устройствах. Размер установки всего решения измеряется в мегабайтах (AstLinux был первоначально разработан, чтобы поместиться на картах CompactFlash). Если вы очарованы маленькими компьютерами и хотите играть с АТС в коробке, которая помещается в вашем кармане, AstLinux может быть вам интересен.

Мы рекомендуем вам проверить их. 5

Установка Linux

Asterisk разрабатывается с использованием Linux, и если вам не очень удобно переносить программное обеспечение между различными платформами, то вам необходимо использовать Linux.

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

Мы рекомендуем установить минимальную версию CentOS, так как в процессе установки мы будем проходить через обработку всех необходимых условий. Это также гарантирует, что вы не устанавливаете ничего лишнего.

Выбор вашей платформы

Итак, строго говоря, мы уже выбрали вашу платформу для вас, но есть несколько различных способов запустить сервер CentOS (см. Таблицу 3-1).

Таблица 3-1. Сравнение платформ Linux, подходящих для Asterisk

Платформа Перспективы Учтите
OpenStack (DigitalOcean, Linode, VULTR, etc.) Через несколько минут все будет готово. Недорогой в эксплуатации. Не требует никаких ресурсов в вашей локальной системе. Доступен из любой точки мира. Может использоваться в продакшене. Фантастический для быстрого прототипирования проектов. Вы платите, пока он работает. IP-адрес является вашим только до тех пор, пока система работает. Требуются некоторые навыки DevOps, если вы хотите развернуть в продакшене. По умолчанию брандмауэр отсутствует.
VirtualBox (or other PC-based platform) Бесплатен в использовании. Нет внешнего воздействия. Отлично подходит для небольших лабораторных проектов. Требует больше лошадиных сил в вашей системе. Требуется место для хранения в локальной системе. Не так просто развернуть в рабочей среде.
AWS and/or Lightsail Недорогой в эксплуатации. Не требует никаких ресурсов в вашей локальной системе. Доступен из любой точки мира. Может использоваться в производственной среде. Вес до огромных размеров. Вы платите, пока он работает. Несколько больше навыков требуется, чтобы собрать все необходимые ресурсы.
Физическое оборудование Выделенная платформа. Может быть загружено и установлено везде. Полный контроль над всеми аспектами окружающей среды, оборудования, сети и так далее. Риск отказа компонентов. Потребляемая мощность. Шум. Потенциальные затраты на хостинг. Не присуща избыточность.
Другое (на самом деле все, что будет работать с CentOS 7, должно быть в порядке) Вы можете использовать среду, с которой вы знакомы. Вы сам себе хозяин.
Другие Linux (на самом деле вам не нужно запускать CentOS) Вы можете запустить такую среду, которую захотите. Вы должны иметь хорошие навыки администрирования Linux.

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

  • Если вы используете Windows в качестве рабочего стола: загрузите VirtualBox, затем загрузите CentOS 7 Minimal ISO и установите на локальном компьютере.
  • Если вам удобно работать с подключениями на основе SSH с ключами к удаленным системам: создайте размещенную систему (например, DigitalOcean CentOS droplet).

Эта книга была разработана и протестирована с использованием как VirtualBox, так и DigitalOcean.

Шаги для VirtualBox

Загрузите Minimal ISO с веб-сайта Centos.

Возьмите копию VirtualBox с веб-сайта платформы и установите ее.

Загрузите PuTTY если используете Windows.

  • Тип: Linux
  • Версия: Red Hat (64-bit)
  • Объем памяти: 2048 MB
  • Жёсткий диск: Создать новый виртуальный жесткий диск
  • Расположение файла: выберите подходящее место для хранения образов виртуальных машин
  • Размер файла: 16 ГБ подходит для наших целей, но для продакшена потребуется куда больше

Создайте новую виртуальную машину со следующими характеристиками:

  • Носители: под пунктом Носители, Контроллер: IDE
    1. Вы должны увидеть крошечный значок диска CD/DVD с надписью Пусто.
    2. Нажмите на него и справа под Атрибуты появится еще один значок крошечного диска.
    3. Нажмите на него, и он попросит вас выбрать образ оптического диска.
    4. Найдите на жестком диске Minimal ISO, загруженный с CentOS и выберите его.
    5. Теперь трей носителей должен отображать CentOS ISO.
  • Сеть: Адаптер 1

Attached to: Bridged Adapter

Как только базовая машина будет определена, вам нужно будет настроить ее следующим образом:

  • Дата и время: при желании можно настроить часовой пояс.
  • Сеть и имя хоста: Ethernet — переключите с off на on (он должен немедленно захватить IP-адрес из вашей сети; если нет, установите вручную). Нажмите кнопку Готово.
  • Installation destination: It may require you to confirm the target, but you shouldn’t need to change anything. Press the Done button.
  • Вот и все. Начать установку.

Во время установки установите пароль root, а также создайте пользователя с именем astmin . Сделайте astmin администратором.

Установка займет несколько минут. Выпейте кофе!

После завершения установки программа установки попросит вас перезагрузиться. Перезагрузка должна занять всего 15 секунд или около того.

Поздравляем, ваша система готова. Войдите в систему как root .

Запустите только что созданную машину, и она проведет вас через базовую установку CentOS. Вот несколько элементов, которые вы хотите указать (для всего остального, оставляйте значения по умолчанию):

Linux (OpenStack) Host

Очевидно, вам понадобится учетная запись на хостинге Linux-провайдера, если вы собираетесь использовать этот метод (мы обнаружили, что предложения на основе OpenStack являются самыми дешевыми с предлагаемыми качеством/производительностью/простотой). Мы использовали DigitalOcean в течение многих лет, но также обнаружили, что Linode и VULTR являются отличными поставщиками услуг в этом пространстве. 6 После сортировки вы можете войти в систему и создать новую систему примерно следующим образом:

  • CentOS 7 (последняя версия, 64-бит)
  • 4 Гб 2vCPU (нам действительно не нужно 4 ГБ оперативной памяти, но хорошо иметь 2xCPU; вы, вероятно, можете уйти с 2 ГБ 1xCPU, если вы действительно сознательны в расходах)
  • Data center closest to you

Как только это будет запущено, войдите в систему как пользователь по умолчанию (на момент написания этой статьи это centos ).

ПРЕДУПРЕЖДЕНИЕ

Обратите внимание, что экземпляры DigitalOcean по умолчанию не имеют файрволла. Вместо этого они предоставляют его как часть своей среды. Таким образом, система, которую вы создадите, не будет иметь собственного файрволла и будет подвергаться внешним атакам сразу после завершения настройки (вы увидите это в консоли Asterisk). У разных провайдеров будут разные политики брандмауэра. Вы несете ответственность за то, чтобы ваш файрволл работал правильно. Мы обсудим вопросы безопасности и борьбы с мошенничеством более подробно позже в этой книге.

Зависимости

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

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

Мы установили Ansible просто потому, что это быстрый и простой способ получить все зависимости. Мы написали playbook для выполнения следующих операций:

  1. Установка dnf , vim , wget , и MySQL-python .
  2. Установка репозитория MySQL community-edition.
  3. Установка mysql-server .
  4. Настройка некоторых переменных при установке mysql-server .
  5. Запуск демона mysql-server.
  6. Изменение некоторых данных MySQL (создание пользователей, установка паролей).
  7. Создание базы данных/схемы MySQL для использования в Asterisk.
  8. Применение некоторых рекомендаций по безопасности (удаление анонимного пользователя, тестовая база данных и т.д.).
  9. Создание пользователя asterisk .
  10. Создание пользователя astmin .
  11. Установка зависимостей для ODBC.
  12. Установка некоторых диагностических инструментов.
  13. Настройка брандмауэра для разрешения трафика SIP и RTP.
  14. Редактирование некоторых файлов конфигурации ODBC.

Все это можно сделать вручную, но это просто много для набора и Ansible действительно хорош в оптимизации этого процесса.

Создайте план Ansible в файле

Примечание

Файл libmyodbc8a.so является версионным, поэтому, если у вас нет версии 8 UnixODBC:

  1. Запустите playbook в первый раз (чтобы установить библиотеку UnixODBC).
  2. Узнайте, какой файл был установлен в /usr/lib64/libmyodbc a.so.
  3. Отредактируйте playbook соответствующим образом (укажите правильное имя файла).
  4. Сохраните и повторно запустите playbook (который затем обновит файлы конфигурации, чтобы указать на правильную библиотеку).

Запустите playbook с помощью следующей команды:

Сядьте поудобнее и наблюдайте, как происходит волшебство.

Как только Ansible выполнит назначенные задачи, убедитесь что ODBC может подключиться к базе данных с использованием учетных данных пользователя asterisk .

Вы должны увидеть результат вроде этого:

Если вы не видите сообщение Connected! , значит вам необходимо устранить неполадки в вашей базе данных и установке ODBC. Первое, что вы должны сделать — это убедиться, что можете войти в базу данных из командной строки с помощью пользователя asterisk ( mysql -u asterisk -p ). Большинство проблем ODBC, как правило, заканчиваются проблемами с учетными данными (т.е. неправильным паролем или именем пользователя), поэтому вернитесь назад, чтобы убедиться, что все учетные данные работают так, как должны, и дважды проверьте, что вы не получили никаких сообщений об ошибках от Ansible.

На момент написания этой статьи версия jansson, установленная из репозитория EPEL, является более старой версией, чем требуется для Asterisk, поэтому придется установить ее вручную.

Теперь система готова, и мы готовы загрузить и установить Asterisk.

Установка Asterisk

Asterisk официально поставляется в виде архива (как исходный код), и его необходимо загрузить, извлечь и скомпилировать. 7 Это не трудно сделать когда у вас удовлетворены все зависимости. Между написанием этой книги и вашим чтением ее, возможно, были некоторые изменения в различных зависимостях, поэтому вам процесс установки, возможно, придется запускать немного иначе. Часто бывает трудно понять разницу между сообщением об ошибке, которое можно безопасно проигнорировать, и сообщением, указывающим на критическую проблему; однако, как правило, вы должны были выявить и устранить все ошибки в предыдущих процессах, прежде чем приступать к этому шагу. Если ваши зависимости отсортированы, установка Asterisk будет проходить гладко.

Загрузка и необходимые компоненты

Выйдите из системы и снова войдите в систему как пользователь astmin . 8 Введите следующие команды в командной строке чтобы загрузить исходный код Asterisk:

Примечание

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

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

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

Компиляция и установка

Вы увидите меню, в котором представлены различные параметры, которые можно выбрать для компилятора. Для перемещения используйте клавиши со стрелками и Tab, а для выбора/отмены выбора — клавишу Enter. По большей части, значения по умолчанию должны быть в порядке, но мы хотим сделать несколько настроек для звуковых файлов, чтобы убедиться, что у нас есть все звуки, которые мы хотим, в лучшем формате.

Примечание

На этом этапе вы также можете выбрать другие языки, которые захотите иметь в своей системе. Мы рекомендуем вам выбрать форматы WAV и G722 (а также G729, если вам необходимо его поддерживать).

Под Codec Translators ( — External — ):

  • Выбрать [*] codec_opus
  • Выбрать [*] codec_silk
  • Выбрать [*] codec_siren7
  • Выбрать [*] codec_siren14
  • Выбрать [*] codec_g729a

Под Core Sound Packages:

  • Убрать [*] CORE-SOUNDS-EN-GSM
  • Выбрать [*] CORE-SOUNDS-EN-WAV
  • Выбрать [*] CORE-SOUNDS-EN-G722

Под Extras Sound Packages:

  • Выбрать [*] EXTRA-SOUNDS-EN-WAV
  • Выбрать [*] EXTRA-SOUNDS-EN-G722

Save and Exit (Сохранить и выйти).

Еще три команды и Asterisk установлена:

Предупреждение

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

Как только загрузка будет завершена, войдите в систему как пользователь astmin и временно установите SELinux на Permissive (после каждой загрузки он будет возвращаться к Enforcing , поэтому до тех пор, пока мы не разобрались с частью установки SELinux, это должно происходить на каждой загрузке):

Это должно показать Current mode: permissive

Убедитесь, что Asterisk работает со следующей командой:

Вы можете увидеть, что демон /user/sbin/asterisk запущен (в настоящее время как пользователь root , но мы исправим это в ближайшее время). Asterisk теперь установлен и работает; однако, есть несколько параметров конфигурации, которые нам нужно сделать, прежде чем система будет полезна.

Начальная конфигурация

По умолчанию Asterisk сохраняет свои конфигурационные файлы в директории /etc/asterisk. Сам процесс Asterisk для запуска не нуждается в каких-либо файлах конфигурации; однако он пока не будет использоваться, поскольку ни одна из функций, которые он предоставляет, не была указана. Сейчас мы займемся некоторыми задачами начальной настройки.

Примечание

Файлы конфигурации Asterisk используют символ точки с запятой (;) для комментариев, главным образом потому, что хэш-символ (#) является допустимым символом на телефонной клавиатуре.

Файл modules.conf дает вам полный контроль над тем, какие модули Asterisk будут (и не будут) загружаться. Обычно нет необходимости явно определять каждый модуль в этом файле, но вы можете это сделать если захотите. Мы собираемся создать очень простой файл, как например:

Мы используем ODBC для загрузки многих конфигураций других модулей, и нам нужно, чтобы этот коннектор был доступен до того, как Asterisk попытается загрузить что-либо еще, поэтому мы предварительно загрузим его.

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

Вы заметите, что многие строки закомментированы. Они здесь для справки, потому что как выяснится при отладке системы вы можете часто настраивать этот файл. Мы выяснили, что лучше подготовить и закомментировать несколько строк, чем искать синтаксис каждый раз.

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

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

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

Также может понадобится добавить правило в директорию /etc/tmpfiles.d для разрешения Asterisk создавать сокет во время выполнения.

(Смотри man tmpfiles.d для большей информации)

Далее мы инициализируем базу данных таблицами, необходимыми Asterisk для настройки на основе ODBC.

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

Перейдите в соответствующий каталог и сделайте копию файла конфигурации.

Теперь мы собираемся открыть файл и предоставить ему учетные данные для нашей базы данных (которые определены в Ansible playbook с именем starfish.yml, под переменной current_mysql_asterisk_password , которую мы использовали в начале этой главы):

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

Сделайте её копию, раскомментируйте и отредактируйте с правильными учетными данными:

Теперь, с этой очень простой конфигурацией мы можем использовать Alembic для автоматической настройки базы данных идеальной для Asterisk (это было несколько болезненно делать в прошлых версиях Asterisk):

Подсказка

Alembic не используется Asterisk, поэтому конфигурация, которую вы только что выполнили, не позволяет Asterisk использовать базу данных. Все, что он делает, это запускает скрипт, который создает схему и таблицы, которые будет использовать Asterisk (вы также можете сделать это вручную, но поверьте нам, лучше чтобы Alembic справился с этим). Это часть процесса установки/обновления. Это особенно полезно, если у вас есть живые таблицы с реальными данными в них, и вы хотите обновить и сохранить соответствующую конфигурацию.

Войдите в базу данных и просмотрите все созданные таблицы:

Вы должны увидеть список, похожий на этот:

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

Выйдите из CLI базы данных.

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

Еще раз, вам понадобятся учетные данные, которые вы определили в своем Ansible playbook.

Настройки SELinux

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

Примечание

Общий подход состоит в том, чтобы просто отредактировать /etc/selinux/config и установить enforcing=disabled. Мы не рекомендуем этого делать, т.к. это полностью отключает SELinux и делает следующие шаги ненужными.

Вы собираетесь изменить строку SELINUX=enforcing на SELINUX=permissive . Это гарантирует, что файлы журналов будут показывать потенциальные ошибки SELinux, не блокируя соответствующие процессы.

Далее мы передадим Asterisk право собственности на файл /etc/odbc.ini.

Если все хорошо, то вы должны увидеть, что контекст для этого файла был установлен в asterisk_etc_t :

Есть еще несколько ошибок SELinux, которые мы видели здесь во время написания книги. Они могут быть исправлены к тому времени, когда вы читаете это, но не должно быть никакого вреда в их появлении:

Перезагрузите систему и проверьте журнал на наличие каких-либо ошибок SELinux, прежде чем мы установим его в enforcing .

Там может быть несколько сообщений, жалующихся на то, что Asterisk не нужно (например, скрытый файл с именем .odbc.ini), но до тех пор, пока он не полон ошибок о всевозможных важных компонентах Asterisk, всё должно быть хорошо. Последнее, что вам нужно изменить — это SELinux Boolean, позволяющее Asterisk создавать TTY.

Отредактируйте файл /etc/selinux/config еще раз, на этот раз установив SELINUX=enforcing . Сохраните и перезагрузите еще раз.

Убедитесь что Asterisk запущен (от пользователя asterisk ).

Хорошо, мы почти закончили с установкой.

Настройки файрволла

Мы сделаем пару настроек файрволла чтобы подготовить нашу систему для SIP (и безопасности SIP).

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

Ваша система Asterisk готова к запуску.

Давайте поместим некоторые исходные данные в конфигурационные файлы, чтобы в следующей главе мы могли начать работать с нашей новой системой Asterisk.

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

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

Наконец, давайте войдем в базу данных и определим некоторые примеры конфигураций для PJSIP:

Давайте перезагрузимся, а затем войдем в нашу новую систему Asterisk и посмотрим, что мы создали.

Проверка вашей новой системы Asterisk

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

Поэтому все, что нам нужно сделать сейчас — это проверить что мы можем войти в систему и конечные точки PJSIP, которые мы создали, находятся там.

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

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

Распространенные ошибки установки

Следующие условия (в произвольном порядке) вызывают большинство ошибок установки:

В некоторых случаях замены табуляции на пробел может быть достаточно, чтобы что-то сломать. UnixODBC, например, оказался чувствительным к отсутствию пробелов между определениями key = value . Лучший совет, который мы можем здесь дать — это использовать копирование/вставку, когда это возможно, в отличие от ручного ввода.

Проблемы с разрешениями

Они могут раздражать, но сообщения об ошибках, как правило, содержат необходимы подсказки. Файл /var/log/messages часто является золотой жилой для полезных подсказок.

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

Проблемы с учетными данными

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

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

Некоторые финальные заметки по конфигурации

После установки Asterisk создаст среду для себя на вашей Linux-машине. В следующих разделах приведены некоторые полезные сведения о том, как можно взаимодействовать с новой установкой Asterisk.

Примеры файлов конфигурации для дальнейшего использования

Несмотря на то, что мы предупреждали вас не запускать команду sudo make samples во время установки (потому что это заполнит ваш каталог /etc/asterisk кучей вещей, которые вам не нужны), файлы примеров тем не менее являются фантастической ссылкой. В директории с исходниками Астериска, вы найдете их в двух следующих каталогах:

Файлы в этих папках стоит прочитать (особенно для любого модуля, с которым вы работаете и хотите исследовать, как что-то сделать).

Прочтите их когда у вас появится возможность.

ПРЕДУПРЕЖДЕНИЕ

Запуск make samples в системе, в которой уже есть файлы конфигурации, приведет к перезаписи существующих файлов.

Командная оболочка Asterisk

Asterisk можно запустить как демон или как приложение. В общем, вы можете запустить его как приложение, когда создаете, тестируете и устраняете неполадки, и как демон при запуске его в продакшен.

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

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

Эта команда отображает список полезных возможных параметров для использования. Для получения полного списка всех параметров и их описаний выполните команду man asterisk .

Эта опция запускает Asterisk как приложение (на переднем плане). Это означает, что Asterisk привязан к сеансу пользователя. Другими словами, если вы закроете сеанс пользователя, выйдя из системы или потеряв соединение, Asterisk умрет. Этот параметр обычно используется при создании, тестировании и отладке, но его не следует использовать в рабочей среде. Если вы запустили Asterisk таким образом, введите core stop now в командной строке CLI, чтобы остановить Asterisk и выйти.

-v, -vv, -vvv, -vvvv , и т.д.

Эта опция может использоваться с другими опциями (например — cvvv ) для увеличения детализации вывода консоли. Она делает точно то же самое, что и команда CLI core set verbose n , где n -любое целое число между 0 и 5 (любое целое число больше 5 будет работать, но не будет предоставлять больше подробностей). Иногда полезно вообще не задавать уровень детализации. Например, если вы хотите видеть только ошибки запуска, уведомления и предупреждения, отключение детализации предотвратит отображение всех других сообщений запуска.

-d, -dd, -ddd, -dddd , и т.д.

Этот параметр можно использовать так же, как и -v , но вместо обычного вывода он будет указывать уровень вывода отладки (что в первую очередь полезно для разработчиков, которые устраняют проблемы с кодом). Также необходимо включить вывод отладочной информации в файл logger.conf (который мы рассмотрим более подробно в Главе 21).

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

Эта опция добавит метку времени к выводу CLI.

Эта команда позволяет передать строку в Asterisk, которая будет выполнена так, как если бы она была введена в CLI. Например, чтобы получить быстрый список всех используемых каналов без необходимости запуска консоли Asterisk, просто введите asterisk-rx «core show channels» из оболочки, и получите результат в котором нуждаетесь.

Этот параметр указывает Asterisk сделать дамп ядра, если оно аварийно завершает работу.

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

safe_asterisk

При установке Asterisk с помощью директивы make config создается скрипт safe_asterisk, который запускается в процессе init Linux при каждой загрузке.

Скрипт safe_asterisk предоставляет следующие преимущества:

  • Автоматическая перезагрузка Asterisk после аварии
  • Можно настроить отправку электронной почты администратору в случае сбоя
  • Определяет, где хранятся файлы сбоев (по умолчанию /tmp)
  • При сбое выполняет скрипт

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

Вывод

В этой главе мы представили кураторский пример того, как должна проходить установка Asterisk. Мы выбрали дистрибутив Linux и сервер MySQL для вас ради краткости, но отметили, что Asterisk на самом деле довольно гибок в таких вопросах. Теперь у нас есть прочный фундамент, на котором можно построить систему Asterisk. В следующих главах мы рассмотрим, как подключить устройства к нашей системе Asterisk для того, чтобы начать совершать вызовы внутри и работать над все более сложными концепциями в последующих главах (таких как видеоконференции и WebRTC).

Источник

Аннотация

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

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

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

Такие приложения, как голосовая почта, конференции, очереди вызовов и агенты, музыка на удержании и парковка вызовов — все это стандартные функции, встроенные прямо в программное обеспечение.

Кроме того, Asterisk может интегрироваться с другими бизнес-технологиями таким образом, о котором закрытые, проприетарные УАТС вряд ли могут мечтать. Asterisk может показаться довольно пугающей и сложной для нового пользователя, поэтому документация так важна для её роста.

Документация снижает барьер для входа и помогает людям созерцать возможности.

Asterisk. Полное руководство (5-е изд.)

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

Название: Asterisk. Полное руководство. Open Source телефония для предприятия (5-е издание)
Авторы: Джим Ван Меггелен, Рассел Брайант, Лейф Мэдсен
Издательство: O’Reilly Media
Год: 2020
ISBN: 978-1-492-03160-4
Формат: PDF
Качество: Изначально электронное (ebook), Интерактивное оглавление
Иллюстрации: Цветные
Язык: русский
Размер:10,19 Мб

Скачать Джим Ван Мегеллен и др. Asterisk. Полное руководство. Open Source телефония для предприятия (5-е изд.)

Рекомендую пойти следующим путем:
1. Ознакомиться со структурой Asterisk, языком диалплана, настройкой транков и внутренних абонентов, маршрутизацией звонков. Делать это нужно на голом Астериске.
2. Установить разные сборки и попробовать их в работе: FreePBX Distro, Askozia, Elastix.
3. Арендовать прямой номер по SIP, например на ipport.net, подключить его к Астериску как с мордой, так и без.
4. Купить IP-телефон, типа Cisco SPA-303 и также поэкспериментировать с его подключением.

А на предмет почитать: www.voxlink.ru/contacts/community.html

Понравилась статья? Поделить с друзьями:
  • Руководство пользователя ipad mini
  • Ммк информсервис руководство
  • Parol 500 mg tablet инструкция на русском турция
  • Пивные дрожжи с селеном инструкция по применению в таблетках взрослым
  • Тмз дэ 104 с3 руководство по эксплуатации