понедельник, 18 февраля 2013 г.

Корпоративный чат на openfire.

На новом месте работы использовалась специализированная программа для общения между сотрудниками - чат Commfort. Элементарные настройки, работа под wine, удобное администрирование и интерфейс клиента. Все хорошо, но нужна лицензия на сервер, цена вопроса - 24000р. Не много конечно, но учитывая скрип, с которым начальство дает денег - увы и ах. Гугл по запросу "корпоративный чат linux" выдал практически единственное решение - jabber-сервер Openfire. Берем, тем более что у меня используется в качестве АТС платформа Elastix, в которую openfire уже всторен.
Собственно, сама настройка openfire довольно тривиальна, да к тому же разжевана десятки раз :
http://alphone.ru/doc/im/openfire-in-elastix/
http://adminsk.ru/Administratoru/Lokaljnyi-IM-server-OpenFire.html
http://sgww.livejournal.com/9763.html
http://doc.3dn.ru/publ/15-1-0-27

Остановлюсь на основных для меня моментах.
1. Имя сервера (оно же - имя jabber-домена).
Рекомендую сразу же ставить то, которое потом будет прописываться на клиентах. Хотя в статьях упоминается возможность изменения имени впоследствии, у меня любое его редактирование приводило не только к невозможности подключения клиентов, но и к недоступности веб-интерфеса (кажется администраторские права привязываются к домену и после его изменения пользователи старого не могут подключиться к новому). Разбираться не стал, перенастраивать было лень, поэтому просто вернул старое имя сервера редактированием конфигурационных файлов.
2. Настройка общего чата или комнаты(конференции), как это называется в openfire.
Совместные чаты здесь реализованы на манер irc каналов. Долгое время не мог разобраться с совместным доступом к комнате по умолчанию - то повторная авторизация требуется, то клиент с правами гостя заходит и еще всякое разное. А мне нужно чтобы у клиента при входе в программу автоматически окно конференции открывалось, а собственно сам джаббер пока им постольку-поскольку (привыкли к старому чату). В итоге заработало с такими настройками:

 
Но и это еще не все. Не знаю почему, но у меня общий чат нормально заработал только после дублирования этих настроек следующим способом.
Переходим по ссылке Групповой чат - Комната администратора (настраивал в русском интерфейсе, поэтому немного корявые названия, к тому же некоторые объекты  имеют два и более названия). В списке выбираем нужную комнату:

 Далее переходим по ссылке в названии комнаты для ее редактирования:
Здесь дублируются свойства комнаты. У меня выставлено так:

3. База пользователей в ldap
У меня все учетные записи пользователей хранятся на сервере ldap под управлением opensuse 12.2. Вести отдельную базу для чата не вижу смысла, да и неудобно это, хлопотно. Идем Сервер - Настройки сервера - Настройки профиля и указываем там данные сервера ldap.





Далее идем Пользовтели/Группы - Группы и выбираем там группу ldap, членами которой являются все пользователи jabber (можно создать на сервере ldap специальную, но мне было лень):



Дальше выставляем настройки таким образом, чтобы все пользователи данной группы отображались в контакт-листе jabber-клиента:

4. Настройки клиента.
Так как я заядлый "кедераст" в качестве клиента выбрал psi В качестве логина и пароля вводим данные пользователя ldap, в домене указываем имя сервера, прописанное в openfire:
Получаем общий контакт лист:


Для автоматического подключения общего чата нужно правой кнопкой щелкнутьна названии нашего сервера в родстере и выбрать  Управление - Закладки и добавить там данные нашей комнаты:
С указанными на сервере настройками (см. выше) в комнату может входить любой авторизованный на сервере пользователь. При этом в поле Ник вовсе не обязательно указывать логин пользователя, гораздо удобнее написать там реальное имя. Также можно указать опцию Автологин. Она нужна для автоматического входа в конференцию при запуске программы:
Вот и все. Чат работает.



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

Отправить комментарий