воскресенье, 14 июля 2013 г.

Openfire. Централизованное добавление контактов, учитывая s2s между LDAP и обычным сервером.

Скажу сразу "централизованное" это громко сказано, но это было лучшее решение которое я нашел для себя. Начну с описания:

Есть два сервера Openfire:

1. Сервер с интеграцией Active Directory для своей корпорации
  my_server.com (10.10.10.1) 
2. Сервер со встроенное базой пользователей
  your_server.com (10.10.10.2)

Как IM клиенты используем Spark.
Оба сервера имеют встроенную базу данных (embedded) 


s2s (server 2 server) настроен, как рассказывать не буду , есть куча мануалов. Ростер настроен, новые пользователи  clients.your_server.com автоматически видят группу тех поддержки с  my_server.com.  Но всегда видят нас offline, даже когда мы в сети. Мы же их группу вообще не видим. А все изза неудобства работы openfire с s2s при участии LDAP, ведь в web-интерфейсе my_server.com я не могу добавить удаленных пользователей т.к это Active Directory.

Установка плагина Subscription не помогла, но я советую все равно его установить.

Итак проблема вкратце: Клиенты видят меня, но offline, я же их вообще не вижу. Решение нашел в редактировании базы вручную. Для этого создаю в спарке пустую группу с названием фирмы которую хочу добавить, например MyGroup (Spark не закрываем). Затем заходим на сервер my_server.com  находим файл /opt/openfire/embedded-db/openfire.script и редактируем его следующим образом:

Находим следующие строки - INSERT INTO OFROSTER VALUES и добавляем нужные


422,423,... – любое число, которое ещё не повторялось (для удобства пишу подряд)
user1 – имя пользователя, которому нужно добавить контакт.
user2@your_server.com – имя пользователя, которого нужно добавить.
3 – значение, которое делает контакты видимыми друг для друга. (если вручную добавлять контакты в спарке, то по умолчанию там стоит 1, поэтому мы все время оффлайн для клиентов)
User2 – имя, которое отображается в нашем списке контактов для пользователя user2@your_server.com.

Пользователи добавлены, теперь привяжем их к группе. Находим INSERT INTO OFROSTERGROUPS VALUES и добавляем нужные (помним что Spark должен быть открыт под пользователем, которому добавляем контакты с созданной заранее пустой группой)



422,423,... – номер должен соответствовать номеру пользователя, который должен быть в этой группе.
MyGroup – название группы, которую мы создалее ранее.

Чтобы изменения вступили в силу перезагружаем OPENFIRE на  my_server.com
/etc/init.d/openfire restart

Делать нужно осторожно, иначе сервер просто не запустится.

1 комментарий: