Мы уже писали про добавление 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. Отдельное спасибо Фроловой Марии за корректировку статьи.
Anonymous 2010-02-15 20:32:24 (#)
{host, "j2j.our_firm.com", [{password, "secret"}]}
или
{hosts, ["j2j.our_firm.com"], [{password, "secret"}]}