Estranho que ninguém tenha mencionado ejabberd.
Estou usando o ejabberd no FreeBSD como sistema de mensagens entre empresas há anos. Escrito em erlang, é adotado para cargas muito altas, não requer JVM (como o Openfire), tem integração com o LDAP, fornece métodos http-bind e http-pool para web-based cometa / clientes ajax e muito mais .
Você pode instalar no FreeBSD a partir de portas via cd /usr/ports/net-im/ejabberd/ && make install clean
Você também pode assistir a um screencast: Configurando um servidor Enterprise Instant Messaging em 180 segundos