Есть комп с Ubuntu Server. Из репозитория поставил ejabberd. Настроил авторизацию клиентов на сервере AD - всё заработало. Теперь хочу что бы у всех сотрудников компании в списке контактов были все коллеги, разбитые по группам (отделам).
Бьюсь с mod_shared_roster_ldap уже не первый день, ничего более чем просто вытащить все контакты не получилось. Помогите разобраться с следующими вопросами:
1. С структурой БД ldap я ранее не сталкивался и мне крайне сложно понять как эта штука в принципе всё хранит и какие параметры содержат объекты внутри неё. Подскажите может есть статьи в которых достаточно просто описаны принципы работы ldap.
2. Насколько я понял, весь функционал mod_shared_roster_ldap сводится к тому, что одним фильтром из базы ldap выбираются группы, вторым запросом выгружаются нормальные названия этих групп, пользователи и т.д.
Подскажите есть ли какое-нибудь ПО при помощи которого можно отлаживать эти фильтры? (что-то вроде mysql -p, что б из консоли можно было обращаться в базу)
3. В сети встречал несколько упоминаний о том, что есть какой-то совершенствованный модуль. Но статьи эти трёх или двухлетней давности. Подскажите как понять какая версия модуля установлена у меня?
4. Также встречал записи о том, что скорее всего не получится получать названия групп и всех её пользователей по подразделению (OU= ). Но именно такую схему мне и хотелось бы реализовать. Сейчас в тестовой версии AD созданы несколько пользователе и две группы: jabber-IT и jabber-Accountants. Все пользователи добавлены в свои группы.
Попробовал адаптировать пример под свою конфигурацию. Ничего не работает. Списки пустые.
Код:
{mod_roster, []},
{mod_shared_roster_ldap, [
{ldap_base, "dc=pr-lg, dc=local"},
{ldap_rfilter, "cn=jab*"},
{ldap_groupattr, "cn"},
{ldap_gfilter, "(&(objectClass=group)(cn=%g))"},
{ldap_groupattr, "cn"},
{ldap_groupdesc, "cn"},
{ldap_member_selection_mode, group_children}
]},
Также мне крайне непонятны логи ejabberd. Если оставить уровень логирования error или warning - ничего нет... если включить info - уже много всякого и мне не понять, что он делает.
Пожалуйста помогите разобраться.