This documentation is for version 0.11 of the transport.
Please visit http://delx.cjb.net/pymsnt to download the transport and see news updates.
Please visit the MSN Transport User's Guide if you are a Jabber user and want to talk to your MSN friends.
If you have any insights or comments to add to this page please let me know by email or Jabber: james@delx.cjb.net
Instructions/suggestions for other servers and OSs are welcome
Make sure have installed Python 2.3 or newer (I have reports that some older versions work). Most distributions should handle this automatically for you.
urpmi python
apt-get install python
yum install python
yum install python
yast -i python
fink install python(Install Python with fink, because we will use other Python libraries from fink later)
Install the Twisted framework (library). Version 1.1 or newer should be fine. Please make sure you're using PyMSNt 0.9.3 or newer for Twisted 2.0 support.
If you're using Twisted 2.0, either grab the "Sumo" package (easiest), or make sure you download at least these modules: core, web, words
apt-get install python-twisted python-crypto python-pyopenssl python-imaging
apt-get install python-twisted python-twisted-words python-crypto python-pyopenssl python-imaging
yum install python-twisted pyOpenSSL pycrypto
yum install python-twisted python-crypto pyOpenSSL
yast -i python-twisted python-openssl python-pycrypto
fink install twisted-py23 pycrypto-py23 pyopenssl-py23
Download PyMSNt from delx.cjb.net/pymsnt and decompress it to a suitable location.
Copy the file config-example.xml to config.xml and edit it to suit your environment.
Note, with older versions of PyMSNt you were supposed to edit config.py. This is NOT recommended in this version.
PyMSNt stores login information (MS Passport account, password and nick) in the spool directory. This directory should meet this conditions:
This directory will be automatically created for you if this is a fresh installation. If you are migrating from an older version of the transport (including the C version), you can copy your existing spool directory into the new location.
Don't forget to rename it to the 'jid' value you specified on config.xml
Now you have to configure your Jabber server. The following section covers this in detail.
Now you're ready to start PyMSNt for the first time:
./PyMSNt.py
It will connect to the Jabber server and serve the Discovery JID you specified. Note: PyMSNt does not implement the old and deprecated 'Browse' capacity, only the newer 'Discovery'.
On MS Windows you can run it by opening a DOS console in the PyMSNt directory and running "python PyMSNt.py"
You may wish to find a rc.d script to automatically start the transport on Linux, or to make the transport into a service on Windows.
The instructions below assume you are running PyMSNt on the same machine as your main Jabber server
If you are using Jabberd1.4.x then you need to add this to your jabber.xml file
<service id="msn.host.com"> <host>msn.host.com</host> <accept> <ip>127.0.0.1</ip> <port>5347</port> <secret>secret</secret> </accept> </service>
Check that msn.host.com is the same as the 'jid' setting from config.xml and that 5347 is the same as the 'port' setting. Also 'secret' must correspond, and the 'mainServer' setting should be pointing to the same interface as the <ip/> tag is (in this example the loopback interface is used. So 'mainServer' would be '127.0.0.1').
You must also add this to the browse section of your jabber.xml file
<service type="msn" jid="msn.host.com" name="MSN Transport"> <ns>jabber:iq:register</ns> <ns>jabber:iq:gateway</ns> </service>
Once again, msn.host.com must correspond to the 'jid' setting in config.xml
Once you have made all these changes, restart your Jabberd1.4.x server, then start PyMSNt and it should all work.
If you are using Jabberd2 then you shouldn't have to do much configuration. Make sure the 'mainServer' setting is the IP or DNS of your Jabber server, and leave the 'port' setting alone. Double-check that the secret for legacy components in router.xml (for Jabberd2) is the same as the secret setting in config.xml. That should be all. You don't even need to restart Jabberd2.
You may need to add the following to your Jabberd2 router-users.xml
<user> <name>msn.host.com</name> <secret>secret</secret> </user>
If you are upgrading from the old C version of MSN-t then you need to remove the alias info in your router.xml and the item discovery info in your sm.xml for the old msn transport. These were needed for the old MSN-t, but Jabberd2 can automatically add the new PyMSNt to the browse lists.
To configure ejabberd for PyMSNt, as explained in ejabberd Guide:
{5347, ejabberd_service, [{host, "msn.host.com", [{password, "secret"}]}]},
In the Wildfire administration console, click the Server tab, and then External Components. Enable external components and enter a port (default is 10015) and a default shared secret.
Use the port and secret in the PyMSNt config.xml to connect the transport to Wildfire
More to be written... For now, have a look at the compjid option.
./PyMSNt -c /etc/jabber/pymsnt.xml &If you are using multiple configurations it is recommended that you specify using absolute paths to the PID and spool settings in each of the configurations.
kill -1 `cat PyMSNt.pid`Run in the directory that PyMSNt.pid is in. This will send a SIGHUP signal to the transport.
find /path/to/msn.host.com/avatars -atime +30 -delete
svn co svn://delx.cjb.net/pymsnt/trunk pymsnt
find -name '*.xml' -exec cp -v {} fixed_msn.host.com \;
Bug reports and comments go to James Bunton
I'll gladly help you with any problems, but please look through this whole page, the README & config.xml files first.
Copyright James Bunton <james at delx.cjb.net>. You may freely redistribute this file.