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

()

Мы уже писали про добавление ICQ и J2J-транспортов к jabber-серверу на базе ejabberd. Сейчас мы продолжим эту тему и расскажем как добавить MRIM-транспорт, позволяющий пользователям Jabber обмениваться сообщениями с пользователями популярной в России IM-сети Mail.Ru-Агент (MRIM расшифровывается как Mail.Ru Instant Messenger).

Итак добавить MRIM-транспорт к jabber-серверу на базе ejabberd, работающего под управлением Ubuntu Server 9.04 и обслуживающего домен our_firm.com (JID добавляемоего транспорта будет «mrim.our_firm.com»), можно следующим образом:

Шаг первый. Устанавливаем необходимые пакеты:

apt-get install subversion python-profiler python-xmpp

Шаг второй. Получаем последнюю версию транспорта из SVN-репозитория:

svn co https://svn.xmpp.ru/repos/mrim/ /root/mrim

Шаг третий. Создаём директории для хранения логов и данных о пользовательских аккаунтах:

mkdir -p /var/spool/mrim /var/log/mrim

Шаг четвёртый. Открываем в редакторе файл «/etc/ejabberd/ejabberd.cfg» и добавляем в секцию «listen» следующий фрагмент:

  %% MRIM Transport 
  {8884, ejabberd_service, [ 
                  {ip, {127, 0, 0, 1}}, 
                  {access, all}, 
                  {shaper_rule, fast}, 
                  {host, "mrim.our_firm.com", [{password, "VerySecreT"}]} 
          ]},

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

ejabberdctl restart

Шаг пятый. Создаём файл «/root/mrim/mrim.conf» следующего содержания:

[main] 
# JID транспорта:
name = mrim.our_firm.com 
# Пароль для соединения с сервером:
password = VerySecreT
# JID администратора:
admins = admin1@our_firm.com 
# Порт для соединения с сервером:
port = 8884 

[profile] 
# Настройки хранения пользовательских данных
# Пока поддерживается только один тип хранилища — XML:
type = xml 
# Директория для хранения данных
dir = /var/spool/mrim 

[logger] 
# Файл журнала:
logfile = /var/log/mrim/mrim.log 
# Уровень отладки:
loglevel = info 

Подробное описание опций файла конфигурации можно найти в файлах «INSTALL» и «mrim.conf.example» в дистрибутиве транспорта.

Запустим транспорт командой:

/usr/bin/python /root/mrim/src/mrim.py -c /root/mrim/mrim.conf -d

Здесь ключ «-c» указывает на используемый файл конфигурации, а ключ «-d» говорит о необходимости запуска в фоновом режиме. Чтобы транспорт запускался автоматически при старте системы, нужно добавить это команду в файл «/etc/rc.local».

На этом всё! Теперь вы, запустив ваш jabber-клиент, подключившись к серверу, выбрав в меню обзор сервисов и найдя в нём MRIM, сможете зарегистрироваться на нём, используя вашу учётную запись Mail.Ru, после чего начинайте общаться с пользователями Mail.Ru Агента.

Приятной вам работы!

Корректор: Регина Васильева (reggi86@mail.ru)

Ключевые слова: ejabberd, mrim, mra, mail.ru agent, mail.ru агент, jabber, ubuntu.

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

Anonymous 2009-10-20 14:34:07 (#)

Успешно поднялось во FreeBSD-6.3-STABLE на jabberd2. Из портов было собрано py25-xmpppy-0.4.1 (/usr/ports/net-im). Необъяснимые глюки с нежеланием отображать в онлайне авторизованные контакты рассосались сами по-себе.

p.s. Очень жаль, что проект более не поддерживается.

morbo 2010-08-12 13:21:07 (#)

>p.s. Очень жаль, что проект более не поддерживается.

Судя по чейнджлогу, проект всё-таки поддерживается. Собрал deb-пакет для себя, настроил - всё работает.

MooSE 2010-08-12 13:47:55 (#)

За последние несколько лет было сделано всего несколько коммитов, исправляющих мелкие ошибки:)

oermolaev 2013-01-16 16:43:43 (#)

Как я и думал - ничего у меня не получилось. В логах:
/usr/lib/python2.6/dist-packages/xmpp/auth.py:24: DeprecationWarning: the sha module is deprecated; use the hashlib module instead
  import sha,base64,random,dispatcher,re
/usr/lib/python2.6/dist-packages/xmpp/auth.py:26: DeprecationWarning: the md5 module is deprecated; use hashlib instead
  import md5
Traceback (most recent call last):
  File "/root/mrim/src/mrim.py", line 54, in <module>
    import init
RuntimeError: not holding the import lock

Что то тут "устарело"
У меня debian 6.0

MooSE 2013-01-19 03:55:37 (#)

Цитата:


Что то тут "устарело"
У меня debian 6.0


Попробуй без ключа "-d". У меня последний раз нормально работало на 2.5. Но на 2.6 и выше запускается если обходится без "-d", а в фон отправлять запустив с амперсандом.

oermolaev 2013-01-24 10:32:33 (#)

Спасибо! Но наверное уже не проверю - отказался от затеи с mail.ru

MooSE 2013-01-24 14:11:30 (#)

Цитата:

Спасибо! Но наверное уже не проверю - отказался от затеи с mail.ru

Тебе сам транспорт нужен или именно агентом из под линукса пользоваться? Могу своим транспортом поделиться:)

oermolaev 2013-01-29 09:27:20 (#)

Транспорт есть и на jabber.ru, спасибо.
Я думал приделать транспорт к корпоративному jabber-серверу, но потерял в этом смысл.

MooSE 2013-01-31 03:32:00 (#)

Цитата:

Транспорт есть и на jabber.ru, спасибо.
Я думал приделать транспорт к корпоративному jabber-серверу, но потерял в этом смысл.


ИМХО на корпоративном сервере лучше вообще транспортов не держать:)
Новый комментарий



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