msnp-wiki/docs/index.md

8.3 KiB

Introduction

Welcome to yellows' MSNP wiki - "we actually have documentation"

Why not visit the Table of Commands?

License

Copyright (C) 2024 yellows111. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the article entitled "GNU Free Documentation License".

Protocol Versions

More is to come soon! Hopefully!

Web Services

More is to come soon! Hopefully!

Other documents and files

Wanted Information

  • MSNP2: What is the format of the initial text/x-msmsgsemailnotification?
  • MSNP8: Did FND exist? Rumors said it did shortly before it got killed in all protocols.
  • MSNP8: Did LSG and LST change outside of SYN in this version?
  • MSNP10: Asynchronous BPR MFNs from the server. Does it really?
  • MSNP10: Did LSG and LST change outside of SYN in this version?
  • MSNP11: How does ABCHMigrated: 0 really work now? OUT MIG still exists.
  • MSNP12: Did LST change outside of SYN in this version?
  • MSNP18: Was <NotificationData>-based circle updates added in MSNP17 instead?
  • Error Codes: A new article for them, seems like they are implemented in wildly different ways.
  • MSNP2 to MSNP7: TODO: Add CVR requests as command 10.
  • All Protocols: Any error code known to exist but is missing from the pages.
  • All Protocols: Good CVR responses, all of them are their release versions, when they could be latest.
  • All Protocols since MSNP10: Use legitimate CVR responses from the time if possible, not ones for Client Version 6.1.
  • IMS command: What is the unknown number (that is usually 0) in the response?
  • NAK command: This isn't used ever as a response for MSG D right?
  • MSG command: What can return from MSG D?
  • LST command: Any updates to this command outside of SYN.
  • PRP command: Any information on the following properties (if they are properties?):
    • UTL
    • WPL
    • CID: Is this related to spaces?
    • RES
    • NSD
    • UAC
    • MNI
  • UUX command: Any information on the following optional elements:
    • PHMEnabled
    • MNIEnabled
    • LastSpaceUpdate
    • LastStorageError
    • FIR
  • Meta: A good way to handle removed-mid-protocol commands like FND, LSG and LST...

We know, but isn't written

  • Messenger Config service: maybe provide examples?
  • MSNP13: just write this page already
  • Passport SOAP: document this service for MSNP12, MSNP13 and above. Examples would be nice, too.
  • MSNC1: the client-to-client subprotocol introduced with MSNP9, un-sure where to put this one...
  • MSNP2P: the sub-protocol used for file transfers in MSNP5, also un-sure where to put this one...

Unsolved Mysteries

  • INF command: Why does the MSNP2 draft have this in Switchboard? It's not used by any client as far as i'm aware.
  • FND command: Why does this have an iterator if you can't send it over multiple packets?
  • USR command: Speaking of CKI, Why is it not specified when authenticating to Switchboard?
  • XFR command: That one single digit parameter and what it has to do with application/x-msmsgsspmessage.
  • The Draft: Why did the draft go vague on the errors? The list was there, but no explanations on what can cause them... Odd.

Common (or not) Terms

  • Official Client: MSN Messenger (Service) or Windows Live Messenger.
  • Client Version: relevant Official Client version.
  • MSNP: Mobile Status Notification Protocol, or whatever acronym you like. Runs over TCP via port 1863.
  • ABCH: Address Book Clearing House. Usually refers to the Address Book Service and the Contact Sharing Service.
  • Messenger Config: A file used by Client Version 6.0 and higher that specifies some data for the Official Client.
  • svcs.microsoft.com: Usually a grab-bag of random XML files or services used for clients older than Client Version 6.0.
  • Protocol Split: A MSNP version that usually defines a point of no return.
  • PP14: Passport SSI Version 1.4.
  • PP30: Passport over SOAP that was implemented in Client Version 7.5+ (MSNP12).
  • SOAP: Simple Object Access Protocol, A message schema based on XML. That's the kindest thing I can write about it.
  • Passport: The Authentication Server and/or Protocol.
  • Undefined Behaviour: An intentional blank left in the documentation, basically as a "I am not responsible for what this does to your client or server" warning.
  • Dispatch Server: A type of MSNP server that handles moving users to Notification Servers.
  • Notification Server: The real meat of MSNP, handles authentication, user presence, notifications, creates Switchboard Server sessions and boasts the most commands.
  • Switchboard Server: The messaging part of the protocol. Changed only twice until it was deprecated in MSNP21.
  • Command: A 3-letter case-sensitive command type, followed optionally by a transaction ID and the rest of the Command parameters, ending with a new-line.
  • Payload Command: A special type of Command that has a integer length parameter as the final parameter before the deliminating new-line.
  • New-line/Newline: A Carriage Return character followed by a Line Feed character. Seperates commands in the protocol.
  • Error Code: A 3-digit Command that denotes that there was a problem with the last command sent.
  • Carriage Return: To return the page-writing apparatus to the left of the page.
  • Line Feed: To move the page-writing apparatus down a "line".
  • TrID: Transaction ID. Links the server's response to the client's request.
  • User handle: An address which supports up to 129 characters that is used across the protocol. May be called "principles" in other places.
  • Public Key, Private Key: The parameters used in QRY.
    • The one you send with it in plain is the Public Key. An example of the Public Key is msmsgs@msnmsgr.com or PROD0090YUAUV{2B.
    • The one you use for the main challenge response hash is the Private Key. An example of the Private Key is Q1P7W2E4J9R8U3S5 or YMM8C_H7KCQ2S_KL.

Where do I find or edit these page's source?

The git repo is avaliable at https://git.kevinthe.horse/yellows111/msnp-wiki.

You can submit changes to me via any avaliable contact method as a e-mail merge request, like those made with git format-patch.