ServerAdmin.ru
28.9K subscribers
304 photos
35 videos
13 files
2.63K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Посмотрел очередное выступление с Asterconf 2021, которое мне показалось интересным и полезным для тех, кто работает с Asterisk:

Автоматизация разворачивания станций на Asterisk с использованием Docker контейнеров, https://www.youtube.com/watch?v=_IF7IzcDmRQ

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

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

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

00:00 Начало выступления
00:09 Проблемы STANDALONE ASTERISK
01:37 WHAT's DOCKER.IO
02:02 Преимущества DOCKER
02:38 Подготовка образа
02:59 Dockerfile
03:25 Базовый образ и сборка Asterisk
03:45 Сборка дополнительных модулей
03:53 Подготовка финального образа
04:14 Установка Sox, Jboss, Webif
04:21 Supervisor, sngrep, crontab, fail2ban
04:33 Supervisor: A Process Control System
05:02 Конфигурация Supervisor
05:07 Стартовый скрипт
05:23 BUILD & PUBLISH
05:47 Размещение образа в Dockerhub
05:53 Deploy: docker-compose
06:23 Установка и запуск
06:42 Время развертывания - 2 минуты
07:12 Кастомизация образа
07:48 Обновление
08:04 Решение проблем
08:23 Ответы на вопросы

#asterisk #видео
​​Мониторинг и траблшутинг VOIP

Ниже мой краткий конспект интересного выступления с AsterConf 2021 на тему мониторинга и разбора проблем с VOIP. Я так или иначе стараюсь просматривать выступления со всех популярных конференций. Если что-то кажется интересным и полезным, то конспектирую для вас и себя в том числе.

📌 Мониторинг:
- Базовые метрики серверов (процессор, память, диск, сеть и т.д.). Мониторить просто, толку мало, особенно когда серверов, связанных со связью, несколько.
- Использовать сервисные метрики от SIP3, Homer, VoIPMonitor. Это специализированные open source системы для мониторинга SIP трафика. Минус этого решения - +еще одна система мониторинга.
- Что собираем: RFC-6076. Основное: ASR, SCR, SER, SEER, ISAs.
- Следим за временными метриками (пример из SIP3): sip_call_duration, sip_call_trying-delay, sip_call_setup-time, sip_call_establish-time, sip_call_cancel-time, sip_call_disconnect-time.
- Следим за RTP метриками: Rating Factor, Mean Opinion Score (latency, jitter, packet loss).

📌 Разбор проблем:
- Качественный разбор проблем возможен только если есть хороший мониторинг.
- Чем подробнее данные о трафике, который собирается, тем проще дебажить проблемы. В довесок к хранению должен быть хороший поиск по сохранённым данным. Соответственно, нужны системы для сбора, хранения и анализа трафика. Автор предлагает SIP3, но как я понял, это уже платный функционал.

Видео - https://www.youtube.com/watch?v=1I7Mxc_7rAw
Презентация - https://voxlink.ru/wp-content/uploads/2022/04/03_agafonov.pdf

#asterisk #мониторинг #voip
​​Продолжаю утреннюю тему диагностики VOIP серверов и анализа SIP трафика. В самом начале выступления, про которое я рассказал, автор упомянул, что весь дальнейший рассказ будет актуален для тех, кому возможностей SNGREP недостаточно. Я не стал поднимать эту тему в утренней заметке, потому что данная утилита заслуживает отдельного упоминания.

С помощью SNGREP можно анализировать SIP трафик, в том числе и в режиме реального времени. Причём это консольное приложение настолько удобно и наглядно сделано, что им можно пользоваться, даже если вы в SIP полный профан. Разобраться не составит труда.

Я впервые его поставил и запустил, когда мне достался в обслуживание небольшой call центр. На собеседовании я сказал, что знаю asterisk, хотя вообще не знал его (предполагал, что могу поставить). Это тот случай, когда можно приврать, если уверен в своих способностях. Linux админил давно, но с астером просто не сталкивался. За месяц освоил на очень хорошем уровне. Мог уже сам внедрять сервера и писать диалпланы. В итоге никто и не понял, что я не разбираюсь в астериске, а через 2 года, когда увольнялся, со мной очень не хотели расставаться.

Процесс установки и много примеров использования sngrep я привёл в своей статье Анализ SIP трафика в Asterisk с помощью sngrep. Она написана давно, но с тех пор ничего принципиально не изменилось. Скорее всего не изменилось вообще ничего.

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

#asterisk #sip
​​Для мониторинга voip трафика по протоколу sip есть отличное бесплатное open source решение - VoIPmonitor. С его помощью можно контролировать и оценивать качество голосовой связи. Сразу уточню, что бесплатен только сам бэкенд, который собирает данные, кладёт в базу, анализирует. Веб интерфейс для удобной работы с данными платный. Бесплатно - только cli.

VoIPmonitor перехватывает вызовы в реальном времени и сохраняет статистику и дампы файлов в БД для последующего анализа. На него можно отзеркалить весь трафик порта. Если это технически невозможно, то можно передавать трафик через агента, установленного на voip сервере. VoIPmonitor использует снифер, обнаруживает SIP INVITE пакет и перехватывает RTP в обоих направлениях. При завершении вызова статистика считывается, с её помощью рассчитывается приблизительное значение MOS по методике описанной в спецификации G.107.

VoIPmonitor решает следующие задачи:
- мониторинг и дебаг SIP VoIP звонков;
- сохранение всех звонков в CDR базе;
- расшифровка и проигрывание звонков через веб интерфейс;
- настройка правил для выявления фрода;
- мониторинг колл-центров;
- биллинг.

Особенности программы:
- поддерживает протоколы:  SIP RTP RTCP SKINNY(SCCP) MGCP SS7 SCTP WebRTC TCP SSL TLS, транспорт по UDP и TCP;
- выходные данные: CDR, full SIP/RTP pcap, WAV OGG audio, T.38 PDF FAX
- поддерживает уведомления;
- ролевая модель доступа к данным;
- поддерживает расшифровку tls и srtp;

Из описания очевидно, что решение профессиональное и владельцам единственного сервера asterisk для офиса вряд ли пригодится. Хотя кто знает. Настроить его не сложно, как и установить. Продукт старый и известный. Руководств по настройке много, так что проблем быть не должно. Вот пример инструкции для Debian 11.

К сожалению, я не нашёл через поиск в гугле хоть какой-нибудь простой веб интерфейс для VoIPmonitor. Если кто-то знает таковой, прошу поделиться информацией. Можно установить официальную панель в режиме trial на 30 дней.

Сайт - https://www.voipmonitor.org/
Исходники - https://github.com/voipmonitor/sniffer
Demo - http://www.voipmonitor.org/demo/admin.php

#asterisk #voip
​​Напомню, для тех, кто не знает. У Zabbix есть готовый шаблон для 6-й версии по мониторингу Asterisk. Раньше я подобные вещи самостоятельно колхозил скриптами и рукотворными шаблонами, а теперь всё работает из коробки.

При этом официальный шаблон не использует никакие скрипты. Все метрики собираются HTTP запросами через Asterisk Manager API. Обработка настроена там же в шаблоне через предобработку на JavaScript. Поддерживается версия Asterisk 13 и выше.

Для настройки достаточно включить в manager.conf:
webenabled=yes
И сделать отдельного пользователя для Zabbix. Я бы ещё обязательно ограничил доступ к AMI на уровне Firewall, если кроме мониторинга его никто не использует. Да даже если использует, ограничил бы доступ по ip только для тех, кому он нужен. Затем в макросах хоста нужно будет указать url к AMI и учётные данные пользователя. Вот и вся настройка.

Шаблон имеет готовые правила автообнаружения пиров и очередей. Также он собирает информацию о статусе службы, аптайме, активных каналах, звонках, очередях, статусах пиров и т.д. Большой список метрик, которые можно посмотреть на сайте Zabbix в разделе с интеграциями:
https://www.zabbix.com/ru/integrations/asterisk

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

#zabbix #asterisk
​​Недавно рассказывал про бесплатное решение для мониторинга voip трафика - VoIPmonitor. Существенный минус этого проекта - платная веб панель для просмотра и управления. А без неё в реальной эксплуатации очень неудобно. Существует аналог - SIP3. Это тоже бесплатный Open Source проект. Функционально во многом похож на VoIPmonitor, но у него в бесплатной редакции (Community Edition) есть веб панель с базовым функционалом.

SIP3 состоит из нескольких компонентов:
Captain - агент для сбора трафика
Salto - Ядро системы
Twig - API engine
Hoof - веб интерфейс
На отдельной странице перечислен функционал бесплатной и платной версии. Условно можно считать, что бесплатная версия полнофункциональна, доступны все компоненты. А за деньги вы получаете расширенный функционал каждого из них.

В комплекте SIP3 присутствуют как инструменты мониторинга на базе Grafana, так и список звонков, их запись, инструменты поиска проблем.

Для установки SIP3 есть Ansible Playbook. Он поддерживает установку на Centos и Debian, либо через Docker на любой другой Linux дистрибутив.

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

Сайт - https://sip3.io
Демо - https://demo.sip3.io/
Исходники - https://github.com/sip3io
Русскоязычный чат - https://t.me/sip3io

#asterisk #voip
​​☎️ Совсем недавно узнал про простое и изящное решение для организации телефонии малого и среднего бизнеса - MikoPBX. Это бесплатный Open Source продукт на базе Asterisk. Я посмотрел на его интерфейс, возможности и сразу проявился симпатией. Захотелось попробовать. Если будет задача, обязательно поставлю именно его.

Основные возможности:
хорошая русификация
управление через web интерфейс
встроенный список сотрудников
поддержка конференций, переадресаций, очередей, уведомлений на email
запись разговоров, история вызовов
встроенный Firewall (Iptables) и Fail2Ban
встроенные бэкап и восстановление

Есть платный модуль для интеграции с 1С, который умеет звонить из 1С, открывать карточку клиента во время звонка, вести статистику, интегрироваться с Whatsapp и кое-что другое.

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

Сайт - https://www.mikopbx.ru/
Демо - http://demo.askozia.ru/
Исходники - https://github.com/mikopbx

#asterisk #voip
Делюсь с вами простым и эффективным трюком в Asterisk, который позволит наблюдать за тем или иным направлением звонков. Реализация может быть разная в зависимости от структуры диалплана используемого решения и модуля sip или pjsip.

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

exten => _810XX.,1,System(echo "To" ${EXTEN} "Ext" ${CALLERID(num)} \
| mail -s "8-10 ALARM" admin@firma.ru)

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

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

#asterisk
Небольшая информация из практической деятельности. Мне давно знакома проблема, когда не устанавливается SIP соединение для регистрации пира или транка с регистрацией. Возникает она в моём случае либо после проблем с интернетом или переключения каналов, либо при работе через VPN вместе с указанными выше проблемами. В общем, когда возникают какие-то неполадки со связью, есть небольшая вероятность, что внешне транки и пиры отвалятся.

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

Если у вас по неведомым причинам не регистрируются транки и пиры, проверьте активные соединения на шлюзе, связанные с SIP и удалите их. Отфильтруйте либо по адресу voip сервера, либо по адресу внешнего сервера, либо просто по портам, к примеру, 5060, если используется стандартный.

В роутерах Mikrotik это делается на вкладке:
IP ⇨ Firewall ⇨ Connections

Если у вас шлюз на Linux, то соединения можно посмотреть в /proc/net/nf_conntrack:
# cat /proc/net/nf_conntrack
Либо с помощью утилиты conntrack (ставится из реп, либо как conntrack, либо как conntrack-tools). Смотрим:
# conntrack -L -p udp --src 10.1.4.23 --dport 5060
и удаляем:
# conntrack -D -p udp --src 10.1.4.23 --dport 5060
После этого регистрации успешно состоятся.

В чём причина подобных проблем, я не знаю. Теорию не изучал и не исследовал. Просто знаю, что вот это помогает. Возможно есть другое решение. Лично сталкивался с подобными проблемами только с VOIP.

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

#gateway #voip #asterisk
​​На днях разбирался с небольшой проблемой на voip сервере asterisk. Есть сервер, который настраивали очень давно. Его никто не трогает, он просто работает. Недавно купили новую серию телефонов. На них почему-то не проходили входящие звонки.

Ранее я уже рассказывал про утилиту sngrep, которая позволяет в удобном виде посмотреть всю информацию по sip трафику. Там в удобном виде собрано всё то, что вы можете увидеть, включив debug на asterisk, только в sngrep всё будет очень наглядно.

Я уже не особо разбираюсь в voip, так как давно ничего не настраивал. Решил не заниматься этим направлением. Но по старой памяти немного приглядываю за старыми серверами. Это сервер был с наследством в виде нескольких IP адресов. На новых аппаратах запрос шёл к одному из ip, который был указан в настройках, а ответ приходил от другого адреса. И телефон его не принимал.

Я не знаю, почему так происходило, и почему проблема появилась только сейчас и только на конкретных аппаратах. Но именно sngrep позволил буквально за 5 минут понять, в чем именно проблема. Просто поменяли ip адрес в телефоне на тот, с которого приходил ответ и всё заработало.

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

Сейчас, наверное, свой сервер asterisk, как и почтовый, это скорее экзотика. Все постепенно переползают на готовые сервисы. В чём-то это оправданно, так как с тем же voip разбираться довольно трудно, если нет специализации по этой теме.

ps. На картинке не дебаг проблемного звонка. На нём просто наглядно видно, что общение идёт с двумя ip адресами сервера. Во время звонка телефон не отвечал на invite от сервера.

#asterisk #voip