[WIP] MSNP 2-9+ C# server with WAN p2p support

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):

2 Likes

oooo that’s pretty nice, do you plan to try to get up to msnp21?

I don’t think there is enough documentation for it, but it doesn’t hurt to try, however, at the moment, it isn’t a priority, at most I will probably go to MSN 8.5, as it doesn’t use as much SOAP

1 Like

yeah thats totally understandable, good luck with this! :slight_smile:

[UPDATE]
I have MSNP8/9 like 95% implemented now. I haven’t done PRP, BRP, IPG, PAG, SND, SDC and IMS. This is basically phone number related options and the invitation of people when you try to add them and they don’t have an account. (and that random MSNTV related payload) I did implement server challenges (so CHL and QRY), but I found that not all MSNP8 clients respond to that, so I just removed it (it’s not necessary at all).

Work will be done towards MSNP2-7 now.

2 Likes