Всё никак не срастётся у меня с XMPP-сервером для внутренних нужд организации.
Ejabberd довольно неплох, но он написан на Erlang и "из коробки" используется Mnesia в качестве базы данных. Всё бы ничего, но если не хватает штатного функционала, поди ж ты ещё догадайся как туда нужный модуль вкорячить. Да и отлаживать тяжко, когда что-то идёт не так. Другими словами, к нему должен в обязательном порядке прилагаться специалист по ErLang-у.
OpenFire из всех, пожалуй, самый User-Friendly. Развесистый функционал, красивый GUI, много разных модулей. У него две беды: жрёт много ресурсов и болт хотел класть на RFC. Если с первым ещё как-то можно мириться, то вот со вторым совсем всё печально. Например, Вася посылает Пете сообщение. У Пети начинает мигать значок в трее. Он тыкает на него, но никакого послания от Васи не видит. Закрывает окно, открывает заново и вуаля: вот она, история переписки вместе с последним текстом. Вот так забавно сказывается работа OpenFire, заключающаяся в не совсем корректной сортировке (упорядочиванию) XML-абзацев (stanza).
Решил поэтому повнимательнее посмотреть на Prosody. Написана на Lua, тонко настраиваема, не особо прожорлива, есть куча транспортов. Но тут другая беда: она не умеет хранить историю сообщений на сервере. Точнее, не так. Есть два расширения протокола: XEP-0136 or XEP-0313. Второй работает, но не поддерживается популярными XMPP-клиентами, в том числе и Мирандой. Первый поддерживается много кем, но соответствующий просодевский модуль "валится" и отказывается фунциклировать.
Такие дела. Прям даже и не знаю что делать. И так плохо, и сяк плохо.