Как и многие люди, я использую астериск для организации телефонной связи.
Помимо внутреннего номера, у абонентов также есть номер мобильного телефона, на который осуществляется переадресация и отправляется СМС в случае пропущенного звонка.
Традиционно уведомления о пропущенных звонках отправлялись либо на электронную почту, либо на мобильный телефон в виде SMS. С появлением Telegram появилась возможность отправлять сообщения через мессенджер.
Одна проблема: мы не можем отправить сообщение конкретно на номер мобильного телефона.
А нам так удобнее, потому что.
У нас уже есть номера мобильных телефонов (у нас сотни подписчиков, желающих получать уведомления :), но нам еще нужно найти id чата, причем даже для каждого.
Решение: небольшой чат-бот. Чат-бот принимает пользователя и просит у него номер телефона.
Затем полученный номер и соответствующий идентификатор чата сохраняются на сервере.
Теперь мы можем отправить уведомление на номер нашего сервиса, и бот, привязанный к сервису, перешлет это уведомление соответствующему пользователю в Telegram. Получается и дешево (за СМС мы больше не платим), и сердито.
Две точки
- Пока пользователь не подключится к боту, мы не можем отправлять ему сообщения.
- Сравниваются идентификатор пользователя, отправившего номер, и идентификатор пользователя, у которого есть отправленный номер; в случае несоответствия пользователь не будет привязан к указанному номеру
Вы можете отправить любое сообщение (которое ранее было отправлено по СМС или электронной почте) — уведомления о звонках, ошибках, сбоях сервера и т. д.
Некоторые подробности
Отправка происходит путем отправки http-запроса на локально работающий веб-сервер, на котором также реализован чат-бот. Сервер ищет совпадение в базе данных mongo, а затем отправляет данные в Telegram. Это просто.Веб-сервер написан на nodejs, для взаимодействия с Telegram используется замечательная библиотека.
телеграф .
Как создать бота и уже получить токен инструкции .
Как отправить сообщение?
POST-запрос с сообщением json Например:Как это работает для меня? После завершения звонка Asterisk вызывает небольшой скрипт, который смотрит на статус звонка и при необходимости отправляет сообщение.curl -X POST \ http://localhost:3030/send/ <number> \ -H 'content-type: application/json' \ -d '{"text": "Ahtung!!"}'
Вот и все.
Источники на GitHub: телеграмма-оповещение Установка описана в репозитории.
Для тех, кто хочет быстрого старта, есть docker-compose.yml. Видео использования (50 секунд) Предложения? Вопросы? Теги: #asterisk #Telegram #alerts #node.js #еще не забанен #мессенджеры #JavaScript #node.js #asterisk #Разработка систем связи
-
Введение В Онлайн-Трансляцию
19 Oct, 24 -
Гибкая Методология Разработки «Scrum».
19 Oct, 24 -
Почему Все Лгут, Правда О Лжи
19 Oct, 24 -
Немного О Биологии И Биоинформатике
19 Oct, 24