Как узнать версию asterisk
Виртуальная АТС. Часть 3: Переводим Asterisk на PjSIP без лишних телодвижений
В первой и второй частях цикла статей мы разобрались с установкой IP-АТС (IP-PBX) на работающий под управлением Ubuntu VPS от RuVDS и настройкой основных функций с использованием канального драйвера chan_sip. Этот подход считается устаревшим, и в будущих версиях Asterisk поддержка chan_sip будет прекращена. Вместо него лучше использовать открытую мультимедийную библиотеку PjSIP. Несмотря на кардинальные различия в файлах конфигурации, переход не так сложен, как может показаться на первый взгляд.
Что такое PjSIP?
Важно понимать, что PjSIP — не какой-то новый протокол, а целая библиотека для работы со стеком обеспечивающих голосовую связь протоколов: SIP, RTP, SDP, STUN и т.д. Она представляет собой целую кучу модулей, что нашло отражение в конфигурационном файле pjsip.conf (он заменяет традиционный sip.conf). Файл разделен на секции, а работает с ним преимущественно модуль res_pjsip, при этом каждая секция определяет конфигурацию некоторого объекта. Имена секций традиционно заключаются в квадратные скобки, а в секции обязательно присутствует определяющая ее тип конструкция «type =».
Типы секций могут быть следующими:
ENDPOINT — аналог пира в sip.conf, который определяет опции протокола SIP и взаимодействие с AOR, AUTH и TRANSPORT. Обязательно связана хотя бы с одной секцией AOR;
AOR — здесь описано, как связаться с ENDPOINT;
TRANSPORT — в этой секции описываются настройки протоколов транспортного уровня, веб-сокеты и методы шифрования (наподобие general в sip.conf). Может быть одной для разных ENDPOINT или уникальной для некоторой точки;
REGISTRATION — отвечает за исходящие регистрации, например, транки к провайдерам;
AUTH — содержит опции и полномочия для входящих и исходящих регистраций. С ней ассоциируются ENDPOINT и REGISTRATIONS;
IDENTIFY — здесь можно задать IP источника для ENDPOINT;
ACL — используется res_pjsip для контроля входящих соединений, не привязан к ENDPOINT;
DOMAIN_ALIAS — псевдонимы домена;
CONTACT — нужна, чтобы явно не указывать SIP URI в Dialplan;
System — системные опции;
Global — глобальные опции;
Имена секций в большинстве случаев могут быть произвольными, но, к примеру, ENDPOINT и AOR должны именоваться идентично с заголовком SIP URI.
Нашу справку трудно назвать исчерпывающей, поскольку за кадром осталось много интересных фишек, вроде PjSIP Configuration Wizard: пока речь идет о миграции на новую библиотеку малой кровью. С нюансами и тонкостями можно разобраться позднее.
Конвертируем sip.conf в pjsip.conf
Из-за модульности структура конфигурационного файла pjsip.conf размазана тонким слоем по множеству секций — она гораздо сложнее, чем у старого-доброго sip.conf. Разработчики Asterisk подумали о простых админах и создали сценарий для конвертации. Написан он на Python, и если вы собираете ПО из исходников, уже есть в дистрибутиве: в каталоге contrib/scripts/sip_to_pjsip/. Мы ставили Asterisk из входящего в репозиторий Ubuntu бинарного пакета, поэтому скрипты пришлось скачать с GitHub.
Хотя формат конфигурационных файлов для разных версий IP-PBX особо не менялся, лучше выбрать скрипты из установленной у вас версии Asterisk вместо последней по умолчанию — в нашем случае 16.2.
Версию Asterisk можно посмотреть в консоли IP-PBX с помощью команды core show version
Вам понадобятся все файлы на Python из каталога contrib/scripts/sip_to_pjsip/ в репозитории на GitHub. Их нужно сложить в локальный каталог, перейти в каталог с конфигами Asterisk (обычно /etc/asterisk) и запустить скрипт sip_to_pjsip.py с привилегиями суперпользователя. Основная его задача, прочитать входной файл sip.conf и сделать новый pjsip.conf (подробности доступны в wiki Asterisk).
Сценарий сделает pjsip.conf, а дальше вас ждет его ручная полировка. Если вы устанавливали Asterisk по нашим статьям, придется еще настроить загрузку модулей в /etc/asterisk/modules.conf и изменить в Dialplan (/etc/asterisk/extensions.conf) вызов приложения Dial.
Сделанный конвертером файл /etc/asterisk/pjsip.conf на практике оказался нерабочим:
Синтаксис его понятен, подробности можно найти в wiki Asterisk. Чтобы довести конфигурационный файл до ума, потребуется ручная правка.
Исправленный /etc/asterisk/pjsip.conf (как и в sip.conf, в нем можно использовать шаблоны):
С шаблонами писанины стало меньше, но есть и более интересный способ упростить админу жизнь — Configuration Wizard. Пожалуй, это одна из самых удобных фишек PjSIP, с которой мы разберемся в следующей статье.
Переписываем Dialplan
Самая простая часть: достаточно заменить SIP на PJSIP в вызове приложения Dial. Пока мы немного изменили простейший тестовый Dialplan из предыдущей статьи, более сложными вещами займемся позднее.
Переход с chan_sip на PjSIP оказался делом не особенно сложным, но требующим изрядной доли ручной работы. Автоматически конвертировать конфигурацию у нас не получилось: сценарий выдал неработоспособный вариант, который пришлось переписать вручную. В следующей статье мы разберем работу с Configuration Wizard и наконец расширим dialplan для приема входящих вызовов, организации конференций и решения других задач маршрутизации звонков.
Установка и обзор модуля System Admin
В данной статье установим и рассмотрим модуль System Admin Пара слов о модуле: Данный модуль позволяет при помощи web-интерфейса вносить изменения в настройки сети, DNS, настройки уведомлений, часовой пояс, а так же firewall и просматривать процент использования жесткого диска. Кроме того он может включать или перезагружать систему и регистрировать лицензию на коммерческие модули (многие коммерческие […]
В данной статье установим и рассмотрим модуль System Admin
Пара слов о модуле:
Данный модуль позволяет при помощи web-интерфейса вносить изменения в настройки сети, DNS, настройки уведомлений, часовой пояс, а так же firewall и просматривать процент использования жесткого диска. Кроме того он может включать или перезагружать систему и регистрировать лицензию на коммерческие модули (многие коммерческие модули требуют его наличия для своей работы).
Перед настройкой:
Настройка будет производиться на Asterisk 13, версия centos 6.9 (final), а в качестве web интерфейса используется FreePBX 13
Если вы не знаете, какая версия CentOS или Asterisk используется у вас, то это можно узнать ниже
Версия CentOS:
Подключитесь к IP ATC с помощью PuTTY
Зайдите как root пользователь
И выполните следующую команду cat /etc/redhat-release
Версия Asterisk:
Для того чтоб узнать версию asterisk, достаточно ввести следующую команду asterisk –rvvv
Результат выполнения команды 2
Установка:
Если вы используете официальную сборку FreePBX Distro, то он установлен и включен по умолчанию. Если же вы устанавливали дистрибутив, основанный на FreePBX Distro или сами собирали asterisk + FreePBX, то для его установки нужно сделать следующее:
Перейти -> Admin—Module Admin
После чего вы попадаете на следующую страничку:
Если вы сейчас попытаетесь найти этот модуль, то вы его не найдете т.к в данный момент у вас выставлен в качестве репозитория только «Standart» в который данный модуль не входит. И первое, что нам следует сделать – выбирать нужные репозитории. Всего доступно четыре категории: Standard, Extended, Commercial и Unsupported, где:
Необходимый нам модуль находится в коммерческом репозитории. Потому дополнительно выделяем его и нажимаем на «Check Online»
Как видим, теперь вместе со стандартными модулями отображаются еще и коммерческие.
Обновляем список модулей
Опускаемся немного ниже, почти в самом конце раздела «Admin» должен отобразиться нужный нам модуль.
В разделе Action выбираем «Download and install», после чего поднимаемся в начало страницы и выбираем «Process»
Дожидаемся пока система не отсигнализирует нам следующим сообщением:
Все, если вы все сделали правильно, то модуль установлен. В дальнейшем вы можете похожим образом его обновить.
Активация: Переходим на страничку модуля и видим, что нужно провести активацию. Это не займет больше 5 минут:
Нажимаем кнопку Activation
Нажимаем кнопку Activate
Активация 3
Заполняем данные по аналогии со скриншотами
Все, осталось только нажать еще раз на Activate и затем применить настройки
Если вы все сделали правильно, то предложение об активации исчезнет и вместо него будет список из функций.
Обзор:
Страница System Admin:
Это главная страница, тут можно узнать версию модуля
System Admin
Раздел Activation:
Эта страница отображает текущий статус лицензии, и позволяют администратору и обновить лицензию. Здесь можно посмотреть ваш идентификатор и список зарегистрированных коммерческих модулей.
Screenshot_19 Activation
Раздел DNS:
Эта страница позволяет вам настроить DNS сервера
Раздел Intrusion Detection:
Если служба включена, то попытки любое нарушение безопасности системы записываются в журнал. Если количество попыток превышает максимально допустимое количество повторных попыток, удаленный IP-адрес блокируется.
Intrusion Detection
Раздел Network Settings:
Эта страница позволяет вам настроить параметры сетевого интерфейса.
Network Settings
Раздел Hostname:
В этом разделе можно настроить имя хоста для вашей АТС.
Этот раздел позволяет установить адреса назначения для различных писем, которые будет отправлять система.
Раздел Power Options:
В этом разделе можно выключить или перезапустить сервер.
Раздел Port Management:
Этот раздел позволяет управлять номерами портов для повышения уровня безопасности.
Раздел PnP Configuration:
Здесь можно настроить службу Zero-Touch PnP для использования с телефонами Sangoma.
Служба PnP позволяет автоматически настраивать любой телефон Sangoma, который находится в той же сети, что и этот сервер, без необходимости настройки каких-либо других служб (например, DHCP).
Раздел HTTPS Setup:
В этом разделе можно настроить SSL-сертификаты.
Раздел Time Zone:
В этом разделе можно выставить часовой пояс системы
Раздел Storage:
В этом разделе можно посмотреть процент использование жесткого диска и отправляет письмо на адрес уведомления, когда место на диске заполнено на 75 % и заполнено на 90 %
Заключение:
Как можете видеть выше данный модуль, обладает широким инструментарием и может стать прекрасным помощником для администратора. Ниже вы можете найти ссылки на статьи по интересным и полезным функциям/утилитам для администратора.
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Меняем версию Asterisk
«Бесшовная» смена версии Asterisk
Дистрибутив FreePBX Distro имеет встроенный скрипт, который позволяет изменить текущую (используемую) версию Asterisk. Важно, что сделать это можно буквально за минуту, и без проблем вернуться на ранее используемую версию.
Базовый курс по Asterisk
Мы собрали концентрат всех must have знаний в одном месте, которые позволят тебе сделать шаг вперед на пути к экспертному владению Asterisk
При смене версии используется только одна команда, после ввода которой, мы остается следовать подсказкам меню. Команда следующая:
На следующем этапе, скрипт спросит на какую версию вы хотите переключиться:
Далее начнется изменение конфигурации в соответствие с выбранной версией. По окончанию работы вы можете проверить текущую версию с помощью команды:
Если версия осталась прежней, дайте в консоль команду:
По окончанию перезагружаем конфигурацию и Asterisk:
Продвинутый курс по Asterisk
Концентрат редких знаний, для внедрения Asterisk в крупных предприятиях. Все это мы собрали в одном курсе для тебя.
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Базовые команды Asterisk CLI
Базовые команды администрирования
В предыдущей статье, мы рассказывали, как установить Asterisk 14.3.0 из источников, в сегодняшней статье, хотелось бы поговорить про базовые возможности управления Asterisk из командной строки после установки.
Продвинутый курс по Asterisk
Концентрат редких знаний, для внедрения Asterisk в крупных предприятиях. Все это мы собрали в одном курсе для тебя.
По умолчанию, после запуска Asterisk будет работать как процесс в фоновом режиме и для того, чтобы подключиться и начать управлять работающим процессом, необходимо включить удаленную консоль следующей командой:
Опция -R также поможет подключить удаленную консоль, однако она будет автоматически пробовать переподключиться к Asterisk, если по каким-то причинам, соединение было разорвано.
Чтобы отключиться от удаленной консоли Asterisk, нужно нажать сочетание клавиш Ctrl+C
Существует несколько способов остановки работающего процесса Asterisk:
Команды для перезапуска процесса Asterisk работают аналогично командам, останавливающим процесс, которые описаны выше, но вместо того чтобы останавливать Asterisk, они его перезапускают в соответствии с синтаксисом команды:
Существует также команда, которая отменяет введенную ранее команду остановки или перезапуска, если пользователь вдруг передумал:
Также можно подключиться к Asterisk как root, командой:
Мы категорически не рекомендуем запускать Asterisk с правами root’а, поскольку это опасно и может негативно повлиять на систему, на которой работает Asterisk.
Управление степенью логирования событий в Asterisk
Вы можете управлять тем, насколько подробно будут логироваться события Asterisk, для этого используется специальная опция -v. Каждая –v повышает уровень VERBOSE сообщений.
Например, следующая команда повышает уровень логирования на 2:
Возможен и такой вариант ввода, разницы между ними нет
Другие опции
Можно также запускать Asterisk от имени другого пользователя:
Для работы от имени другого пользователя, советуем убедиться, что у него есть разрешения на доступ к следующим директориям. Используйте команды:
Существует большое множество других опций и режимов, доступных при запуске Asterisk, для того чтобы посмотреть и ознакомиться с ними, используйте команду:
Чтобы управлять сервисом Asterisk из командной строки Вашей операционной системы используйте следующие команды:
Для запуска сервиса:
Для остановки сервиса:
Для перезапуска сервиса:
Для проверки статуса:
Базовый курс по Asterisk
Мы собрали концентрат всех must have знаний в одном месте, которые позволят тебе сделать шаг вперед на пути к экспертному владению Asterisk
Полезно?
Почему?
😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.
😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.
Версии Asterisk
Одновременно поддерживается разные версии Asterisk. Как только новая версия становится доступной, она поддерживается в течение некоторого периода времени. Основной период поддержки включает все изменения которые были найдены. В дополнительный период включаются только обновления с исправлениями проблем безопасности. Окончание поддержки подразумевает завершение жизненного цикла ПО, где оно больше не будет получать никаких изменений.
Тип выпуска определяет, как долго он будет поддерживаться. Выпуск Long Term Support (LTS) будет полностью поддерживаться в течение 4 лет, с одним дополнительным годом обслуживания для исправлений безопасности. Стандартные выпуски поддерживаются в течение более короткого периода времени, который будет составлять один год полной поддержки и дополнительный год обслуживания для исправлений безопасности.
В следующей таблице отражен жизненный цикл разных версий Atsrisk, включая те, которые достигли конца срока службы.
Номер версии | Тип | Дата релиза | Только обновления безопасности | Окончание поддержки |
1.2.X | 21-11-2005 | 07-08-2007 | 21-11-2010 | |
1.4.X | LTS | 23-12-2006 | 21-04-2011 | 21-04-2012 |
1.6.0.X | Standard | 01-10-2008 | 01-05-2010 | 01-10-2010 |
1.6.1.X | Standard | 27-04-2009 | 01-05-2010 | 27-04-2011 |
1.6.2.X | Standard | 18-12-2009 | 21-04-2011 | 21-04-2012 |
1.8.X | LTS | 21-10-2010 | 21-10-2014 | 21-10-2015 |
10.X | Standard | 15-12-2011 | 15-12-2012 | 15-12-2013 |
11.x | LTS | 25-10-2012 | 25-10-2016 | 25-10-2017 |
12.x | Standard | 20-12-2013 | 20-12-2014 | 20-12-2015 |
13.x | LTS | 24-10-2014 | 24-10-2020 | 24-10-2021 |
14.x | Standard | 26-09-2016 | 26-09-2017 | 26-09-2018 |
15.x | Standard | 03-10-2017 | 03-10-2018 | 03-10-2019 |
16.x | LTS | 09-10-2018 | 09-10-2022 | 09-10-2023 |
17.x | Standard | 28-10-2019 | 28-10-2020 | 28-10-2021 |
18.x | LTS | 20-10-2020 | 20-10-2024 | 20-10-2025 |
Новые релизы Asterisk выпускаются примерно раз в год, чередуя стандартные и LTS релизы. Обновления с исправлением ошибок выходят примерно каждые 4 недели. Для выпусков стандартный период обслуживания которых закончился, получают обновления безопасности, выходящие по необходимости.
Если вы пока не решили, какую из версий лучше использовать, советую руководствоваться следующими критериями:
Хотя версия LTS и считается более стабильной и дольше поддерживается, можно спокойно ставить Standart и не бояться что она менее надежна. Рекомендую перед обновлением Asterisk до новой версии читать подробности по данному релизу. Бывает иногда небольшая смена синтаксиса написания DIAL плана, что в дальнейшем влечет за собой некоторые сложности в перенастройке рабочих планов звонков.