ejabberd - Comments for "mod_offline_odbc" https://www.ejabberd.im/node/5161 en Ну и славненько :) https://www.ejabberd.im/node/5161#comment-58286 <p>Ну и славненько :) Естественно, нужно это доработать, чтобы true было только на реальных пользователей.</p> Tue, 24 Jan 2012 13:11:20 +0000 mikekaganski comment 58286 at https://www.ejabberd.im по поводу выскакиваний при https://www.ejabberd.im/node/5161#comment-58285 <p>по поводу выскакиваний при логоне - я сперва ошибся, всё выскакивает</p> <p>сейчас попробовал сделать всегда isuser на True - видимо, это существенно было, т.к. теперь вне зависимости от содержания таблицы users всё работает</p> Tue, 24 Jan 2012 12:56:18 +0000 Lopatkin comment 58285 at https://www.ejabberd.im Это не может быть причиной - https://www.ejabberd.im/node/5161#comment-58284 <p>Это не может быть причиной - mod_pubsub вообще не нужен для оффлайновых сообщений. У меня он не подключён, и сообщения прекрасно приходят (и выскакивают при логоне)</p> Tue, 24 Jan 2012 12:31:10 +0000 mikekaganski comment 58284 at https://www.ejabberd.im 1. Я не писал об удалении https://www.ejabberd.im/node/5161#comment-58283 <p>1. Я не писал об удалении пользователей - обратите внимание: я говорил только о перемещении и переименовании.<br /> 2. Я не знал, как выглядит логика работа скрипта. Но судя по Вашим словам, скрипт имеет средства определения, имеется ли в природе некий юзер - а именно, isuser. Мне кажется, всё дело именно в этом - а что будет, если заставить этот запрос всегда возвращать истину?</p> Tue, 24 Jan 2012 12:24:33 +0000 mikekaganski comment 58283 at https://www.ejabberd.im Получилось короче, суть была https://www.ejabberd.im/node/5161#comment-58282 <p>Получилось</p> <p>короче, суть была в том, что из коробки, или это был какой-то копипаст из чужого конфига - сейчас уже сложно сказать, но в конфиге было у меня такое место</p> <p>{mod_pubsub, [ % requires mod_caps<br /> {access_createnode, pubsub_createnode},<br /> {pep_sendlast_offline, false},<br /> {last_item_cache, false},<br /> %%{plugins, ["default", "pep"]}<br /> {plugins, ["flat", "hometree", "pep"]} % pep requires mod_caps<br /> ]},</p> <p>так вот, если изменить параметр pep_sendlast_offline на true, то сообщения отправляются!!! и, кстати, в базу MySQL никуда не пишутся</p> <p>однако, сейчас такой вопрос: как сделать так, чтобы как только человек, которому было отправлено оффлайн сообщение, войдёт в сеть - чтобы ему пришло уведомление о новых сообщениях? а то так он только если сам посмотрит свою переписку с кем-то - то увидит, что тот ему отправил сообщение в оффлайн</p> Tue, 24 Jan 2012 12:22:37 +0000 Lopatkin comment 58282 at https://www.ejabberd.im да, получается, именно так! - https://www.ejabberd.im/node/5161#comment-58281 <p>да, получается, именно так! - как раз такая цель с самого начала, чтобы пользователи не могли друг-друга никуда перемещать, переименовывать, удалять и пр. - т.е. это можно сделать, и пользователь даже исчезнет из контакт листа, но при первом же логоф/логоне - всё опять будет по прежнему</p> <p>если что-то регистрировать пользователя с помощью ejabberdctl, то происходит запрос к extauth скрипту сначала isuser, а потом tryregister - ну, соответственно, что пропишешь в скрипте на эти запросы - то и изменится (в моём скрипте эти запросы пока никак не обрабатываются))) )</p> <p>просто если при такой конфигурации руками заполнить таблицы users, rosterusers и rostergroups - то это ничего не меняет...поэтому я и не придавал значения тому, что они пустые, однако, когда пользователь оффлайн система, видимо, должна как-то определить кому отправлять - но в эти таблицы она не смотрит (иначе бы что-то менялось бы если забить эти таблицы руками?)</p> <p>кстати, ещё такой вопрос - в какой таблице в mysql еджабберд хранит оффлайн сообщения? вроде по смыслу подходит только private_storage? или в другое место?</p> Tue, 24 Jan 2012 12:02:12 +0000 Lopatkin comment 58281 at https://www.ejabberd.im Это, получается, если https://www.ejabberd.im/node/5161#comment-58280 <p>Это, получается, если пользователь в своём ростере переименует пользователя, или перенесёт его в какую-нибудь свою группу, он либо не переименуется/не перенесётся, либо эти изменения не сохранятся при логофе/логоне?</p> <p>А если, например, с помощью ejabberdctl зарегистрировать пользователя с таким же jid, что-нибудь изменится?</p> <p>Я никогда не использовал ext auth, просто мысли.</p> Tue, 24 Jan 2012 11:19:58 +0000 mikekaganski comment 58280 at https://www.ejabberd.im да всё вроде то же https://www.ejabberd.im/node/5161#comment-58279 <p>да всё вроде то же самое</p> <p>может ли это быть связано с тем, что используется скрипт external auth? </p> <p>также есть предположение, что это как-то связано с тем, что</p> <p>ejabberdctl stats registeredusers = 0</p> <p>а</p> <p>ejabberdctl stats onlineusers = 9, например...</p> <p>как такое может быть? при этом, в mysql таблице таблица users пустая, хотя, например, в vcard хранятся данные, которые нормально показываются в клиентах</p> <p>rosterusers и rostergroups пустые, хотя включён модуль mod_roster_odbc и в контакт листе, соответственно, показываются и группы и пользователи, как было настроено в mod_shared_roster_ldap</p> Tue, 24 Jan 2012 09:07:48 +0000 Lopatkin comment 58279 at https://www.ejabberd.im Может быть, Вы снова https://www.ejabberd.im/node/5161#comment-58258 <p>Может быть, Вы снова отключили какой-нибудь необходимый модуль? (Скажу сразу - в работе этого модуля подробно не разбирался. У меня просто работает.)<br /> Вот мой работающий ejabberd.cfg:<br /> <div class="codeblock"><code>override_global.<br />override_local.<br />override_acls.<br />{loglevel, 3}.<br />{hosts, [&quot;pi.local&quot;]}.<br />{listen,<br /> [<br />&nbsp; {5222, ejabberd_c2s, [<br /> {access, c2s},<br /> {shaper, c2s_shaper},<br /> {max_stanza_size, 65536}<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]},<br />&nbsp; {5269, ejabberd_s2s_in, [<br /> &nbsp;&nbsp; {shaper, s2s_shaper},<br /> &nbsp;&nbsp; {max_stanza_size, 131072}<br /> &nbsp; ]},<br />&nbsp; {5280, ejabberd_http, [<br /> http_bind,<br /> http_poll,<br /> web_admin<br /> ]}<br /> ]}.<br />{auth_method, ldap}.<br />{ldap_servers, [&quot;dc1.pi.local&quot;, &quot;dc2.pi.local&quot;]}.<br />{ldap_port, 389}.<br />{ldap_rootdn, &quot;cn=jabber,cn=Users,dc=pi,dc=local&quot;}.<br />{ldap_password, &quot;Secret&quot;}.<br />{ldap_base, &quot;ou=pi,dc=pi,dc=local&quot;}.<br />{ldap_uids, [{&quot;userPrincipalName&quot;, &quot;%u@pi.local&quot;}]}.<br />{ldap_filter, &quot;(&amp;(objectClass=user)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))&quot;}.<br />{shaper, normal, {maxrate, 1000}}.<br />{shaper, fast, {maxrate, 50000}}.<br />{max_fsm_queue, 1000}.<br />{acl, admin, {user, &quot;admin1&quot;, &quot;pi.local&quot;}}.<br />{acl, admin, {user, &quot;admin2&quot;, &quot;pi.local&quot;}}.<br />{acl, local, {user_regexp, &quot;&quot;}}.<br />{acl, announcer, {user, &quot;И.Иванов&quot;, &quot;pi.local&quot;}}.<br />{acl, announcer, {user, &quot;П.Петров&quot;, &quot;pi.local&quot;}}.<br />{acl, announcer, {user, &quot;В.Пупкин&quot;, &quot;pi.local&quot;}}.<br />{access, max_user_sessions, [{10, all}]}.<br />{access, max_user_offline_messages, [{5000, admin}, {100, all}]}.<br />{access, local, [{allow, local}]}.<br />{access, c2s, [{deny, blocked},<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {allow, all}]}.<br />{access, c2s_shaper, [{none, admin},<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {normal, all}]}.<br />{access, s2s_shaper, [{fast, all}]}.<br />{access, announce, [{allow, admin},{allow, announcer}]}.<br />{access, configure, [{allow, admin}]}.<br />{access, muc_admin, [{allow, admin}]}.<br />{access, muc_create, [{allow, local}]}.<br />{access, muc, [{allow, all}]}.<br />{access, pubsub_createnode, [{allow, local}]}.<br />{access, register, [{allow, all}]}.<br />{language, &quot;en&quot;}.<br />{modules,<br /> [<br />&nbsp; {mod_adhoc,&nbsp;&nbsp;&nbsp; []},<br />&nbsp; {mod_announce, [{access, announce}]},<br />&nbsp; {mod_caps,&nbsp;&nbsp;&nbsp;&nbsp; []},<br />&nbsp; {mod_configure,[]},<br />&nbsp; {mod_disco,&nbsp;&nbsp;&nbsp; []},<br />&nbsp; {mod_last,&nbsp;&nbsp;&nbsp;&nbsp; []},<br />&nbsp; {mod_offline,&nbsp; [{access_max_user_messages, max_user_offline_messages}]},<br />&nbsp; {mod_ping,&nbsp;&nbsp;&nbsp;&nbsp; []},<br />&nbsp; {mod_private,&nbsp; []},<br />&nbsp; {mod_roster,&nbsp;&nbsp; []},<br />&nbsp; {mod_shared_roster_ldap,[<br />&nbsp;&nbsp;&nbsp; {ldap_base, &quot;dc=pi,dc=local&quot;},<br />&nbsp;&nbsp;&nbsp; {ldap_rfilter, &quot;(distinguishedName=CN=jabber_groups,CN=Users,DC=pi,DC=local)&quot;},<br />&nbsp;&nbsp;&nbsp; {ldap_groupattr, &quot;member&quot;},<br />&nbsp;&nbsp;&nbsp; {ldap_group_is_dn, true},<br />&nbsp;&nbsp;&nbsp; {ldap_groupdesc, &quot;cn&quot;},<br />&nbsp;&nbsp;&nbsp; {ldap_memberattr, &quot;member&quot;},<br />&nbsp;&nbsp;&nbsp; {ldap_member_selection_mode, memberattr_dn},<br />&nbsp;&nbsp;&nbsp; {ldap_ufilter, &quot;(&amp;(objectClass=user)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))&quot;},<br />&nbsp;&nbsp;&nbsp; {ldap_userdesc, &quot;displayName&quot;},<br />&nbsp;&nbsp;&nbsp; {ldap_useruid, &quot;userPrincipalName&quot;},<br />&nbsp;&nbsp;&nbsp; {ldap_useruid_format, &quot;%u@pi.local&quot;}<br />&nbsp; ]},<br />&nbsp; {mod_stats,&nbsp;&nbsp;&nbsp; []},<br />&nbsp; {mod_time,&nbsp;&nbsp;&nbsp;&nbsp; []},<br />&nbsp; {mod_vcard_ldap,&nbsp;&nbsp;&nbsp; [<br />&nbsp;&nbsp;&nbsp; {matches, infinity},<br />&nbsp;&nbsp;&nbsp; {ldap_vcard_map, [<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;NICKNAME&quot;, &quot;%s&quot;, [&quot;displayName&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;GIVEN&quot;, &quot;%s&quot;, [&quot;givenName&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;MIDDLE&quot;, &quot;%s&quot;, [&quot;initials&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;FAMILY&quot;, &quot;%s&quot;, [&quot;sn&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;FN&quot;, &quot;%s&quot;, [&quot;displayName&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;EMAIL&quot;, &quot;%s&quot;, [&quot;mail&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;ORGNAME&quot;, &quot;%s&quot;, [&quot;company&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;ORGUNIT&quot;, &quot;%s&quot;, [&quot;department&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;CTRY&quot;, &quot;%s&quot;, [&quot;c&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;LOCALITY&quot;, &quot;%s&quot;, [&quot;l&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;STREET&quot;, &quot;%s&quot;, [&quot;streetAddress&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;REGION&quot;, &quot;%s&quot;, [&quot;st&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;PCODE&quot;, &quot;%s&quot;, [&quot;postalCode&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;TITLE&quot;, &quot;%s&quot;, [&quot;title&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;DESC&quot;, &quot;%s&quot;, [&quot;description&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;TEL&quot;, &quot;%s&quot;, [&quot;telephoneNumber&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;BDAY&quot;, &quot;%s&quot;, [&quot;birthDate&quot;]},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;PHOTO&quot;, &quot;%s&quot;, [&quot;jpegPhoto&quot;]}<br />&nbsp;&nbsp;&nbsp; ]},<br />&nbsp;&nbsp;&nbsp; {ldap_search_fields, [<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;Name&quot;, &quot;givenName&quot;},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;Family Name&quot;, &quot;sn&quot;},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;Department&quot;, &quot;department&quot;}<br />&nbsp;&nbsp;&nbsp; ]},<br />&nbsp;&nbsp;&nbsp; {ldap_search_reported, [<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;Full Name&quot;, &quot;FN&quot;},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;Department&quot;, &quot;ORGUNIT&quot;},<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&quot;Phone&quot;, &quot;TEL&quot;}<br />&nbsp;&nbsp;&nbsp; ]}<br />&nbsp; ]},<br />&nbsp; {mod_version,&nbsp; []}<br /> ]}.</code></div> </p><p>Настройка mod_shared_roster_ldap нестандартная, поскольку я использую изменённый модуль. Всё остальное - из коробки. Кодировка UTF8 без BOM.</p> Wed, 18 Jan 2012 22:39:34 +0000 mikekaganski comment 58258 at https://www.ejabberd.im