Прошу прощения за возможно глупый вопрос, но искал информацию весь день, так и не нашел.
Установил в сети сервер ejabberd настроил, все работает. В роли клиентов использовать планирую миранду.
Вопрос в следующем... Как можно прописать в ростер контакт, "Отправить всем в онлайне" (ну и вообще какие еще варианты возможны)
Похожая тебя была тут http://www.ejabberd.im/node/5167
Но к сожалению строка myhost.local\announce\online в любых вариациях не работает.
Прошу вас подсказать как выполнить поставленную задачу или подсказать в каком направлении искать. Гугл бессилен оказался.
Правильно -
Правильно - myhost.local/announce/online.
Нужно, чтобы был включён mod_announce.
Ну, и проверьте, что лицо, отправляющее сообщение этому "контакту", имеет соответствующие разрешения.
Кстати, именно для Миранды я сделалплагин , чтобы такие объявления отображались не в окне бесед, а только как всплывающие сообщения (если установлен плагин PopUp) или в MessageBox при его отсутствии.
И, кстати, насчёт поиска. Поиск в официальной документации по ежу, доступной с главной страницы (ссылкаGuide ), слова "announce", даёт 28 результатов, все из которых имеют отношение к вопросу.
Либо лыжи не едут либо я
Либо лыжи не едут либо я ...
Благодарю за помощь, теперь хоть есть куда читать..
Тем не менее проблемы это не решило.
Вот что в логе миранды.
<message type="chat" to="myhost.local\announce\online" id="mir_26">
<body>Проверка</body>
</message>
<message from="myhost.local\announce\online" to="Nixx@192.168.1.101/Miranda" type="error" xml:lang="ru" id="mir_26">
<body>Проверка</body>
<error code="404" type="cancel">
<remote-server-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
</error>
</message>
Вот фрагмент конфига, где я вроде как включаю модуль.
%%% =======
%%% MODULES
%%
%% Modules enabled in all ejabberd virtual hosts.
%%
{modules,
[
{mod_adhoc, []},
{mod_announce, [{access, announce}]}, % requires mod_adhoc
{mod_caps, []},
{mod_configure,[]}, % requires mod_adhoc
{mod_admin_extra, []},
{mod_disco, []},
%%{mod_echo, [{host, "echo.localhost"}]},
А вот фрагмент про права...
%% Only admins can send announcement messages:
{access, announce, [{allow, admin}]}.
%% Admin user
{acl, admin, {user, "Nixx", "192.168.1.101"}}.
%% Hostname
{hosts, ["192.168.1.101"]}.
Единственное, что я не стал делать, так это придумывать имя хосту и обращаюсь напрямую через IP. Возможно проблема с этим?
Кстати, анонсы через службы миранды работают, но шлются другими путями... Вот лог..
<iq type="set" to="192.168.1.101" id="mir_2361432">
<command xmlns="http://jabber.org/protocol/commands" sessionid="2012-04-04T09:52:02.535434Z" node="http://jabber.org/protocol/admin#announce">
<x xmlns="jabber:x:data" type="submit">
<field var="FORM_TYPE">
<value>http://jabber.org/protocol/admin</value>
</field>
<field var="subject">
<value>Тема</value>
</field>
<field var="body">
<value>Тело сообщения</value>
</field>
</x>
</command>
</iq>
<iq from="192.168.1.101" to="Nixx@192.168.1.101/Miranda" id="mir_2361432" type="result">
<command xmlns="http://jabber.org/protocol/commands" sessionid="2012-04-04T09:52:02.535434Z" node="http://jabber.org/protocol/admin#announce" status="completed" />
</iq>
<message from="192.168.1.101" to="nixx@192.168.1.101/Miranda" type="normal">
<subject>Тема</subject>
<body>Тело сообщения</body>
</message>
Просто необходимо начальству сделать простой способ отправки массовых сообщений. Не смогу объяснить, как это через сервисы делать. Пока что доступ к анонсам только у меня. Как пользователей добавить я вроде как сообразил.
Ну и до кучи..
Попробовал следующие строки..
myhost.local\announce\online -результат выше
192.168.1.101.local\announce\online -аналогично
192.168.1.101\announce\online -аналогично
server\announce\online -аналогично (server это host имя машины)
myhost.local/announce/online -так в мануалах. при заполнении ростера все сносится после первого слеша. Ну и результат естественно аналогичен..
Как выяснилось проблема в
Как выяснилось проблема в том, что нельзя прописывать этот контакт в общие группы контактов на сервере.
Только в персональный лист. Печально, конечно, но видимо не судьба.
А Вы не пробовали добавить
А Вы не пробовали добавить этот контакт не через вебморду, а с помощью ejabberdctl (при наличии mod_admin_extra)?
1. Слеши только прямые
1. Слеши только прямые (/).
2. Чтобы в Миранде добавить такой контакт, нужно, чтобы не было контакта "просто_имя_сервера". Вызывается окно поиска/добавления контакта, в верхней строке (JID) вводится полное имя (имя_сервера/announce/online) и жмётся Поиск -> Добавить (ну, как-то так, по памяти).
3. Имя сервера - очень принципиальная вещь. Если в конфиге ежа hosts задан только как ip, то и обращаться надо как ip/announce/online. Естественно, что адрес "myhost.local/announce/online" работал у человека только потому, что в его конфиге было "{hosts, ["myhost.local"]}." Вам нужно писать на адрес "192.168.1.101/announce/online".
Благодарю. Хост переименовал
Благодарю. Хост переименовал полностью в "server" теперь путаницы стало меньше.
Как добавить этот контакт в локальный список контактов я уже понял. Я изначально хотел его прописать через группы общих контактов. Ибо начальников на меня одного многовато. Хотел всем все сразу прописать. Но я так понимаю такой вариант не канает..
Интересные у Вас
Интересные у Вас начальники... Вот ещё мой директор стал бы писать объявление! Он эту почётную миссию возлагает на секретаря... Ну, это так, улыбнуло.
По группам - Вы совершенно правы. Прямой слеш - разделитель 'bare jid' и 'resource' в jid'е. И в ростере ресурсы ни к чему, поэтому они автоматом обрезаются при вводе. Ан вот оно как - есть "специальные" jid'ы... Но это вопрос к разработчикам - я бы посоветовал Вам написать bug report. Если никто их не оповещает о наличии проблемы - как будут фикситься баги?
Удачи.
Я бы написал репорт, но к
Я бы написал репорт, но к сожалению не слишком сильно разбираюсь в структуре системы. Да и не знаю куда писать. Если вас не затруднит, не могли бы вы сами исполнить эту ответственную задачу? Я думаю не я один додумался до такой конфигурации..
Премного благодарен всем ответившим, хотя как оно зачастую бывает спрашивал не то что хотел.