← All posts tagged Jabber

Волшебные моменты появляются при заведении google apps для домена. Если на хосте уже живёт jabber-демон какой-либо, например, ejabberd, то после подключения google apps контакты c gmail.com будут недоступны. Всё потому, что при подключении почты для домена из комплекта google apps автоматически подключается и так называемый "Чат", что, по сути своей, jabber-сервер, который обслуживается google. Таким образом, google talk контакты видят, что домен обслуживается посредством google talk, а запросы на коннекты от этого же домена идут с совершенно неизвестных им IP.

Решается проблема элементарно: в панели управления google apps для нужного домена отключается "Чат". Через порядка получасу перезапуск ejabberd вылечивает все gmail.com контакты.

Ввиду быстро покинувших этот мир ns jrudevels.org, решил отказаться от сторонних сервисов в пользу уже установленного spectrum для транспортов.

В итоге минимальный конфиг для g2j на базе spectrum:

[service]
enable=1
protocol=xmpp
server=127.0.0.1
use_proxy=0
jid=$protocol.freefd.info
password=secret
port=5556
config_interface = /var/run/spectrum/$jid.sock
admins=fd@freefd.info
filetransfer_cache=/var/lib/spectrum/filetransfer_cache
name=GTalk Transport
language=ru
vip_mode=0
only_for_vip=0
pid_file=/var/run/spectrum/$jid.pid

[registration]
enable_public_registration=0

[features]
avatars=1
chatstates=1
statistics=1

[vip-features]

[logging]
log_file=/var/log/spectrum/$jid.log
log_areas=xml;purple

[database]
type=sqlite
database=/var/lib/spectrum/$jid/database.sqlite

[purple]
userdir=/var/lib/spectrum/$jid/userdir
connect_server=talk.google.com

После регистрации транспорта на gmail аккаунт необходимо в его настройках отметить чекбокс "уведомлять о почте", ради чего, это, собственно, и затевалось.

fd@workstation:~$ host jrudevels.org
;; connection timed out; no servers could be reached

но при этом

Domain Name:JRUDEVELS.ORG
Created On:14-Jan-2005 14:15:03 UTC
Last Updated On:28-Mar-2011 15:32:24 UTC
Expiration Date:14-Jan-2015 14:15:03 UTC

Господа, я правильно понимаю, что jrudevels таки тихонечко сдохло?

Руководитель юридического сектора внезапно попросила создать для её менеджеров закрытую конференцию на корпоративном джаббер-сервере. На вопрос "а как же ваши любимые msn/icq/skype?" прозвучало неожиданное "неудобно".
Ребята, кажется, это победа.

Как говорится, "ёбаный стыд", сижу патчу Net::XMPP::Connection от бага 4-летней давности о невозможности резолвить srv записи _xmpp-client._tcp. И это при

fd@workstation:~$ perl -V:version
version='5.12.3';
fd@workstation:~$ perl -MNet::XMPP -e 'print $Net::XMPP::VERSION'; echo
1.02

Интересно было бы знать каким образом jabber.ru снимает через cacti данные о количестве сессий, графики stats.jabber.ru
Я пока лишь вижу решение добавлением custom oid к snmpd, оный по exec запускает скрипт, которые посылает станзу

<iq type="get" to="server.tld" id="aed4a">
<query xmlns="http://jabber.org/protocol/disco#items" node="online users"/>
</iq>

серверу, и возвращает количество items. Ну а далее обычно добавляем custom oid в cacti и рисуем графики.
Минусы — костыльность, необходимость наличия администраторских прав на jabber-сервере у аккаунта для скрипта. А вот вдруг есть более простое решение?

порой загадочное "unhandled callback exception on event (error, AnyEvent::XMPP::Client=HASH(0x93e9ca8), AnyEvent::XMPP::IM::Account=HASH(0x93e9e78) AnyEvent::XMPP::Error::Exception=HASH(0x9d64de8)): send_message: Couldn't get connected account for sending at /usr/local/share/perl/5.10.1/AnyEvent/XMPP/Client.pm line 345." на самом деле говорит лишь о банальной недостаче Net::SSLeay.

strace творит чудеса!

как показали сегодня исследования в среде ejabberd+ad+shared roster, работа jabber-клиентов в виде корпоративного voip/video-call клиента крайне под вопросом. из опробованых были

psimedia/psi+ linux/windows
pidgin linux/windows
gajim windows
qip windows
empathy linux

все последних stable версий. исключаю psi-plus, оно вечное dev.
результаты тестов закончились плачевно:

psi+ (windows) -> pidgin (linux) = success
pidgin (linux) -> psi+ (windows) = fail (виню NAT)
pidgin (windows) -> pidgin (linux) = fail (на win-платформе не нашёл возможностей voip)
qip (windows) -> pidgin (linux) = ? (звонок приходит, звука нет. звонящая сторона не видит поднятия трубки)
empathy (linux) -> pidgin (linux) = success
gajim (windows) -> pidgin (linux) = fail (на win-платформе не нашёл возможностей voip)

завтра, видимо, будет продолжение вариаций, попытка видео была у empathy, толку ноль.

самое время похвалить ребят. на данный момент, как мне кажется, они сделали довольно большую работу. про код и оптимизацию пока лучше промолчать :)
@maj, @ivan101, @zet, @VampiRUS, @rion, @Disabler, @Dealer-WeARE, @tux-den cпасибо вам всем.
если кого забыл, крайне извиняюсь, но всех помнит code.google.com ;)

openfire || ejabberd || prosody
задачи: развернуться из коробки, отсутствие геморроя с настройкой/дебагом, быть стабильным, не жрать cpu, памяти до 512 Mb, виртуальные домены. Варианты?

только хотел написать пост про "раз никото практически не пользуется point@freefd.info, как все кричали до, то выключу его нафек" и тут внезапно habrahabr.ru -> ctrl+f -> freefd.info от товарища @bighouse. теперь даже и не знаю, как-то некорректно с моей стороны теперь было бы его удалять...