4 января 2012 г.
xmpphp грузит проц
Обсуждение на официальной странице: http://code.google.com/p/xmpphp/issues/detail?id=51
Проблема решилась после применения патча cpu.diff, предложенного одним из пользователей.
15 января 2011 г.
PyICQt - транспорт ICQ в ejabberd
Я уже рассказывал, как установить jabber-сервер ejabberd. Теперь попробуем прикрутить к нему ICQ-транспорт, чтобы общаться с пользователями аськи из своего джаббер-клиента.
Прикручивать будем icq-транспорт PyICQt.
Установка транспорта
Для начала скачаем и распакуем PyICQt:
cd /opt wget http://pyicqt.googlecode.com/files/pyicqt-0.8.1.1.tar.gz tar -xzvf pyicqt-0.8.1.1.tar.gz ln -s pyicqt-0.8.1.1 pyicqt
Зависимости: (см. файл /opt/pyicqt/INSTALL)
— Python (>= 2.2.0)
— Twisted (www.twistedmatrix.com)
— optional: epoll (>= 0.4)
Установка зависимостей
В системе должны быть установлены Python (>= 2.2.0) и написанный на нем фреймворк Twisted.
Установка:
Для Fedora: sudo yum install python-twisted
Для Ubuntu: sudo apt-get install python-twisted
Настройка взаимодействия PyICQt и ejabberd
В секцию «listen» файла ejabberd.cfg (допустим, в ее начало) добавляем cтрочку:
{5347, ejabberd_service, [{host, "icq.test.ru", [{password, "secret"}]}]},
Создаем файл /opt/pyicqt/config.xml с таким содержимым:
<pyicqt> <jid>icq.test.ru</jid> <spooldir>./spool</spooldir> <pid>./pyicqt.pid</pid> <mainServer>test.ru</mainServer> <mainServerJID>test.ru</mainServerJID> <port>5347</port> <secret>secret</secret> <encoding>cp1251</encoding> <icqServer>login.icq.com</icqServer> <icqPort>443</icqPort> <admins> <jid>admin@test.ru</jid> </admins> <disableAvatars/> <reactor>epoll</reactor> <usemd5auth/> </pyicqt>
Перезапускаем ejabberd и стартуем транспорт:
ejabberdctl restart
python /opt/pyicqt/PyICQt.py > /opt/pyicqt/log 2>&1 &
На всякий случай можно посмотреть, стартовал ли процесс и все ли чисто в логе:
cat /opt/pyicqt/log
ps ax |grep py
Это все!
Теперь можно в вашем любимом клиенте сделать «Service Discovery», опросить сервер test.ru, найти icq.test.ru и зарегистрироваться с указанием UIN и пароля.
P.S. Мой сервер не смог соединиться с icq-сервером по доменному имени, поэтому в /opt/pyicqt/config.xml в директиве icqServer я тупо указал IP-адрес сервера login.icq.com:
<icqServer>64.12.202.116</icqServer>
Хабрахабр: Установка Ejabberd + PyICQt в Linux
OpenNET: Установка ejabberd и транспорта в icq-сеть. Руководство к действию.
7 января 2011 г.
Jabber-сервер ejabberd под Ubuntu
Компьютер под управлением Ubuntu 10.10. Пробуем установить Jabber-сервер.
Ставить будем сервер ejabberd.
Устанавливаем пакет ejabberd из репозитария:
apt-get install ejabberd
Редактируем конфиг сервера - /etc/ejabberd/ejabberd.cfg.
Указанный пользователь будет записан в администраторы сервера:
{acl, admin, {user, "andrew" }}.
Хост, на котором будет работать сервер:
{host, "test.ru"}.
Ejabberd с версии 0.9 поддерживает виртуальный хостинг, так что хостов может быть много. Если нужно поддерживать несколько хостов, используйте опцию hosts.
Язык, на котором будут выдаваться сообщения сервера:
{language, "ru"}.
Проверяем, чтобы нужные порты были открыты:
[{5222, ejabberd_c2s, [{access, c2s}, % это соединение клиент-сервер, достаточно для организации нешифрованных соединений. {5269, ejabberd_s2s_in, % соединение сервер-сервер, для общения с клиентами других серверов. {5280, ejabberd_http, % веб-интерфейс
Чтобы разрешить пользователям самостоятельно регистрироваться в системе, находим строчку
{access, register, [{deny, all}]}.
и меняем deny на allow
{access, register, [{allow, all}]}.
Пробуем перезапустить (или запустить) сервер.
/etc/init.d/ejabberd restart
Смотрим лог /var/log/ejabberd/ejabberd.log (возможно, /var/log/ejabberd/sasl.log).
Если всё нормально, регистрируем пользователей.
ejabberctl Usage: ejabberdctl node command command: ... register user server password -- register a user ...
Регистрируем пользователя, которого указали как админа (andrew).
ejabberdctl register andrew test.ru password
Заходим браузером по адресу http://localhost:5280/admin, вводим полный JID администратора (andrew@test.ru) и пароль и администрируем.
Для Windows есть простой jabber-клиент jajc, под Ubuntu можно использовать Empathy, для мобильников есть клиент Bombus.
Ссылки по теме:
Обсуждение на русскоязычном форуме Ubuntu
Подробная инструкция на lissyara.su: ejabberd + mysql + icq transport
Установка ejabberd на Gentoo Linux
Записки старого сисадмина: если не получается зарегистрировать администратора
Установка и настройка сервера jabberd