Получаем уведомления от Zabbix в WhatsApp

Asked
3 years, 6 months ago
Active
3 years, 6 months ago
Viewed
6k times
1

Is it possible to call a whatsapp contact from other than whatsapp, say for example I have a sip provider. Can I use it to call a whatsapp number?

|
improve this question

1 Answer 1

active oldest votes
3

There is not, as far as I can tell, any directly supported way to do this. The whole Whatsapp paradigm is mobile-phone-centric to the extent that even tablets (running the same OS) won’t work and the Chrome web app requires you to use your phone to authenticate it
by scanning a QR code.

  • The closest I have been able to find is the yowsup2 library which has some tools that could probably be used to script up a SIP-to-Whatsapp bridge running on a Linux server. That would be IM text only though, since I don’t think that library supports voice calls.
  • A PC running the Android development environment and Freeswitch/Asterix would have all the pieces you need to build a bridge for voice calls, but it would be a real project to put all that together.
  • If you can figure out a way to make Bluetooth-initiated calls go through Whatsapp (a big «if»), then you can accomplish a similar result with one of those BT-to-analog line adapters and an ordinary phone.
  • In Skype-land, this can be done by forwarding calls to a PSTN number (with the concomitant charges per-minute). I am not aware of Whatsapp having that feature.
  • For a while, it was possible to bridge Google Voice to SIP (when they inherited SIP subscribers from Gizmo5), and then they shut it down. So if the Goog takes working SIP interoperation and shuts it down
    , I wouldn’t plan on any of the walls coming down around the Whatsapp garden anytime soon. If you want SIP you are on your own.

    |
    improve this answer

    Not the answer you're looking for? Browse other questions tagged or ask your own question.

    В сети можно найти множество способов получения уведомлений от Zabbix. Мне показалось удобным получать алерты в WhatsApp — это дешевле, чем sms и, в моем случае, удобнее, чем почта — для получения уведомлений у нас используется корпоративный почтовый аккаунт, доступ к которому извне ограничен, к тому же, алерт может затеряться среди остальных писем. Настройка довольна проста. Нам понадобится: 1) yowsup и его зависимости: 1.1) python 2.6+ 1.2) python-dateutil 1.3) argparse for python < 2.7 1.4) libxml2, если yowsup будет использоваться со старой версии API (флаг —v1) 2) Доступ сервера Zabbix к сети интернет 3) Телефон с SIM-картой, на номер которой будет зарегистрирован аккаунт WhatsApp
    Шаг 1: Установка зависимостей yowsup

    Прежде всего нужно установить зависимости для yowsup. В Debian-подобных дистрибутивах или использующих формат пакетов DEB это делается так:

    # aptitude install python python-dateutil python-argparse 
    

    В дистрибутивах на базе RedHat или использующих формат пакетов RPM:

    # yum install python python-dateutil python-argparse 
    

    В моем случае в репозитории не оказалось пакета python-argparse, пришлось скачать его отдельно и установить вручную. Для RHEL 6 это можно сделать, например, здесь. Установка:

    # rpm -i python-argparse-1.2.1-5.1.noarch.rpm 
    
    Шаг 2: Установка yowsup

    После установки зависимостей ставим сам yowsup. Официальная страница проекта расположена на GitHub. Непосредственно с сервера Zabbix’а yowsup можно скачать таким образом:

    # wget https://github.com/tgalal/yowsup/archive/master.zip 
    

    Распаковываем архив и переходим в директорию yowsup-master/src:

    # unzip master.zip # cd yowsup-master/src 
    

    Копируем пример конфига в рабочий конфиг:

    # cp config.example yowsup-cli.config 
    

    В нем всего четыре строчки:

    cc=7 phone= id= password= 
    

    cc
    — это код страны. Список кодов можно найти на странице СountryСode.org. Код России — 7;phone
    — номер телефона, к которому будет привязан аккаунт WhatsApp. Должен начинаться с кода страны;id
    — это поле нужно в том случае, если Вы хотите использовать существующий аккаунт WhatsApp и старую версию API (запуск yowsup с флагом —v1). Если аккаунт был создан на устройстве Nokia или Android, то в поле id нужно написать IMEI устройства. Если на устройстве на базе iOS, то нужно писать MAC-адрес интерфейса WLAN. В новых версиях API это поле не используется, можно оставить его пустым;password
    — пароль WhatsApp, который будет получен автоматически после регистрации. В принципе, можно вытащить этот пароль из существующего аккаунта, тогда возможно будет использовать один аккаунт на двух устройствах, но я это не пробовал. Итак, заполняем поля конфига:

    cc=7 phone=79123456789 id= password= 
    

    Далее нужно пройти процедуру регистрации, в течение которой на номер телефона, указанный в конфиге, придет sms с кодом подтверждения. Вообще, проблем на этом шаге возникнуть не должно. Убедитесь, что сервер Zabbix’а имеет доступ на сервера WhatsApp по протоколу https. Если Zabbix стоит за фаерволом и политика безопасности не позволяет открыть ему полный доступ в интернет, получить список адресов можно, запустив tcpdump на сетевом интерфейсе сервера и посмотреть куда обращается yowsup, запустив процедуру регистрации. Не буду останавливаться на этом подробно, мануалов по tcpdump в сети много, скажу лишь, что мне пригодилась такая команда (весь tcp трафик на интерфейсе eth0, который не ходит в пределах локальной сети 10.0.0.0/8):

    # tcpdump -i eth0 -n tcp and  not src net 10.0.0.0/8 and dst net 10.0.0.0/8 
    

    Отправляем запрос на регистрацию:

    # ./yowsup-cli -c yowsup-cli.config -r sms 
    

    Если все прошло нормально, нам придет sms с шестизначным кодом подтверждения (например, 123-456). Отправляем этот код на сервер WhatsApp:

    # ./yowsup-cli -c yowsup-cli.config -R 123456 
    

    После этого в поле password нашего конфига должен появиться пароль. На этом процедура регистрации завершена, можно попробовать отправить сообщение другому пользователю WhatsApp. Отправить сообщение можно командой

    # ./yowsup-cli --send 79123456780 "Test message" --wait --config yowsup-cli.config 
    

    Принять сообщение:

    # ./yowsup-cli --listen --autoack --keepalive --config yowsup-cli.config 
    

    А можно вообще в режиме чата переписываться:

    # ./yowsup-cli --interactive 79123456780 --wait --autoack --keepalive --config yowsup-cli.config 
    

    На этом настройка yowsup закончена.

    Шаг 3: Пишем скрипт отправки алертов

    Чтобы подружить yowsup и Zabbix, надо написать скрипт отправки уведомлений. Напомню, что Zabbix берет скрипты уведомлений из директории, определенной в переменной AlertScriptsPath
    конфига zabbix_server.conf
    . В моем эта директория располагалась в /usr/local/share/zabbix/alertscripts
    :

    # cat /usr/local/etc/zabbix_server.conf | grep AlertScriptsPath ### Option: AlertScriptsPath # AlertScriptsPath=/usr/local/share/zabbix/alertscripts 
    

    Кладем туда скрипт (я назвал его whatsapp
    ), состоящий буквально из трех строчек:

    #!/bin/bash DIR='/usr/local/share/zabbix/alertscripts/yowsup-master/src/' # путь к файлам yowsup  $DIR/yowsup-cli --send $1 "$2 $3" --wait --config $DIR/yowsup-cli.config 
    

    Я положил файлы yowsup в директорию alertscripts
    — может быть, это не самое лучшее решение, но мне показалось, что так удобнее будет искать конфиги/скрипты в случае чего.$1 $2 $3
    — это значение переменных Zabbix, означающие, соответственно, «кому отсылать уведомление», «тема» и «тело уведомления». Мы настроим эти поля далее из интерфейса Zabbix. Делаем скрипт исполняемым:

    # chmod +x /usr/local/share/zabbix/alertscripts/whatsup  
    
    Шаг 4: Настраиваем Zabbix

    Действуем по стандартному алгоритму: 1) Создаем способ оповещения 2) Создаем действие, связанное с этим оповещением 3) Подключаем уведомление пользователям

    1) Создаем способ оповещения

    В меню Администрирование -> Оповещения (Administration -> Media types)
    нажимаем кнопку Создать способ оповещения (Create media type)
    . Имя (Name):
    Любое по Вашему желаниюТип (Type):
    — Скрипт (Script)Имя скрипта (Script Name):
    — Должно совпадать с именем скрипта, созданного на предыдущем шаге (whatsapp
    в нашем случае)

    2) Создаем действие

    По умолчанию в Zabbix настроено действие, которое делает рассылку всем администраторам всеми видами оповещений: Если такого действия у Вас нет, то нужно создать свое. Меню Настройка -> Действия (Configuration -> Action)
    , создаем новое действие кнопкой Создать действие (Create Action)
    . На вкладке Действие (Action)
    можно определить формат сообщения, которое будет отсылаться в WhatsApp. Я оставил всё по умолчанию На вкладке Условия (Conditions)
    настраиваются условия, при которых будет выполняться действие. Тоже оставил по умолчанию. Ну и на вкладке Операции (Operations)
    мы указываем что должен делать Zabbix: отправить сообщение (Send message)
    группе пользователей или отдельному пользователю способом оповещения WhatsApp. Сохраняем настройки и переходим к следующему шагу.

    3) Подключаем уведомление пользователям

    Заходим в настройки пользователя (Администрирование -> Пользователи или Administration -> Users)
    , выбираем нужного пользователя и настраиваем ему Способ оповещений (Media)
    :Тип оповещения (Type):
    WhatsAppОтправлять на (Send to):
    Номер телефона с кодом страны (например, 79123456789) Выбираем время, когда можно присылать сообщения и степень их критичности. Сохраняем настройки. На этом настройка закончена, но еще нужно проверить, что сообщения уходят и успешно доставляются. Можно проследить за отправкой уведомлений в меню Администрирование -> Аудит (Administration -> Audit)
    , выбрав пункт Действия (Actions)
    : Видим, что уведомление было успешно отправлено: Проверяем WhatsApp на смартфоне: Работает!UPDATE:
    В комментариях спрашивают почему именно WhatsApp, а не что то другое, например sms. Дело в том что сейчас наш Zabbix генерирует довольно много алертов, в том числе ложных. Пробовал прикрутить к нему 3G модем и с него рассылать смски, но получалось довольно накладно в плане расходов на их оплату. А так как практически у всех коллег есть WhatsApp, я подумал, что было бы неплохо отсылать уведомления именно туда, к тому же это бесплатно (первый год) и не требует установки каких то приложений (в нашем случае). Понятно, что это не самый надежный способ — могут поменять API, телефон может оказаться без интернета, упадет канал между Zabbix и интернет и т.п., но для рассылки некритичных алертов, имхо, его вполне можно использовать, дабы поменьше тратиться на смс. Если вдруг лавочку прикроют, будем использовать что то другое, например Pushover или Boxcar, предложенные

    267

    55.7k


    267

    Asked
    2 years, 9 months ago
    Active
    2 years, 8 months ago
    Viewed
    830 times
    2

    In WhatsApp how to send *something* with asterisk before and after the word without getting bold?

    |
    improve this question

    2 Answers 2

    active oldest votes
    1

    From WhatsApp help:

    There is no option to disable this feature.

    However you can type a space between asterisk and the first letter after it and MAYBE the text will not be bold on the receiver side (this «hack» depends on the smartphone model and does not work on iPhones).

    |
    improve this answer

    I found this out by accident trying formatting out for the first time: If the first asterisk immediately follows an emoji with no space between them, then the asterisks appear verbatim instead of making the word bold.

    e.g.

    (punching fist emoji)*BOOM* appears as (punching fist emoji)*BOOM*

    but

    (punching fist emoji) *BOOM* appears as (punching fist emoji) BOOM

    I am using WhatsApp Messenger Version 2.17.24 on a BQ Aquaris E5 4G with Android 6.0.1

    |
    improve this answer

    Not the answer you're looking for? Browse other questions tagged or ask your own question.

    Рейтинг автора
    5
    Подборку подготовил
    Андрей Ульянов
    Наш эксперт
    Написано статей
    168
    Ссылка на основную публикацию
    Похожие публикации