Miranda NG Official Community Forum

Miranda NG русскоязычный форум => Общие разговоры о Miranda NG => Topic started by: Oneiron on 09 12 2014, 06:23:03

Title: Не обновляется информация о контактах
Post by: Oneiron on 09 12 2014, 06:23:03
Есть OpenFire с привязкой к AD, есть настроенная Miranda. Во всплывающем окне при наведении на контакт Miranda показывает информацию о пользователе - его почту, внутренний телефонный номер и ФИО. Эта информация не обновляется автоматически.

К примеру, в AD создается пользователь, этот пользователь появляется в заданной группе Miranda. Изначально у него нет телефонного номера, и Miranda не показывает это поле.
Затем телефонный номер добавляется, но Miranda показывает устаревшую информацию до тех пор, пока не залезешь в информацию о контакте.

Как сделать так, чтобы информация обновлялась если не в реальном времени, то хотя бы раз в определенный интервал?
Title: Re: Не обновляется информация о контактах
Post by: Apollo2k4 on 09 12 2014, 19:14:41
Баз танцев с бубнами никак. Некоторое это делали через Actman, по моему даже был шаблон скрипта на старом форуме. Но тот к сожалению ушёл в историю.
Можете немного почитать тут (http://forum.miranda-ng.org/index.php?topic=154.msg4762#msg4762), похожая проблема. А лучше приходите в конференцию, может коллективный разум поможет.
Title: Re: Не обновляется информация о контактах
Post by: Magic on 10 12 2014, 07:25:49
Если коллективный разум родит идею - просьба ее выложить на форуме, думаю многие, в том числе и я, будут благодарны за решение)
Title: Re: Не обновляется информация о контактах
Post by: Oneiron on 11 12 2014, 07:08:33
Apollo2k4, ну, с танцами с бубном и я могу. У меня настроено автоматическое создание профиля, доменный вход и хистори подтягивается с сервера. Накатать простецкий скрипт для удаления профиля перед запуском миранды - чем не выход? Это баг или фича, кстати? В смысле, исправлять-то будут?
И да, о какой конференции речь идет?
Magic, обязательно.
Title: Re: Не обновляется информация о контактах
Post by: Apollo2k4 on 11 12 2014, 08:01:14
Oneiron, это фича. Это сделано согласно XEP чтобы не DoS публичные сервера.
На главной есть ссылка на конференцию xmpp:miranda-ng@conference.jabber.ru?join там обычно есть разработчики и собственно автор jabber плагина.
Title: Re: Не обновляется информация о контактах
Post by: Oneiron on 11 12 2014, 12:27:22
Раз фича - то исправлять ничего никто не будет. Печально сие.
Только найти Actman-скрипт...
Title: Re: Не обновляется информация о контактах
Post by: ghazan on 11 12 2014, 17:35:12
а кто выгружает данные из AD в жабер?
Title: Re: Не обновляется информация о контактах
Post by: Magic on 12 12 2014, 07:24:05
а кто выгружает данные из AD в жабер?
Имеется ввиду сервер?
Title: Re: Не обновляется информация о контактах
Post by: max on 12 12 2014, 12:41:23
Вмешаюсь в разговор, т.к. тема для меня не безразлична...
а кто выгружает данные из AD в жабер?
Openfire может брать данные о пользователях из LDAP-каталогов, в том числе и из AD. Т.е. в настройках Openfire указываются учетные данные для подключения к каталогу. И через эн-ное время он дергает данные к себе.
Title: Re: Не обновляется информация о контактах
Post by: ghazan on 12 12 2014, 14:09:28
Имеется ввиду сервер?
сервер, да. основная проблема состоит в том, что в XMPP вообще нет понятия версионирования vcard, есть только версионирование ростера, но оно никак к этой проблеме не относится.

Openfire может брать данные о пользователях из LDAP-каталогов, в том числе и из AD. Т.е. в настройках Openfire указываются учетные данные для подключения к каталогу. И через эн-ное время он дергает данные к себе.
супер. теперь надо найти способ дернуть клиента и сказать ему, что vcard изменился и пора уже перечитать его
Title: Re: Не обновляется информация о контактах
Post by: Magic on 12 12 2014, 15:12:08
сервер, да. основная проблема состоит в том, что в XMPP вообще нет понятия версионирования vcard, есть только версионирование ростера, но оно никак к этой проблеме не относится.
супер. теперь надо найти способ дернуть клиента и сказать ему, что vcard изменился и пора уже перечитать его
Openfire, да. У него vcard наполняется из AD.

Миранда и так перечитывает каждый раз, при открытии инфо о пользователе.
Вопрос только в том, как этот процесс автоматизировать и настроить, дабы не сильно грузить сервер.
P.S. Покопался в Actman, нашел только отдаленную возможность сделать это при дабл клике по контакту, но это не сильно поможет, к сожалению.
Title: Re: Не обновляется информация о контактах
Post by: Oneiron on 13 12 2014, 06:33:23
Все-таки либо удалять профиль, либо какой-нибудь добрый человек напишет плагин, который бы время от времени обновлял vcard'ы.
Или другой вариант, а что если удалять не профиль целиком, а его кусок с vcard? Actman так умеет?
Title: Re: Не обновляется информация о контактах
Post by: Mataes on 13 12 2014, 21:14:12
глянул в своих действиях и нашел одно, которое дергает сервис WhenWasIt/Birthdays/RefreshDetails
и как мне помнится он как раз и обновляет данные контактов.
Попробуйте, расскажите потом помогло или нет.
P.s. плагин WhenWasIt
Title: Re: Не обновляется информация о контактах
Post by: Magic on 15 12 2014, 07:37:47
глянул в своих действиях и нашел одно, которое дергает сервис WhenWasIt/Birthdays/RefreshDetails
и как мне помнится он как раз и обновляет данные контактов.
Попробуйте, расскажите потом помогло или нет.
P.s. плагин WhenWasIt
Попробовал поставить этот сервис на кнопку и запустить. Появился попап об обновлении дней рождения, но инфа о контактах не обновляется (ждал 30 минут, во всплывающем попапе и QuickSearch, e-mail пользователя остался старый).
В консоли также ничего не происходило, обычный обмен с сервером.
Либо я что-то делаю не так, либо не работает :(
Title: Re: Не обновляется информация о контактах
Post by: Mataes on 15 12 2014, 07:44:00
ок, сегодня проверю работу этого сервиса.
Title: Re: Не обновляется информация о контактах
Post by: Magic on 15 12 2014, 08:06:32
ок, сегодня проверю работу этого сервиса.
Обновление все-таки пошло, через время. Видимо на старте какая-то задержка или длительный процесс обхода контактов.
Сервис работает, попробую прикрутить на планировщик и посмотреть загрузку сервера, спасибо.

Post Merge: 15 12 2014, 16:03:53
Покопавшись в исходниках - нашел замечательную настройку:

int delay = db_get_w(NULL, ModuleName, "UpdateDelay", REFRESH_DETAILS_DELAY);

которая задает таймаут между запросами, но почему-то не вынесена в настройки :(
Осталось придумать как вызывать этот сервис при старте миранды, а не по времени
Title: Re: Не обновляется информация о контактах
Post by: watcher on 15 12 2014, 20:03:16
Magic, есть возможность на старте задать, спрошу точно и отпишу.
Title: Re: Не обновляется информация о контактах
Post by: watcher on 15 12 2014, 21:50:28
Нужно назвать действие #Autostart:

(http://i.imgur.com/d5wEkVz.png)
Title: Re: Не обновляется информация о контактах
Post by: Magic on 16 12 2014, 07:16:16
Нужно назвать действие #Autostart:

(http://i.imgur.com/d5wEkVz.png)

Спасибо! Еще одна проблема решена :)


Post Merge: 16 12 2014, 08:02:46
Кто будет делать у себя - название действия #Autostart чувствительно к регистру, #AutoStart не работает.
Title: Re: Не обновляется информация о контактах
Post by: max on 16 12 2014, 11:26:16
Mataes, а возможно ли чере параметры WhenWasIt/Birthdays/RefreshDetails отключать всплывающие окна о начале и завершении проверки и регулировать задержку между запросами на обновление?
Title: Re: Не обновляется информация о контактах
Post by: Mataes on 16 12 2014, 11:48:21
max, нельзя там на параметры ничего не завязано
Title: Re: Не обновляется информация о контактах
Post by: Magic on 16 12 2014, 12:14:13
Mataes, а возможно ли чере параметры WhenWasIt/Birthdays/RefreshDetails отключать всплывающие окна о начале и завершении проверки и регулировать задержку между запросами на обновление?
Про задержку я писал выше - можно, только напрямую в DBeditor. Ветка Whenwasit, параметр UpdateDelay. Задает задержку между запросами vcard каждого контакта в миллисекундах.
Title: Re: Не обновляется информация о контактах
Post by: Oneiron on 18 12 2014, 07:04:32
Спасибо за помощь!
Title: Re: Не обновляется информация о контактах
Post by: Red_Stalker on 29 01 2015, 16:57:40
Здравствуйте. Вот столкнулся с той же проблемой но у меня в плагине WhenWasIt нет настройки UpdateDelay. Ее нужно создать самому?

Update 1 - Cервис WhenWasIt/Birthdays/RefreshDetails я найти тоже не могу.
Title: Re: Не обновляется информация о контактах
Post by: Oneiron on 30 01 2015, 15:13:44
Red_Stalker, вам нужно скачать плагин DBEditor и редактировать базу данных, добавляя (меняя) эти параметры вручную.
Title: Re: Не обновляется информация о контактах
Post by: Red_Stalker on 31 01 2015, 09:41:47
Все скачал и не понимаю где это все настроить. Скажите у вас получилось сделать обновление информации о контактах? Поставил OpenFire + Miranda NG + доменный логин. Все работает. На сервере настроил время жизни хешей 10 минут. Вся информация из vcard обновляется. Если отключить миранду и снова включить то подтягиваются новые логины, аватарки. Персональная информация обновляется только если по контакту нажать на меню "Информация". Установил DBEditor++ и не могу найти параметры, про которые тут упоминалось
Spoiler
(http://i.imgur.com/jNQzbp2.jpg)(http://i.imgur.com/cA18iwP.jpg)
[close]
Title: Re: Не обновляется информация о контактах
Post by: Magic on 31 01 2015, 13:12:18
1. Updatedelay нужно создать
2. Имя сервиса впиши вручную.
То что он запустился - покажет попап с текстом ("начато обновление информации о контактах")
Title: Re: Не обновляется информация о контактах
Post by: Red_Stalker on 02 02 2015, 22:43:50
К сожалению так и не смог настроить авто обновление информации. Вручную через плагин User info ext получается обновлять весь список контактов (без WhenWasIt). Так же он не работает и при старте программы. Теперь смотрю в сторону просто удаления всех контактов при включении
Title: Re: Не обновляется информация о контактах
Post by: Davis on 02 06 2016, 13:11:24
Думаю я нашел проблему http://trac.miranda-ng.org/ticket/1260#ticket (http://trac.miranda-ng.org/ticket/1260#ticket)
У меня пока работает прекрасно, WhenWasIt/Birthdays/RefreshDetails вырубил
Title: Re: Не обновляется информация о контактах
Post by: Magic on 02 06 2016, 13:28:09
Думаю я нашел проблему http://trac.miranda-ng.org/ticket/1260#ticket (http://trac.miranda-ng.org/ticket/1260#ticket)
У меня пока работает прекрасно, WhenWasIt/Birthdays/RefreshDetails вырубил
аватары да, а остальная инфа?
Title: Re: Не обновляется информация о контактах
Post by: Davis on 02 06 2016, 15:17:56
Ну там теперь запрашивается весь VCard, все работает пока что
Title: Re: Не обновляется информация о контактах
Post by: Davis on 02 06 2016, 15:21:17
Я удалил локально все контакты, запустил миранду и через 5 секунд имел заполненный ростер и 112 аватаров в папке AvatarCache

Правда у меня еще вот это дополнение (http://forum.miranda-ng.org/index.php?topic=4649.msg17130#msg17130).
Каждая миранда каждый день обновляет собственный VCard с сервера. Ну как бы логично, что в первую очередь правильную инфу о себе должен иметь хозяин. Если что-то изменилось, он остальным сообщит :)
Title: Re: Не обновляется информация о контактах
Post by: Magic on 02 06 2016, 15:45:57
то что запрашивается весь вкард, это логично. Я имею ввиду, что если поменяется только телефон, а не аватар, то никакого уведомления не придет, верно?
Версионность вкард не везде поддерживается к сожалению (
Если аватар сменился, пока ты был в оффлайне - также не спасет, потому что уведомления не будет.
Title: Re: Не обновляется информация о контактах
Post by: Davis on 02 06 2016, 15:59:54
Я сейчас подопытному аккаунту сменил аватар, а второму подопытному - телефонный номер. завтра посмотрим
Title: Re: Не обновляется информация о контактах
Post by: Davis on 03 06 2016, 09:14:20
Ну да, аватары теперь работают отлично, при создании контакта VCard считывается, но изменения текстовой инфы потом, в процессе жизни, собеседникам не передается. Сама себе миранда их скачивает каждый день благодаря моему вышеупомянутому изменению при подключении. А вот VCard собеседников качается только при открытии их личной информации.
Так что поспешил я отключать сканирование, возвращаю WhenWasIt/Birthdays/RefreshDetails, пусть каждый день обновляет все VCard.
Title: Re: Не обновляется информация о контактах
Post by: Magic on 03 06 2016, 09:52:44
Ну да, аватары теперь работают отлично, при создании контакта VCard считывается, но изменения текстовой инфы потом, в процессе жизни, собеседникам не передается. Сама себе миранда их скачивает каждый день благодаря моему вышеупомянутому изменению при подключении. А вот VCard собеседников качается только при открытии их личной информации.
Так что поспешил я отключать сканирование, возвращаю WhenWasIt/Birthdays/RefreshDetails, пусть каждый день обновляет все VCard.
спасибо за тесты :)
Title: Re: Не обновляется информация о контактах
Post by: sunchatru on 30 10 2018, 20:16:54
А можно было бы сделать простое решение только лишь на базе миранды.
Внедрить в миранду "слушать" сервисные сообщения.
К примеру вы админ, внесли изменение на определенном пользователе, и нет никакой необходимости заставлять обновлять всех клиентов все контакты на сервере, нас интересует только этот один.

Делаем массовую рассылку обычного сообщения по всем контактам сервера в виде #update jid@jabber.ru
В миранде это не будет отображаться как сообщение, но она будет знать что у jid@jabber.ru необходимо обновить данные.
Чтобы это обновление не создавало пиковую нагрузку, можно выбирать случайный интервал исполнения команды 5/10/15 минут.
Причем эти сообщения прекрасно будут уходить в оффлайн, а когда пользователь подключится, то сразу получит команду на обновление определенных jid и все счастливы :)
Так же думаю такая схема была бы справедлива если все данные берутся не из AD а клиент хранит их на сервере. Обновил свои данные, и автоматом отправил своим друзьям и коллегам новости что у вас есть что-то новенькое для них)
Title: Re: Не обновляется информация о контактах
Post by: ghazan on 09 12 2018, 19:47:57
sunchatru,
есть схема, которая позволяет это делать без всяких яких, на основе версионирования всего вкард (а не только аватара) и передачи соотв хэша в презенс. к сожалению, ejabberd режет это к чертям собачьим, на openfire не пробовал.
Title: Re: Не обновляется информация о контактах
Post by: randem on 22 12 2018, 06:06:48
Можно ли убрать сервисное сообщение которое появляется при использовании WhenWasIt/Birthdays/RefreshDetails в #Autostart?
Title: Re: Не обновляется информация о контактах
Post by: randem on 22 12 2018, 06:09:22
sunchatru,
есть схема, которая позволяет это делать без всяких яких, на основе версионирования всего вкард (а не только аватара) и передачи соотв хэша в презенс. к сожалению, ejabberd режет это к чертям собачьим, на openfire не пробовал.
А не могли бы вы скинуть ссылку на статейку?
Title: Re: Не обновляется информация о контактах
Post by: ghazan on 26 12 2018, 14:16:10
randem,
к-какую статейку? :) статейки нет, там просто есть алгоритм, который в presence вставляет sha256 не аватара, а всего вкарда, вот только в ejabberd в презенс нельзя вставить посторонний хэш, придется править общий, т.е. сторонние клиенты кроме миранды будут посасывать
Title: Re: Не обновляется информация о контактах
Post by: maxim43g on 26 05 2020, 17:55:16
что бы не плодить темы.
такая же проблема.
как обновить юзерам vcard?


Quote
1. Updatedelay нужно создать. Имя сервиса впиши вручную.То что он запустился - покажет попап с текстом ("начато обновление информации о контактах")
c каким параметрами создавать Updatedelay?
Title: Re: Не обновляется информация о контактах
Post by: Apollo2k4 on 26 05 2020, 19:04:35
c каким параметрами создавать Updatedelay?
Параметр dword и значение в секундах между интервалами обновления.
Title: Re: Не обновляется информация о контактах
Post by: San-D on 27 05 2020, 06:51:25
Во всплывающем окне при наведении на контакт Miranda показывает информацию о пользователе - его почту, внутренний телефонный номер и ФИО
Насколько понял, всплывающие окна реализованы на базе плагина Tipper.

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

Например, номер телефона нужно набрать на телефоне, глядя не экран, причём быстро, пока хинт не исчезнет. Сделать больше задержку - усложнит восприятие информации в целом.
С е-мейлом - вообще неудобно. Дни рождения - тоже спорный вопрос.
С технической точки зрения задача интересная, но для пользователей ни в коем случае так не делал бы.

Критикуешь - предлагай.

Попробую разбить задачу на несколько подзадач, при использовании решения внутри корпорации.

Почта
Е-мейл в 99,9% случаев используется сразу для отправки письма, или для копирования в буфер обмена.
Используется когда пользователю это нужно. Почта в хинте - назойливое решение.

Поэтому удобнее всего - оставить только ПКМ - E-mail, а также вывести пиктограмму возле каждого имени.Что для отображения хинта нужно использовать мышь, что здесь - тоже нужна мышь.
Преимущества: 1-2 клика - и письмо готово для заполнения, адресат указан правильно.
Недостатки: не вижу.
У нас используется именно такое решение:(https://i.ibb.co/NFhjbDV/Screenshot-2020-05-27-08-35-35.png)

Почта у нас работает на базе Exchange, это шикарнейшая штука (например, на смартфонах у пользователей адресная книга всей компании, включая номера телефонов, достаточно начать вводить имя как при наборе номера, так и для отправки сообщения).

Возможно, предложенное решение удобно только в нашем случае.
Номера телефонов
Смотрю на решение с точки зрения пользователя. При занесении данных в телефонную книгу с информацией нужно поработать, и хинта здесь недостаточно (может быть несколько номеров, другая важная информация, которую лучше занести в адресную книгу - на всё это нужно время). Если я звоню одному и тому же абоненту несколько раз - всегда через занесение в адресную книгу, поэтому информация о номере телефона со временем перестаёт быть актуальной, при этом хинты выбрасывает постоянно.

Номера и емейлы у пользователей меняются крайне редко.
Если особо не менять подход, гораздо более удобное было бы решение - отображение информации о пользователе во фрейме, но обсуждение таких решений не встречал.
Поэтому тут лучше остаться с vCard как оптимальный вариант.
Мы пока оставили vCard, но по телефонной связи ниже опишу идеи, реализация которых очень интересует.Опять же, у нас Exchange: пользователь набрал на смартфоне имя и позвонил. Набирать много цифр в течение дня - мозг устаёт гораздо сильнее.

Дни рождения
Здесь просто скажу, что актуальность этой информации в том же хинте достаточно сомнительна, независимо от принятой корпоративной этики.
Хорошая замена решению - автоматизировать рассылку "Дни рождения на следующей неделе". Скрипт с обработкой информации из AD делается, например, на MS SQL Server за 2-3 часа.

У нас же сделана стартовая корпоративная страница с наиболее важной информацией, которая при помощи GPO принудительно установленная как стартовая для браузеров. На стартовой странице установлени виджет с таблицей "Дни рождения", с группировкой по "Сегодня", "Завтра" и следующий TOP ближайших, с должностями и т.п.
Title: Re: Не обновляется информация о контактах
Post by: Apollo2k4 on 27 05 2020, 08:17:33
Связка Miranda+Openfire+Asterisk (ПКМ - Позвонить|пиктограмма возле контакта - Позвонить). Вот такие решения ну ОООЧЕНЬ интересны, и именно в связке с Miranda. Этот вопрос, конечно, нужно рассматривать отдельно.
К сожаление на данный момент миранда никак не умеет звук, может через какое-то время. Для XMPP есть тоже XEP который позволяет передавать звук, но всё уперается в то, что миранда пока не умеет.
Title: Re: Не обновляется информация о контактах
Post by: Davis on 27 05 2020, 08:26:09
Как вариант: https://habr.com/ru/post/204242/
Title: Re: Не обновляется информация о контактах
Post by: San-D on 27 05 2020, 09:40:38
К сожаление на данный момент миранда никак не умеет звук, может через какое-то время. Для XMPP есть тоже XEP который позволяет передавать звук, но всё уперается в то, что миранда пока не умеет.
А ей уметь звук и не нужно, для этого есть другой софт, который предназначен специально для этого.

Как вариант: https://habr.com/ru/post/204242/ (https://habr.com/ru/post/204242/)
Да, это именно то, о чём я говорил  :THUMBS UP: . За ссылку спс, статью видели, вот именно такой информации достаточно мало. Доберёмся до задачи, нужно будет собирать по крупицам и набивать шишки.
Title: Re: Не обновляется информация о контактах
Post by: Davis on 27 05 2020, 10:07:24
вот именно такой информации достаточно мало
А что там не хватает?
Самое главное - идея - заставить астериск звонить двум абонентам и связывать их между собой. Остальное - уже можно и самому додумать ;)
Title: Re: Не обновляется информация о контактах
Post by: San-D on 27 05 2020, 10:39:06
    вот именно такой информации достаточно мало А что там не хватает? Самое главное - идея - заставить астериск звонить двум абонентам и связывать их между собой. Остальное - уже можно и самому додумать
Пока вопросов нет  :) . Писал ранее, что с любыми подобными реализациями знакомимся с особым интересом, в контексте обсуждения вопроса подсвечивать в хинте актуальный номер телефона и где номер телефона важен. Нам до SIP ещё как до Луны (Илон Маск быстрее доберётся), но отображение телефонных номеров для использования в работе не будем рассматривать в любом случае, даже если информация в Miranda будет всегда актуальна.