Instalação e configuração de um servidor Jabber com Openfire e MySQL. Integração do Openfire com o MySQL, dois clientes locais e um cliente web, gerar logs de todas as conversas, integração do Openfire com o cliente MSN, como efetuar a configuração dos clientes Spark e Pidgin.
Neste artigo tratarei de como instalar e configurar um servidor Jabber Openfire com o MySQL.
Definição do Jabber pelo Wikipédia:
Jabber é um protocolo aberto, com bases XML, para sistemas de mensagens instantâneas. Softwares com base Jabber são distribuídos em milhares de servidores através da internet, e usados por cerca de dez milhões de pessoas em todo mundo, de acordo com a Fundação Jabber Software.
Jeremie Miller iniciou o projecto em 1988; a principal versão pública ocorreu em Maio de 2000. O produto principal do projecto é o jabberd, um servidor em que os clientes Jabber se ligam para comunicar. Este servidor pode criar uma rede privada Jabber (por detrás de um firewall, por exemplo) ou pode se juntar à rede Jabber global e pública.
Um conceito chave do sistema Jabber são os transportes, também conhecido como gateways, que permite aos utilizadores acederem a redes usando outros protocolos - tais como o AIM, o ICQ (usando o OSCAR), MSN Messenger e Windows Messenger (usando o .NET Messenger Service), SMS ou E-mail. Ao contrário dos clientes de multiprotocolo, como o Trillian ou Gaim, Jabber fornece este acesso no nível de servidor comunicando via serviços especiais de gateway em um computador remoto. Qualquer utilizador Jabber pode se registrar com uma destas gateways fornecendo a informação necessária para aceder a essa rede, e pode então comunicar-se com os utilizadores dessa rede como se fossem utilizadores de Jabber. Isto significa que qualquer cliente que suportar inteiramente o protocolo Jabber pode ser usado para aceder a qualquer rede em que exista uma gateway, sem necessitar de código extra no cliente.
As bases do protocolo Jabber, agora administrado pela fundação Jabber Software, foram aceitas pela IETF como padrão sob o nome XMPP, com RFC número 3920. É frequentemente considerado como estando na competição com o SIMPLE, baseado no protocolo do SIP, como protocolo padrão da notificação de presença e de instant messaging; no entanto, o design do XMPP tem por finalidade fornecer uma plataforma de interface mais geral entre aplicações.
[2] Comentário enviado por nislid em 22/08/2009 - 02:45h
Douglashx, fiz exatamente como orientado... mas na hora de autenticar o openfire com o user admin eu nao acesso... da erro na senha... instalei 2x e ocorre o mesmo erro.. poderia me ajudar a terminar de instalar?
[3] Comentário enviado por scherer89 em 22/08/2009 - 09:48h
Quando está tudo pronto, na tela do console admin e senha correta não autentica. Foi o que aconteceu comigo, minha solução:
faltava o java driver para o mysql. Então:
[6] Comentário enviado por gregh em 23/08/2009 - 14:06h
Ok, testado e funcionando.
Agora me surgiu um pequeno problema, quando reinicio o micro, o http://localhost:9090 nao se ativa sozinho, ou seja, penso que o daemon
nao esta carregando automaticamente com o sistema.
Toda vez preciso digitar o seguinte no console:
root@gregh:/opt# cd /opt/openfire/bin/
root@gregh:/opt/openfire/bin# ./openfire start
Starting openfire
root@gregh:/opt/openfire/bin# nohup: appending output to `nohup.out'
[13] Comentário enviado por feliperossi em 16/10/2009 - 18:13h
Boa noite.
Primeiramente parabens pelo artigo.
instalei ele perfeito. esta funcionando 101%.
so estou com uma duvida ou problema.
nunca tinha trabalhado com jabber.
tenho uma empresa que administro com 6 filiais.
tenho vpn interligando as mesmas.
gostaria de verificar se existe a possibilidade de interligar as mesmas
pelo servidor jabber, para todas se comunicarem.
[15] Comentário enviado por feliperossi em 16/10/2009 - 22:47h
ok perfeito. como tenho um ip fixo vou centralizar o mesmo e disponibilizar via web e openvpn.
agora apareceu um problema.
do nada nao aceita mais o login e senha
admin e senha que estabeleci.
tentei desinstalar e instalar novamente
e nao consigo mais acessar o painel.
[17] Comentário enviado por ramalhoneto em 25/10/2009 - 18:41h
Olá pessoal!
Eu acabei de instalar e na tela do console admin, digito usuário e senha correto e não autentica e não aparece erro nenhum. Instalei o driver libmysql-java e continua do mesmo jeito.
[19] Comentário enviado por ramalhoneto em 26/10/2009 - 13:02h
Olá douglashx,
Obrigado pela ajuda.
É exatamente com o usuário admin que estou tentando. Eu digito o usuário e senha ele retorna para a página de login novamente, e quando digito a senha errada aí me aparece informando que o usuário e senha esta icorreta.
[21] Comentário enviado por doomk em 29/10/2009 - 11:02h
Bom Dia Galera,
Uma dúvida, essa solução necessita de uma máquina potente? como ele precisa de java e banco de dados, estou na dúvida.
Quero fazer em uma maquina virtual, de qto de memória RAM eu precisaria e qto de HD? inicialmente 10 pessoas utilizarão o serviço, mas com certeza esse número aumentará.
[25] Comentário enviado por removido em 22/11/2009 - 11:34h
Ola,
A principio não é para dar nem um erro, se voce já trabalha com vpn para a internet então o jabber vai funcionar normalmente.
Só não te garanto que a porta vai estar habilitada, pois como é um link dinamico de adsl nem todas as portas são disponiveis.
se a porta não estiver disponivel so veja alguma porta que estaja disponivel e faça um NAT no modem ou firewall para o redirecionamento de uma porta habilitada no link para a porta 5222 interna.
[26] Comentário enviado por assuncao.claudio em 25/03/2010 - 15:11h
Parabéns pelo artigo, muito bom mesmo, segui e deu tudo certo.
Queria apenas tirar uma dúvida: o que preciso liberar nesse servidor (iptables) para que o SPARK web fique disponível externamente ?
Esse servidor está dentro da minha rede interna e não é o gateway de internet.
A primeira regra faz o redirecionamento do seu ip externo 200.200.200.200 para o interno 192.168.0.1 e você pode liberar como coloquei no exemplo somente a parte web a porta 80 ou a porta 5222 que é a do openfire mesmo, com isso os clientes do spark conseguem conectar externamente na porta 5222.
Não esqueça de liberar o FORWARD no seu firewall se ele tiver as políticas como DROP.
[28] Comentário enviado por assuncao.claudio em 25/03/2010 - 22:04h
Olá Douglas, obrigado pela ajuda, mas estou com 2 situações em que fiz alguns testes e até agora não resolveu.
O primeiro foi liberar as portas conforme você falou: consigo acessar via web, mas não consigo conectar (se quiser testar tenta acessar http://interno.ldsoft.com.br:3402/sparkweb/). Esse servidor tem IP publico fixo.
A outra situação foi a seguinte: tinha um link do VELOX aqui sobrando, então coloquei outra placa de rede e tentei separar para que a entrada fosse diretamente por um link separado, até porque tenho liberar alguns acessos externos e queria usar o mesmo para não afetar minha internet. Mas como liberar as portas já que o IP é dinâmico ? Tentei alguns comandos mas não obtive sucesso. Não tenho certeza, mas acho que está faltando liberar portas no modem, tentei mas ainda assim não funciona.
Sem querer abusar da sua boa vontade, fico grato se puder ajudar.
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:209)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:154)
at org.logicalcobwebs.proxool.DefaultConnectionBuilder.buildConnection(DefaultConnectionBuilder.java:39)
at org.logicalcobwebs.proxool.Prototyper.buildConnection(Prototyper.java:159)
at org.logicalcobwebs.proxool.Prototyper.sweep(Prototyper.java:102)
at org.logicalcobwebs.proxool.PrototyperThread.run(PrototyperThread.java:44)
[30] Comentário enviado por SPH em 16/08/2010 - 22:04h
Meu Passo a Passo exatamente como deve ser, so tive um pt no instalar o java6 la mas acertei colocando os repositorios non-free no sources.list daew fico show....Otima tuto pap ou seja la como vc chama me ajudo pra caramba. na prefeitura foi show
[31] Comentário enviado por rodrigo.pereira em 18/04/2011 - 16:27h
Olá pessoal, gostaria de saber porque o meu sparkweb não está aceitando o usuário e senha que eu coloco.... no momento que clico no botão para acessar, a tela carrega e quando terminar o mesmo volta para a tela de login, alguém poderia me ajudar ? grande abraço ...
[32] Comentário enviado por israelsoares em 16/03/2012 - 13:46h
Prezado Douglas Q. dos Santos ;
Artigo perfeito, só qua na integração com msn, eu não consigo ver os meus contatos. o contato logado no msn consegue me enchergar e me chamar para uma conversa, mais eu não os vejo.
Outra coisa, favor informar forma de fazer backup do banco de dados para que não tenhamos que refazer tudo caso haja algum problema com o servidor.
Obrigado.
Abraços.
Israel Soares
[33] Comentário enviado por aniel em 19/07/2014 - 11:21h
[31] Comentário enviado por rodrigo.pereira em 18/04/2011 - 16:27h:
Olá pessoal, gostaria de saber porque o meu sparkweb não está aceitando o usuário e senha que eu coloco.... no momento que clico no botão para acessar, a tela carrega e quando terminar o mesmo volta para a tela de login, alguém poderia me ajudar ? grande abraço ...
O MESMO ACONTECE COMIGO, COMO FAÇO PARA RESOLVER ESTA SITUAÇÃO???????????