Author Topic: Опять меняется протокол ICQ?  (Read 264429 times)

0 Members and 1 Guest are viewing this topic.

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #1110 on: 24 06 2023, 19:29:28 »
Quote
В крысе всегда номер уходит в офлайн через минуту, если свернуть оф клиент.
Я ещё разок гляну, но Гоша говорил, что официальный клиент через минуту после сворачивания присылает статус "я вышел в ОНЛАЙН". Собственно, почему Миранда и не показывает, что он ушел в оффлайн, т.к. от сервера пришло прямо противоположное...

Итого, мне нужно будет проверить:
- какие данные приходят в Миранду от свёрнутого десктопного оф. клиента
- какие данные приходят в крысу от свёрнутого десктопного оф. клиента
- если данные различаются, выяснить, почему так происходит
- если Миранда перестанет разрывать сессию при выходе, начнут ли другие Миранды видеть выключенную Миранду как выключенную (сейчас при выключении Миранды остальные Миранды видят её в онлайне до тех пор, пока эти остальные Миранды не передёрнут своё подключение)
« Last Edit: 24 06 2023, 19:33:31 by dartraiden »
 

Offline Mikanoshi

Re: Опять меняется протокол ICQ?
« Reply #1111 on: 24 06 2023, 20:01:57 »
Да, похоже раньше приходило другое, сейчас и в крысе в офлайн не выходит, событие такое:
Code: [Select]
{
          "type" : "presence",
          "eventData" : {
            "nick" : "Crackerz",
            "aimId" : "694631417",
            "displayId" : "694631417",
            "friendly" : "Номер Асечков",
            "onlineTime" : 0,
            "userType" : "icq",
            "iconId" : "000101103cdcb279dc09ceaaa1b97d3b38f677de",
            "lastseen" : 0
          },
          "seqNum" : 163250
        }
Точно такое же приходит при разлогинивании, так что номер всегда в сети.
Если запросить статус номера или перелогиниться, то у такого номера не будет приходить onlineTime в данных, так его можно приписать к офлайновым.
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #1112 on: 24 06 2023, 20:21:55 »
Интересно, почему мобильный оф. клиент (Android) посылает что-то другое... в итоге, он исправно уходит в оффлайн по неактивности.
Нужно учиться захватывать трафик с Android.
 

Offline Mikanoshi

Re: Опять меняется протокол ICQ?
« Reply #1113 on: 24 06 2023, 20:32:44 »
Не обязательно мобильную, есть веб версия, там тоже выходит) Запрашиваемая ссылка там такая:
https://u.icq.net/api/v92/bos/nbos-b013m/aim/fetchEvents?aimsid=xxx&rnd=1687638477.968304&seqNum=1311&timeout=30000&supportedSuggestTypes=text-smartreply,sticker-smartreply&bg=1&hidden=1

bg наверно и отвечает за постоянные отключения по неактивности, ибо в десктопном ссылка такая:
https://u.icq.net/api/v91/bos/nbos-b013m/aim/fetchEvents?aimsid=xxx&rnd=1687638703.630124&seqNum=1481&f=json&r=7&timeout=60000&peek=0&hidden=1&supportedSuggestTypes=text-smartreply,sticker-smartreply
 

Offline Mikanoshi

Re: Опять меняется протокол ICQ?
« Reply #1114 on: 25 06 2023, 00:17:08 »
Короче я протестировал крысу с веб оф клиентом, какая-то каша у них там на серверах)

Веб клиент после недолгого простоя прибавляет &bg=1&hidden=1 к ссылке, что переводит номер в инвиз, поэтому он и уходит в альт. клиентах в офлайн.

Если же разлогиниться, то приходит событие где lastseen=0 onlineTime=0 из которого ничего не ясно о статусе контакта.
При запросе presence этого уина приходит lastseen=0 onlineTime>0 и даже state=online, т.е. он однозначно в сети, и пока не переподключишься эти неверные данные продолжают приходить хоть через неделю после логаута.

Мало того, при создании сессии приходит список контактов где у всех подобных контактов, а также у всех кто реально онлайн, lastseen=0 onlineTime=0, так что опять статус неясен.
Только если запросить presence после релогина, то наконец приходит state=offline, lastseen>0
В крысе после получения КЛ запрашиваются капсы всех онлайн контактов, там приходит правильный lastseen и контакт наконец уходит в офлайн, при последующих переподключениях уже и сервер присылает КЛ с правильным lastseen.

Абсолютно никакой логики))
 
The following users thanked this post: dartraiden