Search
Write a publication
Pull to refresh
27
0.1

Mission Critical

Send message

SMS через SIP messaging в Asterisk

Reading time7 min
Views14K

По немногочисленным просьбам трудящихся я расскажу как заворачивать GSM SMS из sip_dongle модуля для Asterisk в sip messaging с последующей маршрутизацией.

Немного ТЗ

Есть центральный узел Asterisk, на котором живет логика и пользователи (extensions). К нему подключаются через PJSIP другие оконечные Asterisk`и на которых висит по несколько GSM модемов.

- Одна из задач: принимать и отправлять GSM SMS сообщения правильно маршрутизируя их по номеру получателя.

- Вторая подзадача: дать нашим пользователям (extensions) возможность слать друг другу текстовые сообщения.

Итак. Что тут сложного и в чем подвох?

Когда у вас 1 модем и 1 extension все очень просто. Когда у вас 2 модема и 1 extension задача все еще простая.

Когда у вас “многое ко многим” — вот тут и кроется основна сложность. Т.е. нам нужно не просто понимать на какой конкретно модем какому конкретно Asterisk`у передать исходящее SMS, но и куда направить входящее из GSM сети сообщение. А так же что делать, если мы внутри себя не можем сообщения доставить.

Обозначения:

- gsmru 10.8.0.11 — оконечный сервер Asterisk на котором живут модемы
- 10.8.0.10 — центральный сервер Asterisk на котором крутится вся логика
- 101;102;103 - пользователи (extensions)
- sip - протокол ходит по 80му порту (так исторически сложилось)

Начнем разворачивать цепочку от оконечного Asterisk (gsmru) с модемами в сторону центрального сервера. Это канал приема сообщений и проще его объяснять именно так.

Работать с SMS можно по разному, но в моем случае я использую sqlite, который у меня /var/lib/asterisk/smsdb.sqlite3. Это сделано так чтобы можно было легко оперировать сообщениями, создавать очереди доставки в обе стороны и не переживать за всякие проблемы вида «я записал что-то в файл и мне нужно успеть это вычитать пока туда не записалось следующее, а заодно проверить что там нет «патча Бармина».

Читать далее

IAX2 one love (межASteriskные транки)

Level of difficultyMedium
Reading time4 min
Views3.4K

Это короткое продолжение серии про Asterisk.
Пердыдущие части Часть 1, Часть 2, Часть 3

Я расскажу как и почему я ограниченно применяю IAX2 в контексте предыдущих записей.

Читать далее

Asterisk. Доставка SIP Message после возврата абонента из off-line'а

Reading time9 min
Views3.6K

В предыдущих статьях я описал как настроил и собрал GSM <> SIP систему на базе Asterisk. В этой статье расскажу как быть с входящими SMS, если получатель не в сети.

Читать далее

Asterisk и VoLTE

Reading time9 min
Views8.9K

В этой части я расскажу как скрестить Asterisk с новым поколением модемов диапазона LTE. В чем там особенность и что нужно учитывать.

Предыдущие статьи по теме:

Asterisk. Доставка SIP Message после возврата абонента из off-line'а

SMS через SIP messaging в Asterisk

Читать далее

Простой SMS-шлюз на Raspberry Pi

Reading time9 min
Views23K
Иногда случается так, что надо отправлять откуда-нибудь SMS-сообщения. При этом неважно — откуда именно. Речь может идти о домашней системе, объединяющей кучу устройств (эти системы называют «homelab»), из которой надо отправлять уведомления. Это может быть система сигнализации, информирующая своего владельца о разных событиях, требующих его внимания. Возможно это — программный комплекс, которому нужно подтверждать правильность телефонных номеров, вводимых его пользователями. Во всех этих случаях, да и во многих других, SMS-сообщения были и остаются наилучшим способом передачи неких уведомлений по инициативе отправителя.

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

Очевидное решение всех этих проблем заключается в поддержке собственного SMS-шлюза.

Результат этого проекта: устройство, поддерживающее полнофункциональный REST API, способное отправлять и получать сообщения

Как, с минимальными затратами, самостоятельно сделать такой шлюз?
Читать дальше →

Информационное картографирование в экосистеме TON

Level of difficultyMedium
Reading time19 min
Views3.2K

В статье показано, как с помощью информационных карт можно анализировать большие объёмы данных о транзакциях в блокчейне TON (The Open Network). Карты позволяют достичь ситуационной осведомленности о процессах, протекающих в достаточно запутанном виртуальном пространстве, порождаемом экосистемой TON. На примере карты транзакций, совершаемых за один день, рассмотрим основные компоненты такой экосистемы, а также научимся выявлять структурные особенности инструментов блокчейна, которые используют киберпреступники для своей противоправной деятельности. В основе статьи лежат исследования, опубликованные в научной работе «Информационное картографирование Blockchain-транзакций киберпреступников в экосистеме TON»

Читать далее

Делаем карманного аналитика данных с помощью OpenAI Assistants API и Code Interpreter в Telegram

Level of difficultyMedium
Reading time9 min
Views6.1K

Языковая модель генерирует текст, но она не может проводить сколько‑нибудь сложные математические вычисления или анализ данных, она просто не предназначена для этого. Однако, модель может генерировать код и очень хорошо. Что, если давать модели задание, для выполнения которого она сгенерирует программный код, он исполнится в изолированной среде разработки, и полученный результат модель уже использует для генерации ответа? Именно эту задачу и выполняет Code Interpreter.

Читать далее

Windows 11 24H2 IoT Enterprise LTSC – что за зверь, и чем он хорош?

Level of difficultyEasy
Reading time4 min
Views150K

Месяц назад я писал статью об издании Enterprise G, созданную Microsoft для китайского правительства, в котором много лишнего отключено. Статья вызвала большой интерес, много кому нужна ОС с максимальным функционалом — при вашем желании его использовать, но с возможностью отключить всё (или почти всё) ненужное. У версии Enterprise G основной недостаток в том, что политика продукта, прописанная в цифровой лицензии, запрещает установку любых языковых пакетов, отличных от китайского и английского. То бишь, русского интерфейса легким путем не достичь. Возникает вопрос выбора другого издания.

Сразу на ум приходит версия Enterprise LTSC, как полнофункциональная с длительным циклом обслуживания и поддержки, благо для Windows 11 24H2 она утекла еще в апреле. Но, оказывается, есть и более достойный выбор, о котором мы сейчас с вами и поговорим. Речь идёт об издании IoT Enterprise LTSC. Что это такое? Чем оно лучше, чем Enterprise LTSC? А чем хуже? Как её русифицировать и как активировать? Об это сегодняшний разговор.

Чем же так отличается IoT Enterprise LTSC?

Готовим k8s кластер на OrangePi 3 LTS

Level of difficultyMedium
Reading time11 min
Views8.8K

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

Самый простой способ - это использовать виртуальные машины или различные контейнерные решения (как, например, Minikube), однако мне не нравится такой подход из-за ограничений виртуализации и ресурсов. Я стремлюсь создать кластер, который можно использовать в реальном бизнесе и который обеспечит надежность в случае сбоев.

Идеальным и бюджетным решением являются микрокомпьютеры на базе архитектуры ARM, например Orange Pi 3 LTS. Я слышал о российских аналогах, таких как Repka Pi, но пока не имел опыта работы с ними, а Raspberry Pi, хоть и обладает множеством модулей, но является дороговатым вариантом. Orange Pi 3 LTS компактный, достаточно мощный и поставляется с образом OC Debian 11. Это устройство оснащено 4 ядрами, 2 ГБ оперативной памяти и процессором с тактовой частотой 1,8 ГГц. Стоимость этого устройства, на момент написания статьи, весьма демократичная - около 4000 ₽.

Читать далее

Как отправлять SMS через МТС Exolve и Go

Level of difficultyEasy
Reading time5 min
Views5.3K

В одной из московских компаний решили расширить функции системы на Golang, и заказчик попросил внедрить в неё SMS и прочие каналы для уведомлений клиентов. В этой статье пошагово разберём, как отправлять SMS с использованием сервиса МТС Exolve и популярного языка программирования Golang.

Читать далее

Сквозная аналитика в HR

Level of difficultyEasy
Reading time7 min
Views4.6K

Сквозная аналитика в HR в виде приложения в Power BI.

После первой встречи с HR отделом в лице руководителя, специалиста, занимавшегося сбором данных и оформлением отчетов в таблицах Excel, выяснилось, что источники с необходимыми данными находятся в регулярных выгрузках из 1С Предприятие, Google Sheets, Битрикс24, PostgreSQL, iSpring. По визуальному оформлению как таковых «жестких» требований не было, была лишь просьба, учесть наглядность представляемых данных и «желательно как в таблицах Excel».

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

Читать далее

ИИ LLama3 без ограничений: локальный запуск, GROQ и интеграция в Телеграм бота с помощью Python

Level of difficultyMedium
Reading time25 min
Views35K

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

Сегодня мы:

Научимся устанавливать LLama3 на локальную машину.

Научимся бесплатно запускать LLama3 через платформу GROQ.

Разберемся с преимуществами и недостатками первого и второго способа развертывания LLama3.

Напишем полноценного Telegram бота с использованием aiogram3, который сможет работать как с локальной версией LLAMA3, так и через сервис GROQ (технически он сможет работать с любой подключенной нейросетью).

Запустим Telegram бота на VPS сервере (опционально).

Читать далее

IMAPSync. Перенос почты между серверами

Reading time13 min
Views83K
В этой статье я хочу поделиться опытом переноса почты между разными серверами с помощью замечательной утилиты IMAPSync.

— Получение IMAPSync.exe из исходников github (компиляция под Windows).
— Перенос почты по IMAP между серверами.

В моем случае встала задача перенести почту со своего сервера IDECO на сервера pdd.yandex.ru. Средствами Яндекса сделать это мне не удалось, инструмент по импорту для домена и инструмент по сбору почты в свойствах ящика выдавал всегда одну ошибку — неверный пароль. Техническая поддержка отвечала раз в сутки, а проблема не решалась. Были рекомендации сменить пароль, подождать, отключить двухфакторную авторизацию и т.п. В общем стандартные отписки, к сожалению. Использовать biz.mail.ru, который прекрасно все импортировал на тестовых ящиках, не хотелось. Так как имею больше опыта с Яндексом, и больше нравится работа почты от Яндекса, было принято решение найти другой способ переноса почты. Им и стал IMAPSync.
Читать дальше →

Windows 11 Enterprise G – Что за издание для правительства Китая и зачем оно вам?

Level of difficultyHard
Reading time11 min
Views80K

Сегодня я бы хотел рассказать вам немного информации об особенном, в чем-то уникальном издании, существующем в Windows 10 и Windows 11, выпускаемом Microsoft для китайского госсектора. Что такое Windows Enterprise G, она же Windows Enterprise Government China, чем она отличается от других изданий, и самое главное, как (и зачем) вам ее получить.

Читать далее

Построение отказоустойчивого кластера PostgreSQL для 1С. HAProxy, давай до свидания. Рецепты от Капитана

Level of difficultyMedium
Reading time11 min
Views11K
Одна из завершающих публикаций цикла «В облако на работу:… Рецепты от Капитана» в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием и прочая прочая…
Это основное блюдо, на закуску разберемся с отказоустойчивостью.
В этой публикации для PostgreSQL, заодно попробуем сделать это по новому.
Читать дальше →

Что такое PID 0

Reading time17 min
Views37K

Как говорится, «не будите во мне ботана». Иногда кто-нибудь беспечно задаст мне, казалось бы, невинный вопрос — и я убиваю следующие несколько часов (в описываемом случае — дней), чтобы полноценно сформулировать ответ. Обычно всё это заканчивается с моей стороны очередной филиппикой на mastodon или в каком-нибудь приватном чате. Но на сей раз не буду этим ограничиваться и напишу целый пост.

Вот с какого невинного вопроса всё началось:

А почему UID начинаются с 0, но PID начинаются с 1?

Если совсем коротко: в Unix PID (идентификаторы процессов) начинаются именно с 0! PID 0 просто не отображаются в пользовательском пространстве через традиционные API.  PID 0 запускает ядро, а затем практически уходит на покой, только немного участвует в работе планировщика процессов и в управлении питанием. Кроме того, на просторах Интернета доминирует заблуждение о PID 0, всё из-за одного ошибочного утверждения в Википедии, которому уже 16 лет.

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

Но, конечно же, любой желающий может просто загуглить, что такое PID 0, верно? Зачем мне вообще всё это писать?

Читать далее

Расширяем меню и функционал Gitlab

Level of difficultyMedium
Reading time17 min
Views4.1K

Во время быстрого развития ИТ среды, многие её активные участники пользуются готовыми решениями обеспечивающими их определённым функционалом, который хотелось бы расширить. Но расширение продукта зачастую является либо платным, либо чрезвычайно затратным действием, требующим постоянного контроля доступной кодовой базы, адаптацией и корректировкой своей части для совместимости. Приходится создавать продукты размещаемые "рядом" и различными способами производить интеграцию. Попробуем изменить это с помощью минимальных затрат и расширить функционал Gitlab получив практически "бесшовную" интеграцию со своими продуктами.

Итак приступим ...

Flipper Zero — мнение пентестера после двух лет «полевой» эксплуатации

Reading time8 min
Views86K

«Дельфин-тамагочи» от Flipper Devices Inc. не нуждается в представлении, но хайп вокруг этого хакерского мультитула уже поутих. Теперь пользователи разделились на два лагеря: одни считают Flipper Zero крутым инструментом, другие не понимают, зачем его купили.

Один из наших пентестеров и социальных инженеров согласился поделиться впечатлениями от использования этого устройства. Он честно рассказал, полезен ли Flipper для проведения тестов на проникновение, какие задачи позволяет выполнять на объектах клиентов и стоит ли устройство своих денег. Рассмотрим плюсы и минусы девайса, с которыми приходится сталкиваться в «полевых» условиях. 

Читать далее

Как из безголовой CMS сделать полноценную систему управления сайтом

Level of difficultyMedium
Reading time10 min
Views7.3K

Всем привет! Я Леша Кузьмин, руководитель направления Frontend в AGIMA. В этой статье мы подробно рассмотрим безголовые CMS: какие тут есть подводные камни, как быть с архитектурой проектов, интеграциями и динамическими страницами. Посмотрим на управление сайтом не только со стороны разработчиков, но и контент-менеджеров. Бонусом пройдемся по SEO-производительности и настройке серверов.

Будет полезно разработчикам с опытом в Koa, Express, Strapi и частично React. Еще статья пригодится тем, кто любит копаться в документации — я покажу примеры, которые помогут с ней разобраться.

Читать далее

ГИС Торги: как купить землю у государства

Level of difficultyEasy
Reading time7 min
Views11K

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

Читать далее

Information

Rating
4,813-th
Registered
Activity