Configurando MSN transport no Ejabberd

Como disse a um tempo atrás abandonei o msn, por N razões principalmente pela redundancia dos contatos nas redes msn e jabber. Mas como levei um pé na bunda passei a xavecar as minas pelo computador, e todas elas usam MSN …. Outro fato pentelho é os conflitos do GTalk com o Jabber o que me faz pensar se não seria uma boa manter o MSN e apagar todos os GTalks do meu roster

Resolvi então habilitar o MSN transports no meu Jabber, assim não fico incomodado por fazer um login a mais toda vez 🙂 Instalei no meu EJabberd no fedora, entre hacks e feridos o negócio ta indo bem, segue o tutorial assumindo que seu Ejabberd está configurado e funcionando:

Primeiro passo, vamos instalar as dependências :


yum install python-twisted pyOpenSSL

Agora baixe o source :


wget http://delx.net.au/projects/pymsnt/tarballs/pymsnt-0.11.3.tar.gz

Copie o config-example.xml para config.xml e configure :

  • A chave ‘jid’ deve ser configurado com o ID que vc quer para sua rede, nescessário para que que o servidor Jabber reconheça o MSN, por exemplo: msn.host.com’.
  • A chave ‘host’ deve ser um domínio ou endereço de IP PÚBLICO de onde o transport MSN está rodando. Isso é fundamental para transferência de arquivos!
  • A chave ‘mainServer’ deve ter o domínio ou endereço de IP PÚBLICO do servidor Jabber.
    Exemplo: ‘127.0.0.1’.
  • O conteúdo da chave ‘secret’ deve “bater” com a senha secreta que vamos configurar no Jabber, trata-se de uma senha que só o servidor Jabber deve saber.

Agora basta configurar o Ejabberd , adicione a seguinte linha no arquivo /etc/ejabberd/ejabberd.cfg :

{5347, ejabberd_service, [{host, "msn.host.com",
[{password, "secret"}]}]},

Agora basta reiniciar o serviço e rodar o script ./PyMSNt 🙂 Legal né ? Agora vá no seu cliente Jabber, faça um “discover services”, cadastre sua senha MSN e seja feliz :):):)

Eu não fui feliz, o meu não funcionou, apresentava o seguinte erro :

Failed to connect to MSN servers: [Failure instance: Traceback (failure
with no frames): : Timeout]

Pra corrigir tive que alterar o código do protocolo msn implementado na biblioteca em src/
legacy/msn/msn.py :


de MSN_PROTOCOL_VERSION = "MSNP11 CVR0"

para

MSN_PROTOCOL_VERSION = "MSNP11"


Agora sim, funcionou 🙂