Quite some time ago I decided that I wanted to offer support via MSN for a business. This is all very well until you want multiple staff to cover the “live” support, obviously you cannot have more than one client connected via the MSN protocol using the same account at any one time.
My solution to this was to use an existing platform that allowed multiple users, which was IRC. The next step was to create a “bot” that would connect to the MSN Messenger network and relay the information back and forth.
Originally due to my skills in coding in mIRC I decided to code a very simple MSN messenger client. This proved quite a challenge after looking at the MSN Messenger Protocol Docs. I decided to check out existing MSN messenger clients for mIRC and see how they had done it.
I tried roughly 5 from mircscripts.org, none of them worked apart from MSNMIRC by Artweks.
I decided to strip this down and allow relaying via remotely triggered commands, I codenamed this script “xmsn”. This worked very well for quite some time, until MSN decided to change the way their older protocols work, which meant they now required SSL to authenticate.
It took some time to figure out, but eventually the script was fully functional again with the addition of a DLL (ssl.dll – 58kb), however it seemed that this DLL would only work on some machines, yet not others, this meant I required a new machine to run one mIRC bot.
I ran this for some time, probably around a year, and decided that running a whole machine just for on mIRC based bot was a bit of a waste, so I decided to investigate my options.
Eggdrop was my first port of call, using some kind of TCL script that could connect to the MSN protocol would be fantastic, yet this did not appear to exist, however I did locate an MSN messenger client called aMSN, which was based on TCL. There were some issues with this though, firstly it is not eggdrop based, fine I thought i’ll strip it down, secondly there is no console mode, its a 100% GUI application, therefore a BIG task. I simply didn’t have the time to deal with this complexity.
After some further searching I discovered the BitlBee project, which is in itself an amazing project and an amazing idea. In principle its an IRCd that can connect to many popular instant messenger protocols such as MSN messenger.
The idea was to somehow run an eggdrop that would connect to a BitlBee server, connect to MSN, and relay the details to another IRCd using a relay tcl script. Obviously the relay script would also need the ability to accept triggers from the other IRCd so the users can control it and send messages, etc.
An alternative idea would be to use psyBNC with multiuser enabled, even though this method would probably be more secure, i’d prefer to use the eggdrop method.
In the end I decided to trim down a version of linkchan.tcl, which I had used before over the years and so was already fimilar with its structure and functionatility. This offers me a fantastic platform to base this project on.
There is the project research so far, the next step is to release bitlbee.tcl once i’m happy the script is stable.
Update: I have posted a beta version of the “bitlbee.tcl” under the eggdrop tcl section.