isoho.pro предлагает уникальный email-bot для автоматической проверки почтовых ящиков и отправки уведомлений о входящих письмах в Telegram. Бота можно настроить на сбор писем с неограниченного количества электронных ящиков на любом домене, где есть поддержка протокола POP3/IMAP. Bot пригодится всем, кто использует Telegram в качестве основного рабочего инструмента.
Особенности
- Понятная панель управления ботом и возможность настраивать его самостоятельно
- Разделять ID получателей e-mail в зависимости от задач. Например, отделу продаж отправлять письма группы ящиков А, а бухгалтерии группы В
- Настраивать фильтры в зависимости от встречающихся слов в теме или в сообщении. Например, если встречается слово «Бракованный», то такие письма не пропускать в бот, а дублировать отделу закупок
- Создавать автоответ с заданным текстом на любые события
- Перенаправлять почту по определенным условиям на заданные группы или адреса
- Подписка на бота по персональному или общему паролю
- Вы всегда можете предложить свои идеи, и мы их реализуем для вас
Отправлять e-mail уведомления в телеграм (email бот telegram)
Рис.1. Простой web-интерфейс для управления почтовыми ящиками через браузер
Рис.2. Web-версия Telegram, уведомления о новых сообщениях
Что входит в стоимость разработки:
- Регистрация нового доменного имени или размещение на субдомене вашего сайта
- Размещение бота на хостинге
- В случае размещения на нашем хостинге 2500 руб/мес
- Установка и настройка автопродления SSL-сертификата
- Email-бот для Telegram с оговоренным функционалом
Стоимость
Базовая версия — 40 000 руб.
Расширенная версия — 80 000 руб.
Источник: isoho.pro
Отправка уведомления в телеграм по окончании разговора
В последнее время мессенджеры набирают популярность. Особенно телеграм. Но доводилось вам сталкиваться с потребностью отправлять уведомление в телеграм? А если это уведомление о завершившемся звонке? Нет? Тогда эта статья для Вас.
В ней мы рассмотрим какой диалплан писать на Астериске. Также будет приведен пример скрипта, который будет мониторить AMI события и отправлять сообщения в телеграм. […]
В последнее время мессенджеры набирают популярность. Особенно телеграм. Но доводилось вам сталкиваться с потребностью отправлять уведомление в телеграм? А если это уведомление о завершившемся звонке? Нет? Тогда эта статья для Вас. В ней мы рассмотрим какой диалплан писать на Астериске.
Также будет приведен пример скрипта, который будет мониторить AMI события и отправлять сообщения в телеграм.
Уведомления на почту и в Telegram
Hangup_handler и UserEvent
Поставим задачу таким образом: на астериск поступает извне вызов. который обрабатывается по существующей схеме. Необходимо выполнить отправку сообщения в телеграм при завершении звонка. Что мы можем сделать?
- Перелопатить кучу контекстов и в каждый из них добавить экстеншн h, который отвечает за разрыв соединения.
- Или использовать hangup_handler.
Первый пункт нас не интересует. т.к. он слишком долгий. При этом в каждом из контекстов использовать CURL для отправки POST запроса тоже не есть хорошо. Поэтому было выбран способ с UserEvent и Hangup_handler. Вы спросите, что это такое Hangup_handler? Этот функционал позволяет выполнять диалплан сразу после завершения вызова на канале. Также он имеет ряд преимуществ перед использованием экстеншена h.
- hangup handler срабатывает вне зависимости от того, в каком контексте происходит выполнение диалплана в момент завершения вызова
- можно выполнить диалплан при завершении вызова на канале, на котором диалплан не выполняется, и последнее никак нельзя реализовать с помощью экстеншена h
Именно эта функция поможет нам универсально отправлять пользовательское событие в вывод AMI. Для этого мы будем использовать UserEvent.
UserEvent(имя_события, передаваемое значение)
Передаваемое значение может отправляться как пара <ключ> : <значение>
Именно благодаря такой комбинации, мы можем сторонней программой реализовывать дополнительный функционал, чтобы не громоздить диалплан.
Приступим к реализации. Исходя из условия задачи, создадим дополнительный контекст, куда мы направим вызов (изменить параметр context на from-trunk-pre в настройках транка), при поступлении на АТС и навесим на первичный канал наш hangup_handler.
from-trunk-pre] exten => _X.,1,Set(CHANNEL(hangup_handler_push)=sub-hangup-handler-tg,s,1($) same => n,Goto(from-trunk,$,1)
Таким образом, мы говорим Астериску, что при завершении вызова на создавшемся канале выполнить контекст sub-hangup-handler-tg.
Передадим в этот контекст аргумент CALLERID(num) — номер абонента. т.к. в течении всей схемы и маршрута входящего звонка АОН может меняться
Полдела сделано. Осталось навесить UserEvent и можно приступать к написанию скрипта. Опишем контекст sub-hangup-handler-tg. Он будет состоять из 2 шагов первый — мы кидаем UserEvent и второй — возвращаемся обратно командой Return.
Т.е. логика выполнения hangup_handler сравнима с Gosub
[sub-hangup-handler-tg] exten => s,1,UserEvent(HANGUP_TG, Caller: $) same => n,Return
В данном примере пользовательское событие мы назвали HANGUP_TG, у вас оно может быть другое и в тело события мы добавили аргумент Caller, который будет содержать номер звонящего $
После внесения изменений в диалплан применяем правки, выполняя команду dialplan reload в консоли астериска.
Скрипт отправки в телеграм
Скрипт будем писать на Python 3 версии. Поэтому вам необходимо будет заранее установить интерпретатор этой версии к себе на машину.
Для работы нашего скрипта необходимо будет установить следующие модули:
- aiohttp==3.6.2
- async-timeout==3.0.1
- attrs==19.3.0
- certifi==2020.4.5.1
- chardet==3.0.4
- idna==2.9
- idna-ssl==1.1.0
- multidict==4.7.6
- panoramisk==1.3
- PySocks==1.7.1
- requests==2.23.0
- telepot==12.7
- typing-extensions==3.7.4.2
- urllib3==1.25.9
- yarl==1.4.2
Они устанавливаются следующей командой:
pip install aiohttp async-timeout attrs certifi chardet idna idna-ssl multidict panoramisk PySocks requests telepot typing-extensions urllib3 yarl
Начнем записывать наш скрипт. Для этого перейдем в необходимую для нас директорию, в моем примере это /opt/pyth/ и создадим файл hangup.py и затем откроем созданный файл любым текстовым редактором
# cd /opt/pyth/ # touch hangup.py # vim hangup.py
Сперва, подключим необходимые модули:
«»» Modules for AMI «»» import asyncio from panoramisk import Manager «»» Import modules for Telegram «»» import telepot # функции для использования прокси from urllib3.contrib.socks import SOCKSProxyManager from telepot.api import _default_pool_params, _onetime_pool_params
Зададим необходимые переменные и установим данные для подключения к прокси:
# # -/-/-/-/-/- SET PROXY CONNECTION -/-/-/-/- # telepot.api._onetime_pool_spec = (SOCKSProxyManager, dict(proxy_url=’socks5://URL_FOR_POXY’, username=’username’, password=’password’, **_onetime_pool_params)) telepot.api._pools[‘default’] = SOCKSProxyManager(‘socks5://URL_FOR_POXY’, username=»username’, password=’password’, **_default_pool_params) bot = telepot.Bot(‘YOUR_TG_BOT_API’) manager = Manager( loop = asyncio.get_event_loop(), host=’127.0.0.1′, port=5038, encoding=’utf-8′, username=’test’, secret=’test’ )
Переменная bot — устанавливает подключение к API телеграма с ключем, созданного бота. А переменная manager осуществляет подключение к AMI интерфейсу Астериск.
При создании пользователя AMI укажите ему права только read c значением user.
Теперь опишем функционал отслеживания события UserEvent. для этого в библиотеке panoramisk используется функция register_event. Её можно использовать как декоратор, что упрощает обращение к ней.
Что показывает данный кусок кода:
- Передаем в функцию register_event аргумент, значением которого будет название события — ‘UserEvent’
- Полученный ответ AMI мы преобразуем в словарь (HASH).
- Проверяем, если в теле события есть заголовок ‘UserEvent’ с значением, которое мы указывали в диалплане — HANGUP_TG, то
- указываем в переменную time текущее значение времени в формате datetime
- отправляем в телеграм с помощью функции библиотеки telepot — sendMessage
И указываем строки. чтобы скрипт мог работать в фоне:
def main(): manager.connect() try: manager.loop.run_forever() except KeyboardInterrupt: manager.loop.close() if __name__ == ‘__main__’: main()
Чтобы скрипт работал в фоне. можете использовать supervisord. Воспользуйтесь этой статьей , чтобы узнать как его настроить
Листинг скрипта
Проверка
Чтобы проверить, позвоним на свой городской номер и завершив разговор, смотрим. приходят ли сообщения в телеграм.
Источник: voxlink.ru
Уведомления (Telegram / Email)
Уведомления в Telegram нужны для того, чтобы сотрудники оперативно реагировали на ситуации связанные с изменением и неисправностями оборудования и обращениями абонентов.
Принцип работы уведомлений в Telegram
Создаются Telegram-канал и Telegram-бот. В канал добавляется бот. Бот добавляется в сервис через сайт, в личном кабинете.
В канал добавляются все сотрудники, ответственные за тот или иной тип событий, о которых будут приходить уведомления. Бот присылает уведомления от сервера и сайта.
Например, бот присылает уведомление о неисправности камеры, после чего сотрудник, ответственный за неисправности, может произвести проверку и, при необходимости, передать неисправность в работу монтажникам. Или, в случае обращения или нового сообщения в уже имеющемся обращении от жителя МКД, можно быстро отреагировать.
Уведомления отправляются в 2 случаях:
- Сервис в автоматическом режиме нашел проблему с камерой (или сервером) и отправил сообщение в Telegram-канал. Например, сервер отслеживает состояние оборудования, проводит опрос «доступно – не доступно» . Если одна, несколько или все камеры недоступны, в Telegram-канал поступает уведомление о неисправности или аварии.
- В сервисе выполнена операция, и о ней необходимо знать сотрудникам. Если есть запросы доступа, обращения и комментарии пользователей, изменение настроек и добавление новых объектов и камер, то Telegram-бот отправляет уведомление в канал.
Типы уведомлений
Существуют несколько типов уведомлений:
Неисправность оборудования
- Уведомление о неисправности камеры – одна из камер стала недоступна. Система отправляет сообщение в формате «Неисправность камеры…»
- Уведомление о неисправности объекта – две или больше камер в один момент времени стали недоступны. Система отправляет сообщение в формате «На объекте зафиксирована неисправность… Отказ сегмента сети…»
- Уведомление об аварии на объекте – все камеры объекта стали недоступны в один момент времени. Система отправляет сообщение в формате «На объекте зафиксирована неисправность. Авария…»
- Уведомление об обращении пользователя в связи с неисправностью камеры. Система отправляет сообщение в формате «Добавлена заявка №… в раздел «Поддержка». Неисправность камеры…»
Обращения абонентов
- Уведомление об обращении от абонента – абонент оставил новое обращение. Система отправляет сообщение в формате «Раздел «Поддержка» Добавлено обращение №. Сообщение. »
- Уведомление о новом комментарии в обращении – абонент оставил сообщение в обращении. Система отправляет сообщение в формате «Раздел «Поддержка» Обращение №… Добавлен комментарий:…»
Подключение канала к сервису
Для настройки отправки уведомлений нужно выполнить несколько шагов:
Шаг 1.
Создать Telegram-канал. Запомнить или записать его ID (со знаком минус). Добавить в канал сотрудников (можно сделать в любое время).
Шаг 2.
Создать Telegram-бот. Запомнить или записать API-key (ключ АПИ). Добавить бота в ранее созданный Telegram-канал.
Подробнее о создании группы и Telegram-бота вы узнаете, посмотрев видео:
Шаг 3.
Перейти в раздел «Настройки – Справочники – Telegram-боты» в Личном Кабинете сервиса. Указать произвольное имя бота , полученный ID Telegram-чата (канала) и полученный при создании токен (API-key) Telegram-бота.
Также необходимо отметить все типы уведомлений, которые бот будет присылать в канал.
Для того, чтобы бот присылал уведомления в канал, нужно включить отслеживание и регистрацию неисправностей сервером. Для этого в настройках объекта (внутри карточки объекта) нужно отметить пункт «Мониторинг всех камер объекта» .
Отправка уведомлений на E-mail
Уведомления на электронную почту аналогичны уведомлениям в Telegam. Для настройки перейдите в раздел меню «Настройки-Справочники — Email для уведомлений» . Укажите адрес электронной почты и выберите тип уведомлений о которых будет приходить оповещение.
Источник: docs.dvor24.com