Um ótimo recurso do protocolo XMPP é a possibilidade dos servidores conversarem entre si, permitindo assim a integração de diferentes domínios Jabber.
Exemplificando
Vamos supor que tenhamos dois servidores Jabber de domínios diferentes. Vamos dizer que o domínio jabber de um deles é jabber.dominio.com.br e o do outro é jabber.outrodominio.com.br. Imagine que em um dos servidores exista uma conta (JID) marcelo@jabber.dominio.com.br e no outro servidor exista a conta renata@jabber.outrodominio.com.br. Com a comunicação entre servidores, é possível que o usuário marcelo fale com a usuária renata sem que tenha de possuir uma conta no domínio jabber.outrodominio.com.br e vice-versa. Isso é extremamente prático e eficiente principalmente em empresas que possuam vários servidores/domínios XMPP (sejam eles locais ou remotos), como também para empresas que tenham clientes com servidores Jabber próprios (que é o caso da Propus). Explicando: com a minha conta jabber da Propus eu adiciono os usuários de nossos clientes, sem a necessidade de ter uma conta em cada um dos servidores. Isso é realmente muito útil.
Como configurar o Openfire para isso ?
A configuração é extremamente simples. Em primeiro lugar é necessário que os servidores consigam se comunicar entre si pela porta 5269 (jabber s2s - server to server). Além disso, é preciso que ambos consigam resolver o DNS dos domínios jabber configurados no Openfire (tanto do domínio local quanto do remoto), caso contrário não conseguirão se conectar.
Logue então no console admin do Openfire e vá em Servidor -> Configurações do Servidor - > Servidor para Servidor. Lá você irá se deparar com várias opções. Veja:
Do meu ponto de vista, a lista branca é um recurso muito importante pelo fato de poder garantir o uso correto do comunicador (principalmente em ambiente empresarial), negando a integração com outros servidores (como Google Talk, por exemplo).
Essa é uma feature antiga do Openfire (existe desde os tempos do Wildfire), que foi um dos primeiros (senão o primeiro) servidores XMPP a possuir tal recurso. Mais recentemente, o servidor XMPP ejabberd incorporou o recurso em sua versão 2.0, enquanto que outros servidores como jabberd 1.4 e jabberd 2, até onde eu conheço (pois não os uso há muito tempo) , não possuem tal recurso, permitindo a conexão com qualquer outro servidor.
Fica aí então a dica para quem quer integrar vários servidores Openfire distintos, que apesar de ser um recurso simples e de fácil configuração, acaba dando trabalho para muitos administradores da ferramenta.
PS: o post foi atualizado em 30/05/2010, com algumas novas explicações.
Exemplificando
Vamos supor que tenhamos dois servidores Jabber de domínios diferentes. Vamos dizer que o domínio jabber de um deles é jabber.dominio.com.br e o do outro é jabber.outrodominio.com.br. Imagine que em um dos servidores exista uma conta (JID) marcelo@jabber.dominio.com.br e no outro servidor exista a conta renata@jabber.outrodominio.com.br. Com a comunicação entre servidores, é possível que o usuário marcelo fale com a usuária renata sem que tenha de possuir uma conta no domínio jabber.outrodominio.com.br e vice-versa. Isso é extremamente prático e eficiente principalmente em empresas que possuam vários servidores/domínios XMPP (sejam eles locais ou remotos), como também para empresas que tenham clientes com servidores Jabber próprios (que é o caso da Propus). Explicando: com a minha conta jabber da Propus eu adiciono os usuários de nossos clientes, sem a necessidade de ter uma conta em cada um dos servidores. Isso é realmente muito útil.
Como configurar o Openfire para isso ?
A configuração é extremamente simples. Em primeiro lugar é necessário que os servidores consigam se comunicar entre si pela porta 5269 (jabber s2s - server to server). Além disso, é preciso que ambos consigam resolver o DNS dos domínios jabber configurados no Openfire (tanto do domínio local quanto do remoto), caso contrário não conseguirão se conectar.
Logue então no console admin do Openfire e vá em Servidor -> Configurações do Servidor - > Servidor para Servidor. Lá você irá se deparar com várias opções. Veja:
- Serviço ativado: ativa ou desativa a comunicação servidor para servidor.
- Configurações de Conexões ociosas: nessa opção você pode forçar que a conexão entre os servidores seja desativada após um período de inatividade (configurável).
- Permitido conectar: essa opção é muito importante. Nela você irá determinar que servidores podem ou não conectar no seu servidor. Existem aqui duas opções:
- Qualquer um: com essa opção, qualquer servidor poderá se conectar ao seu servidor.
- Lista Branca: com essa opção, você irá definir uma lista de domínios jabber que tem permissão de conexão ao seu servidor. O domínio jabber é a porção que vem depois do @ no JID do usuário. Ex: marcelo@xmpp.empresa.com.br. O domínio jabber é xmpp.empresa.com.br.
- Não permitir conexão: aqui você deve informar os servidores que não podem se conectar ao seu servidor. Essa lista só faz sentido se você escolher a opção Qualquer um no item Permitido Conectar.
Do meu ponto de vista, a lista branca é um recurso muito importante pelo fato de poder garantir o uso correto do comunicador (principalmente em ambiente empresarial), negando a integração com outros servidores (como Google Talk, por exemplo).
Essa é uma feature antiga do Openfire (existe desde os tempos do Wildfire), que foi um dos primeiros (senão o primeiro) servidores XMPP a possuir tal recurso. Mais recentemente, o servidor XMPP ejabberd incorporou o recurso em sua versão 2.0, enquanto que outros servidores como jabberd 1.4 e jabberd 2, até onde eu conheço (pois não os uso há muito tempo) , não possuem tal recurso, permitindo a conexão com qualquer outro servidor.
Fica aí então a dica para quem quer integrar vários servidores Openfire distintos, que apesar de ser um recurso simples e de fácil configuração, acaba dando trabalho para muitos administradores da ferramenta.
PS: o post foi atualizado em 30/05/2010, com algumas novas explicações.
Se os outros servidores Jabber não têm a opção para barrar indesejáveis (ou melhor liberar só os que são aceitáveis) sempre há a possibilidade de usar o iptables para barrá-los. De qq forma é sempre bom ter o conhecimento das possibilidades e limitações de cada serviço.
ResponderExcluirRealmente é uma possibilidade.
ResponderExcluirBloquear a porta 5269 e liberar somente para IPs específicos. Funcionaria também.
Um servidor Openfire ver 3.5.2 pode conectar sem problemas em outro servidor com ver 3.6.0
ResponderExcluirSim, é totalmente possível.
ResponderExcluirVocê pode conectar qualquer servidor Jabber (ejabberd, jabberd, gmail, openfire, wildfire, etc..) a qualquer outro usando o s2s. E não importa a versão.
Um abraço,
Prezado Marcelo,
ResponderExcluirEstamos na fase de testes da solução openfire+spark em nossa empresa.
Temos uma floresta microsoft em 3 cidades: BH, RJ e SP. Já configuramos os servidores openfire de BH e de SP conforme as intruções deste tutorial. Porém não estamos conseguindo adicionar contatos de usuários de outro dominio. Como seria para adicionar o contato quando ele for de outro dominio? login@sp.empresa.com.br ou login@ip do server openfire? Quando é usuário do meu proprio dominio está ok. Basta colocar o login que ele mesmo já puxa o nome completo.
Poderia nos dar uma dica?
Agradecemos pela atenção.
Julio.
Júlio.
ResponderExcluirVocê deve adicionar o usuário como um jid (jabber ID), ou seja, por exemplo mhterres@sp.empresa.com.br.
Com isso suponho que teu openfire tenha sido configurado com o nome sp.empresa.com.br e que esse nome consiga ser resolvido corretamente pelo DNS. Além disso, também é preciso que os servidores se conectem diretamente na porta 5269 e que o openfire esteja configurado com permissão para esse domínio no server 2 server.
Aguardo teu retorno para saber se funcionou :-)
[]s
Prezado Marcelo
ResponderExcluirTenho instalado o open-fire 3.6.2 e spark nas estações de minha rede. Dentro do escritório funciona perfeitament. Contudo surgiu a necessidade de contactar com mensagem instantanea em outro endereço externo.
Criei um Host pelo no-ip( tenho serviço velox com ip dinamico) e tentei usálo para que o computador externo achasse meu servidor mas não funcionou.
Gostaria de saber se é possível esta comunicação sem ter que instalar um outro servidor openfire em local externo?
Desd ejá muito grato
É preciso que você consiga acessar externamente a porta 5222 (ou 5223 se estiver usando SSL) de seu servidor.
ResponderExcluirTalvez seja preciso fazer algo no modem ou no firewall pra que isso ocorra, mas aí depende de seu servidor.
[]s
Bom dia Marcelo,
ResponderExcluirestou tentando fazer servidores integrados ao AD (alocados em unidades diferentes da empresa que trabalho) "conversarem" (server 2 server) e fazer com que os usuários de cada domínio possam se comunicar entre si... segui todos os passos descritos por você mas não tive sucesso. Testei a comunicação na porta 5269 e todos os servidores respondem (não há firewall entre eles, estao ligados por MPLS). O que fazer? se possível entre em contato comigo no email djcelsodub@gmail.com... estou com o pescoço a prêmio pois vendi "o peixe" de que era possível essa integração (depois de ter pesquisado assunto)... grato desde já.
Celso S. Faria
Americana/SP
bom dia quando tento add outro user do outro servidor a seguinte mensagem aparece mas não consigo resolver
ResponderExcluir* Aviso: Usuários remotos ou entidades devem aceitar subscriçõse de presença automaticamente.
É necessário que o usuário aceite que outros usuários o adicionem de forma automática.
ResponderExcluirIsso precisa ser configurado no cliente.
[]s
Desculpe como faço isso???
ResponderExcluirEstou batendo cabeça nesse ponto pode me ajudar Marcelo?
Uso o spark como client
Oi Rodrigo.
ResponderExcluirNão saberia te dizer pois não uso Spark.
Mas deve ser uma opção que existe nas preferências da conta.
[]s
tb nao consegui ..
ResponderExcluirBom dia pessoal, gostaria de saber se tem como tipo o dominio é www.meudominio.com.br o nome do servidor é www eu gostaria que os usuário logasse com usuario@meudominio.com.br é possivel?
ResponderExcluirOlá.
ResponderExcluirPara isso funcionar você precisa configurar o "Nome do Servidor" no Openfire como meudominio.com.br.
Também é preciso que meudominio.com.br resolva para o IP externo do teu servidor.
[]s
Ola Marcelo.
ResponderExcluirPor favor, verifique se pode me ajudar.
Estou tentando realizar a integração do openfire entre 2 empresas. Contudo, as empresas só possuem domino local (@empresa1.local e @empresa2.local), é possivel interliga-los?
Ambas as empresas possuem IP fixo. Ja fizemos as liberações da porta 5269 e incluimos os endereços dos servidores, mas nao conseguimos conectar.
Tal integração não funcionará se você quiser utilizar um link Internet normal para comunicação com os domínios locais, pois um servidor não saberá como chegar no outro.
ExcluirO que você pode fazer é colocar um DNS dinâmico nas pontas (só para ter um nome que resolva para um válido da internet) e mandar ele resolver no IP fixo. Ex: empresa1xmpp.no-ip.org resolve para o IP fixo da empresa 1 e empresa2xmpp.no-ip.org resolve para o IP fixo da empresa2.
Depois será preciso configurar o Openfire de cada local para utilizar o novo nome (empresa1xmpp.no-ip.org ao invés de empresa1.local e empresa2xmpp.no-ip.org ao invés de empresa2.local).
O problema é que o nome do servidor não pode ser alterado. O mesmo só pode ser indicado no momento da instalação inicial. Para alterá-lo será necessário mexer no DB, mas aí o buraco é mais embaixo e a chance de algo dar errado é grande.
Eu consideraria uma instalação do zero para resolver esta questão.
[]s
Ola,
ResponderExcluirJá configuramos o open fire e spark para funciona na filiam e matriz da empresa que ficam em cidades diferentes. Temos VELOX nas duas empresas.
O que eu posso fazer para que os usuários de uma empresa possam teclar com os da outra?
Se minha pergunta estiver redundante, me desculpem. E que não sou tão experiente para posso aprender.
Oi Warley.
ResponderExcluirVocê deve seguir as indicações deste post. Aqui constam todas as informações necessárias para conseguir integrar os servidores (que precisam ser de domínios diferentes).
Se tiver dúvidas, pode me mandar um e-mail (tem ali na barra esquerda).
[]s
Olá chará
ResponderExcluirEu configurei dois servidores openfire 3.7.1 baseado no linux e não obtive sucesso. Pedi ajuda no site da Ignite mas não obtive resposta.
http://community.igniterealtime.org/message/225784#225784
Você poderia me dar uma luz nessa?
Desde já obrigrado Marcelo
Olá.
ResponderExcluirSe entendi bem você configurou o domínio jabber (o que vem após o @ no JID) dos Openfires com o nomes servmess e servmess1, correto?
Te sugiro também adicionar os registros SRV no teu servidor DNS:
http://mundoopensource.blogspot.com.br/2011/05/openfire-e-os-registros-srv-do-dns.html
[]s
Ola boa tarde eu consegui certinho aqui so que no outro server a pessoa fica aparecendo off line no outro server
ResponderExcluirOlá.
ExcluirLogue no console admin e vá em Sessões -> Sessões do servidor.
Verifique então se os servidores estão se comunicando nas duas direções (setas verdes para ambos lados).
[]s
Ola Marcelo isso ta sim uma seta verde e outra azul
ResponderExcluirEntão deve haver algum problema de comunicação entre os servidores.
Excluir[]s
O que poderia ser tem alguma idéia
ResponderExcluirDá uma olhada nos logs de ambos servidores.
ExcluirLá deve ter uma pista do problema.
[]s
deu certo aqui, mais consegui so adicionando o amigo de outro server e pede autotizacao quando add no server mais funfo certinho.
ResponderExcluir