Добавление jabber-транспорта J2J к jabber-серверу на базе ejabberd

()

Мы уже писали про добавление ICQ-транспорта к jabber-серверу на базе ejabberd, однако, jabber-транспорты не заканчиваются на транспорте для протокола ICQ, есть и другие, не менее интересные, среди них - J2J, который позволяет подключить к имеющийся учётной записи jabber ещё одну, имеет поддержку GMail, автоответчик, импорт ростера и другие интересные функции.

Далее будет показано, как добавить J2J-транспорт к jabber-серверу на базе ejabberd и работающего под управлением Ubuntu Server 9.04.

Для начала установим необходимые пакеты:

apt-get install subversion mysql-server python-twisted python-mysqldb

Затем получим последнюю версию транспорта из SVN:

svn co https://svn.jrudevels.org/j2j/trunk /root/j2j/

Создадим директорию для логов:

mkdir -p /var/log/j2j

Создадим в MySQL базу "j2j" и пользователя "j2j" с паролем "secret":

mysql -u root -p -e 'CREATE DATABASE `j2j`;'
mysql -u root -p -e 'GRANT ALL PRIVILEGES ON `j2j`.* TO "j2j"@"localhost" IDENTIFIED BY "secret";'

Далее загрузим в базу данные из файла /root/j2j/mysql.schema:

cat /root/j2j/mysql.schema | mysql -u root -p j2j

Далее добавим в секцию "listen" файл /etc/ejabberd/ejabberd.cfg следующие строки:

{8883, ejabberd_service, [
                {ip, {127, 0, 0, 1}},
                {access, all},
                {shaper_rule, fast},
                {hosts, "j2j.our_firm.com", [{password, "secret"}]}
        ]},

Здесь мы предполагаем, что для взаимодействия между транспортом и сервером будет использоваться порт 8883, JID транспорта будет "j2j.our_firm.com" и пароль для связи севера с транспортом "secret". Если у вас другие параметры - внесите соответствующие правки. После внесения правок перезапустим jabber-сервер:

ejabberdctl restart

Далее создадим файл конфигурации /root/j2j/j2j.conf, следующего содержания:

[component]
JID=j2j.our_firm.com
Host=localhost
Port=8883
Password=secret

[process]
Pid=/var/run/j2jt.pid

[database]
Host=localhost
Type=mysql
User=j2j
Name=j2j
Password=secret
Prefix=j2j_

[admins]
List=admin@our_firm.com

[debug]
logfile=/var/log/j2j/j2j.log
registrations=yes
logins=yes

xml_logging=/var/log/j2j/xml.log
component_xml=no
clients_xml=no
clients_jids_to_log=All

Подробное описание опций можно найти в документации. Закончив конфигурирование, запустим транспорт командой:

python /root/j2j/main.py -b -c /root/j2j/j2j.conf

Для автоматического запуска транспорта при старте сервера нужно добавить в файл /etc/rc.local строку:

/usr/bin/python /root/j2j/main.py -b -c /root/j2j/j2j.conf

Об использовании транспорта также можно прочитать в его документации. На этом всё. Приятной работы!

P.S. Отдельное спасибо Фроловой Марии за корректировку статьи.

Ключевые слова: j2j, ejabberd, jabber, транспорт.

Комментарии:

Anonymous 2010-02-15 20:32:24 (#)

Вроде бы надо
{host, "j2j.our_firm.com", [{password, "secret"}]}
или
{hosts, ["j2j.our_firm.com"], [{password, "secret"}]}

MooSE 2010-02-15 23:32:41 (#)

возможно. но это почти полная копипаста из моего конфига и он работает.

Anonymous 2011-01-31 16:34:31 (#)

А нет ли по проще j2j транспорта без MySQL? Просто MySQL на домашнем серваке явно перебор.

MooSE 2011-01-31 23:19:33 (#)

Цитата:

А нет ли по проще j2j транспорта без MySQL? Просто MySQL на домашнем серваке явно перебор.


Вариантов два:
1. Пилить исходники
2. Смотреть в сторону drizzle
Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE