Windows Проблемы с PUSH уведомлениями для мобильных *SPult

  • Автор темы Автор темы Andi
  • Дата начала Дата начала

Andi

Сотрудник
Команда LKDS
Небольшое вступление:

Google PUSH уведомление - это HTTP POST запрос, отправляемый на https://fcm.googleapis.com/fcm/send
Он содержит идентификатор смартфона, идентификатор приложения, заголовок, пояснение и т.п.

Эти HTTP POST запросы отправляет установленный на вашем сервере LKDSDisp, LKDSDomain или LKDSCloud на нашем сервере.

Суть проблемы:

Недавно эти HTTP POST запросы перестали приниматься Google, но не от всех установок ДК "Обь".
Google продолжает принимать запросы от LKDSCloud и от LKDSDomain, если LKDSDomain имеет удостоверенный сертификат - файл \LKDSDrv\LKDSDomain\Http\LKDSDomain.pem

По-видимому, Google стал требовать, что бы клиент, посылающий PUSH уведомление, имел удостоверенный сертификат.

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

Если удостоверенный сертификат для данного компьютера-сервера уже есть, то этот сертификат можно использовать для LKDSDomain, нужно сертификат и всю цепь удостоверяющих сертификатов поместить в файл \LKDSDrv\LKDSDomain\Http\LKDSDomain.pem. Проверить правильность можно подключившись по WEB к LKDSDomain. Всё это описано в документе.

Вероятно, решением проблемы было бы создание промежуточного сервера, имеющего удостоверенный сертификат. LKDSDisp, LKDSDomain посылали бы HTTP POST запрос с PUSH уведомлением на этот промежуточный сервер, а промежуточный сервер переправлял эти запросы на Google.

Это то же потребует время.
 
Последнее редактирование модератором:
Андрей Ефименко написал(а):
Небольшое вступление:

Google PUSH уведомление - это HTTP POST запрос, отправляемый на https://fcm.googleapis.com/fcm/send
Он содержит идентификатор смартфона, идентификатор приложения, заголовок, пояснение и т.п.

Эти HTTP POST запросы отправляет установленный на вашем сервере LKDSDisp, LKDSDomain или LKDSCloud на нашем сервере.

Суть проблемы:

Недавно эти HTTP POST запросы перестали приниматься Google, но не от всех установок ДК "Обь".
Google продолжает принимать запросы от LKDSCloud и от LKDSDomain, если LKDSDomain имеет удостоверенный сертификат - файл \LKDSDrv\LKDSDomain\Http\LKDSDomain.pem

По-видимому, Google стал требовать, что бы клиент, посылающий PUSH уведомление, имел удостоверенный сертификат.

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

Если удостоверенный сертификат для данного компьютера-сервера уже есть, то этот сертификат можно использовать для LKDSDomain, нужно сертификат и всю цепь удостоверяющих сертификатов поместить в файл \LKDSDrv\LKDSDomain\Http\LKDSDomain.pem. Проверить правильность можно подключившись по WEB к LKDSDomain. Всё это описано в документе.

Вероятно, решением проблемы было бы создание промежуточного сервера, имеющего удостоверенный сертификат. LKDSDisp, LKDSDomain посылали бы HTTP POST запрос с PUSH уведомлением на этот промежуточный сервер, а промежуточный сервер переправлял эти запросы на Google.

Это то же потребует время.

Возможно, я сделал неправильные выводы и сертификаты тут не при чём.
Что я заметил - с некоторых компьютеров перестали доставляться всплывающие уведомления для ASPult, ASPultPlus, iSPult. Есть же компьютеры, с которых продолжают доставляться уведомления.

Есть просьба - по возможности проверить доходят ли уведомления в ваших установках ПО ДК "Обь" и сообщить либо через форум, либо по email techno@lkds.ru
 
А если повторно отправлять таким способом:
->изменить оповещение->послать это оповещение для проверки...."->сохранить два раза
то должно отправляться каждый раз при таких действиях?
 
LKDSDisp перестали приходить и с основного и с резервного серверов
 
Последнее редактирование модератором:
revit написал(а):
Проверил. С облачного сервера 1(domain) и локального сервера2(disp) проходят.
Может какие то перебои связанные с текущими событиями?
https://3dnews.ru/1061664/google-ogranichil...nie-prilogeniya

Точно не с этим.

revit написал(а):
А если повторно отправлять таким способом:
->изменить оповещение->послать это оповещение для проверки...."->сохранить два раза
то должно отправляться каждый раз при таких действиях?

Если ASPult подключён к данному серверу (организации), то должно отправляться и появляться на смартфоне.
 
Я конечно пока не сильно вникал в это, но гугл активно продвигает облачное решение Firebase, может это как то связанно.
 
Андрей Ефименко написал(а):
Возможно, я сделал неправильные выводы и сертификаты тут не при чём.
Что я заметил - с некоторых компьютеров перестали доставляться всплывающие уведомления для ASPult, ASPultPlus, iSPult. Есть же компьютеры, с которых продолжают доставляться уведомления.

Есть просьба - по возможности проверить доходят ли уведомления в ваших установках ПО ДК "Обь" и сообщить либо через форум, либо по email techno@lkds.ru

Сертификаты в данном случае действительно не влияют на ситуацию.
Не устанавливается TCP соединение с сервером fcm.googleapis.com, который переправляет PUSH уведомления на смартфоны.

Что я заметил:
- если с компьютера отправляются PUSH уведомления, то в браузере открывается https://play.google.com
- если с компьютера не отправляются PUSH уведомления, то в браузере НЕ открывается https://play.google.com

Это явно какая-то защита, но не понятно в каком месте. Возможно, что перестарались местные провайдеры.
Двигаться нужно, поэтому есть просьба - на компьютере сервере открыть в браузере https://play.google.com и сообщить открылся ли этот URL, отправляются ли PUSH уведомления.
 
Андрей Ефименко написал(а):
Сертификаты в данном случае действительно не влияют на ситуацию.
Не устанавливается TCP соединение с сервером fcm.googleapis.com, который переправляет PUSH уведомления на смартфоны.

Что я заметил:
- если с компьютера отправляются PUSH уведомления, то в браузере открывается https://play.google.com
- если с компьютера не отправляются PUSH уведомления, то в браузере НЕ открывается https://play.google.com

Это явно какая-то защита, но не понятно в каком месте. Возможно, что перестарались местные провайдеры.
Двигаться нужно, поэтому есть просьба - на компьютере сервере открыть в браузере https://play.google.com и сообщить открылся ли этот URL, отправляются ли PUSH уведомления.

url не открывается с русских ip адресов. Стоит зайти через vpn из другой страны- все работает. Я уже сталкивался с этим. Надзорные органы блокируют не угодные по их мнению сайты в свете последних событий. Второй вариант на сайте стоит проверка по ip и он сам отбрасывает ненужных адресатов
 
https://play.google.com открывается и пуш отправляются на локальном сервере с LKDSDisp
На облачном сервере с LKDSDomain аналогично
 
Последнее редактирование модератором:
revit написал(а):
https://play.google.com открывается и пуш отправляются на локальном сервере с LKDSDisp
На облачном сервере с LKDSDomain аналогично

Хочется найти закономерность - почему с одних российских IP уведомления отправляются, а с других, опять же российских IP, нет.
 
Nikolaj76 написал(а):
url не открывается с русских ip адресов. Стоит зайти через vpn из другой страны- все работает. Я уже сталкивался с этим. Надзорные органы блокируют не угодные по их мнению сайты в свете последних событий. Второй вариант на сайте стоит проверка по ip и он сам отбрасывает ненужных адресатов

Для решения данной проблемы сделан и запущен ретранслятор PUSH уведомлений, и доработаны LKDSDisp, LKDSDomain - они могут отправлять PUSH уведомлений не сразу в Google, а в этот ретранслятор.

Доступность ретранслятора можно проверить, набрав в браузере URL http://push.lkds.net:48500 LKDSPush.png

Что бы переключить LKDSDisp в режим работы с ретранслятором нужно во вторую строку файла \LKDSDrv\LKDSDisp\LKDSDisp.xml добавить параметр LKDSPush="1" ...LKDSPush="1">
После чего перезагрузить службу LKDSDisp

Что бы переключить LKDSDomain в режим работы с ретранслятором нужно во вторую строку файла \LKDSDrv\LKDSDomain\LKDSDomain.xml добавить параметр LKDSPush="1" ...LKDSPush="1">
После чего перезагрузить службу LKDSDomain


LKDSDomain выложен в штатное обновление ПО (13.05.2022).

LKDSDomain пока не выложен в штатное обновление, и его нужно обновить вручную

1. Переименуйте имеющийся в папке \LKDSDrv\LKDSDomain\ файл LKDSDomain.exe в файл LKDSDomain.exe_old
2. Поместите файл LKDSDomain.ttt в папку \LKDSDrv\LKDSDomain\ под именем LKDSDomain.exe
3. перезагрузите службу LKDSDomain из "Диспетчера задач" (закладка "службы") или из "Командной строки" командами:
net stop LKDSDomain
net start LKDSDomain


LKDSDisp выложен в штатное обновление ПО (13.05.2022).

LKDSDisp пока не выложен в штатное обновление, и его нужно обновить вручную

1. Переименуйте имеющийся в папке \LKDSDrv\LKDSDisp\ файл LKDSDisp.exe в файл LKDSDisp.exe_old
2. Поместите файл LKDSDisp.ttt в папку \LKDSDrv\LKDSDisp\ под именем LKDSDisp.exe
3. перезагрузите службу LKDSDisp из "Диспетчера задач" (закладка "службы") или из "Командной строки" командами:
net stop LKDSDisp
net start LKDSDisp
 

Вложения

  • LKDSPush.png
    LKDSPush.png
    50.1 KB · Просмотры: 0
Последнее редактирование модератором:
Я пошел примерно по тому же пути. Сервер отправляет POST запросы добавленные в последнем обновлении, на web сервер где установлен электронный журнал. Там они обрабатываются и с помощью мессенджеров отправляются конечному пользователю. теперь не надо каждому настраивать на телефоне ASpult. Telegram либо whatsapp есть у каждого. Есть конечно еще механики и наладчики "староверы" которые не пользуют интернет, но до них я думаю мы доберемся с помощью SMS либо Электронной почты )))

P/S: по поводу сообщений: хочется что бы отправлялось сообщение при устранении событий таких как «неисправность ЛШ КЛШ в слоте….» , «потеряна связь с КЛШ в таком то слоте..» «неисправен ист. 60В КЛШ в слоте» на данный момент не получилось их отправка. (галочку в Spult ставил)
 
Nikolaj76 написал(а):
Я пошел примерно по тому же пути. Сервер отправляет POST запросы добавленные в последнем обновлении, на web сервер где установлен электронный журнал. Там они обрабатываются и с помощью мессенджеров отправляются конечному пользователю. теперь не надо каждому настраивать на телефоне ASpult. Telegram либо whatsapp есть у каждого. Есть конечно еще механики и наладчики "староверы" которые не пользуют интернет, но до них я думаю мы доберемся с помощью SMS либо Электронной почты )))

P/S: по поводу сообщений: хочется что бы отправлялось сообщение при устранении событий таких как «неисправность ЛШ КЛШ в слоте….» , «потеряна связь с КЛШ в таком то слоте..» «неисправен ист. 60В КЛШ в слоте» на данный момент не получилось их отправка. (галочку в Spult ставил)

По поводу сообщений, связанных с КЛШ.

1. Сообщение "Потеряна связь с КЛШ в слоте %d УМ %d" с кодом 5 используется только для фиксации в журнале потери связи. Для показа в журнале восстановление связи используется сообщение с кодом 6 "Включен КЛШ в слоте %d УМ %d". Т.е. нужно ещё добавить описание оповещения PUSHNoLink.png
Так получилось исторически и тянется ещё с MPult.

2. Сообщения:

33 - нарушение линий связи (неисправность локальной шине КЛШ)
34 - неисправен источник 60В (для КЛШ)
35 - режим аварийного питания
42 - неисправна батарея питания КЛШ(КСЛ)
46 - неисправен голосовой кодек

Вроде должны использоваться для фиксации и появления и пропадания состояния.
Попробую смоделировать появления этих состояний.
 

Вложения

  • PUSHNoLink.png
    PUSHNoLink.png
    19 KB · Просмотры: 0
Андрей Ефименко написал(а):
Для решения данной проблемы сделан и запущен ретранслятор PUSH уведомлений, и доработаны LKDSDisp, LKDSDomain - они могут отправлять PUSH уведомлений не сразу в Google, а в этот ретранслятор.

Доступность ретранслятора можно проверить, набрав в браузере URL http://push.lkds.net:48500 Вложение IPB #2591

Что бы переключить LKDSDisp в режим работы с ретранслятором нужно во вторую строку файла \LKDSDrv\LKDSDisp\LKDSDisp.xml добавить параметр LKDSPush="1" ...LKDSPush="1">
После чего перезагрузить службу LKDSDisp

Что бы переключить LKDSDomain в режим работы с ретранслятором нужно во вторую строку файла \LKDSDrv\LKDSDomain\LKDSDomain.xml добавить параметр LKDSPush="1" ...LKDSPush="1">
После чего перезагрузить службу LKDSDomain
LKDSDomain выложен в штатное обновление ПО (13.05.2022).

LKDSDomain пока не выложен в штатное обновление, и его нужно обновить вручную

1. Переименуйте имеющийся в папке \LKDSDrv\LKDSDomain\ файл LKDSDomain.exe в файл LKDSDomain.exe_old
2. Поместите файл LKDSDomain.ttt в папку \LKDSDrv\LKDSDomain\ под именем LKDSDomain.exe
3. перезагрузите службу LKDSDomain из "Диспетчера задач" (закладка "службы") или из "Командной строки" командами:
net stop LKDSDomain
net start LKDSDomain


LKDSDisp выложен в штатное обновление ПО (13.05.2022).

LKDSDisp пока не выложен в штатное обновление, и его нужно обновить вручную

1. Переименуйте имеющийся в папке \LKDSDrv\LKDSDisp\ файл LKDSDisp.exe в файл LKDSDisp.exe_old
2. Поместите файл LKDSDisp.ttt в папку \LKDSDrv\LKDSDisp\ под именем LKDSDisp.exe
3. перезагрузите службу LKDSDisp из "Диспетчера задач" (закладка "службы") или из "Командной строки" командами:
net stop LKDSDisp
net start LKDSDisp

Причина не отправки PUSH уведомлений найдена - для поддержки зашифрованного протокола HTTPS, который используется для отправки PUSH уведомлений в Google, использовалась устаревшая версия пакета OpenSSL - 1.1.0g.
Сейчас серверы LKDSDomain и LKDSDisp перестроены с OpenSSL v1.1.1o
Изменения выложены в штатное обновление ПО.
Параметр LKDSPush="1" в конфигурационном XML файле серверов LKDSDomain и LKDSDisp сейчас не используются, т.е. ретранслятор не используется, и оповещения отправляются непосредственно в Google.
 
Добрый день. Хочу сделать автоматическую систему оповещения о поступлении новых заявок для механиков. Выбираю пользователя, создаю новое оповещение и задаю событие "Сообщение оператора". Все работает, но вместе с сообщением оператора еще приходят события когда диспетчер выполняет какие то действия. (Например откладывает обслуживание лифта) Может нужно указать что то в подстроке чтоб приходили только заявки созданные диспетчером через Spult?
 
Последнее редактирование модератором:
Nikolaj76 написал(а):
Добрый день. Хочу сделать автоматическую систему оповещения о поступлении новых заявок для механиков.

Т.е. уже создана своя система обработки заявок и нужно, что бы механик получал PUSH уведомления на смартфон о посылке из SPult заявки в эту систему ?

Nikolaj76 написал(а):
Выбираю пользователя, создаю новое оповещение и задаю событие "Сообщение оператора". Все работает, но вместе с сообщением оператора еще приходят события когда диспетчер выполняет какие то действия. (Например откладывает обслуживание лифта) Может нужно указать что то в подстроке чтоб приходили только заявки созданные диспетчером через Spult?

Я создал оповещение UserMsg.png и у меня, при откладывании обслуживания лифта, не приходит оповещение. Если у Вас приходит оповещение на событие 44 в момент откладывания обслуживания лифта, то хотел бы получить данные в тех поддержку с сервера.
 

Вложения

  • UserMsg.png
    UserMsg.png
    18.4 KB · Просмотры: 0
Андрей Ефименко написал(а):
Причина не отправки PUSH уведомлений найдена - для поддержки зашифрованного протокола HTTPS, который используется для отправки PUSH уведомлений в Google, использовалась устаревшая версия пакета OpenSSL - 1.1.0g.
Сейчас серверы LKDSDomain и LKDSDisp перестроены с OpenSSL v1.1.1o
Изменения выложены в штатное обновление ПО.
Параметр LKDSPush="1" в конфигурационном XML файле серверов LKDSDomain и LKDSDisp сейчас не используются, т.е. ретранслятор не используется, и оповещения отправляются непосредственно в Google.

Появилась необходимость активного использования андроид девайса для 50 лифтов. Оповещения настроены, но почему то есть проблемы с их постоянством. Они то есть, то нет... Или может прийти на один телефон, а на другой нет. Начинаешь проверять- все работает. Потом -то есть, то нет ... Закономерности никакой не наблюдаю. Хотел воспользоваться ретранслятором, но увидел это сообщение.

P.S в какой версии лкдсдомэйн поправили OpenSSL ? Обновился , буду смотреть...

P.P.S. Чем отличаются режимы 62-кнопка вызов в кабине или МП, 66-кнопка вызов в МП и 15-вызов диспетчера??? И какой надо вносить в список оповещений?
 
Последнее редактирование модератором:
revit написал(а):
Появилась необходимость активного использования андроид девайса для 50 лифтов. Оповещения настроены, но почему то есть проблемы с их постоянством. Они то есть, то нет... Или может прийти на один телефон, а на другой нет. Начинаешь проверять- все работает. Потом -то есть, то нет ... Закономерности никакой не наблюдаю. Хотел воспользоваться ретранслятором, но увидел это сообщение.

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

revit написал(а):
P.S в какой версии лкдсдомэйн поправили OpenSSL ? Обновился , буду смотреть...

Если PUSH уведомления приходят, хоть и с проблемами, то OpenSSL уже нужный.

revit написал(а):
P.P.S. Чем отличаются режимы 62-кнопка вызов в кабине или МП, 66-кнопка вызов в МП и 15-вызов диспетчера??? И какой надо вносить в список оповещений?

Хотелось бы получить поясняющие снимки экрана.
 
Андрей Ефименко написал(а):
Важно помнить, что если используются PUSH уведомления, то на каждом смартфоне нужно заходить под своим, отличном от других, пользователем. Пользователей с одинаковыми правами удобно заводить, используя пользователя "образец".

Т.е. нельзя запускать АСПульт под одним аккаунтом ЛКДСДомэйн на разных телефонах, правильно я понял?

Андрей Ефименко написал(а):
Хотелось бы получить поясняющие снимки экрана.
Упс.... Извиняюсь. Это вопрос по отображению USER входов. В списке отображения есть три режима вызова - 62,66, 15. Чем они отличаются? При этом в списке оповещений только один.
 
Последнее редактирование модератором:
Назад
Сверху