Hello,
I have been working on an cross-platform MSNP server in C# that I plan to make open source once I fully implement protocols 2 thru 9 of MSNP.
I plan to add newer versions of the protocol, but for now, I will only implement these ones. I started with MSNP8, then implemented MSNP9 and now I am working on adding support for MSNP 2 thru 7. All MSNP8/9 clients I’ve tested have logged in successfully.
For MSNP versions that use MD5 auth instead of Tweener, I plan to use a system where you can use a token instead of a password (i.e so I don’t have to store the password in plain text) that you can re-generate/disable at any time.
The following things are already implemented:
- Functional database
- Tweener login
- Version negotiations
- All contact list types
- Group support (although none of the payloads that interact with them are implemented)
- Switchboards
- Basic NOT payload support
I’ve also decided to make this server restore as many things as I possibly could to make the experience more authentic. In the future, I plan to add some kind of relay system so you don’t need any kind of VPNs to establish p2p connections.
Oh, and also, after a bit of thinkering around (and making a from scratch DLL that is pretty similar in nature to Escargot’s switcher, but also patches stuff related to UDP sockets), I was able to get audio calls over the WAN with RAdmin and a bit of help from the server (see that MSNPServer message, which is btw, entirely client side):