По джаберу:
Используйте ejabberd, он на erlang и довольно легко расширяется. При желании можно создать свои схемы и получать любую информацию, в том числе и историю. Решение, конечно, сложное, но интересное. Плюс дает преимущество использовать нативные клиенты.