msnp-wiki/docs/index.md
yellows111 4bf934f857
[v0.1.4-beta.2] everything i want before msnp13
update version file, forgot this repo had one
fix mistakes and other such
add new information
finish passport (SOAP) stuff, may rename to RST later?, just mention in footnote for now

next commit WILL be msnp13 on 0.1.4 release, promise
2024-11-26 21:15:34 +00:00

130 lines
8.3 KiB
Markdown

# Introduction
Welcome to yellows' MSNP wiki - "we actually have documentation"
Why not visit the [Table of Commands](table_of_commands.md)?
# 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](license.md)".
# Protocol Versions
* [CVR0](versions/cvr0.md)
* [MSNP2](versions/msnp2.md)
* [MSNP3](versions/msnp3.md)
* [MSNP4](versions/msnp4.md)
* [MSNP5](versions/msnp5.md)
* [MSNP6](versions/msnp6.md)
* [MSNP7](versions/msnp7.md)
* [MSNP8](versions/msnp8.md)
* [MSNP9](versions/msnp9.md)
* [MSNP10](versions/msnp10.md)
* [MSNP11](versions/msnp11.md)
* [MSNP12](versions/msnp12.md)
More is to come soon! Hopefully!
# Web Services
* [Address Book Service](services/abservice.md)
* [Contact Sharing Service](services/sharingservice.md)
* [Messenger Config Service](services/msgrconfig.md)
* [Passport 1.4](services/passport14.md)
* [Passport (SOAP)](services/passportsoap.md)
More is to come soon! Hopefully!
# Other documents and files
* [Constants used on the wiki](reference_constants.md)
* [Shields Configuration Data](files/shields.md)
* [`<NOTIFICATION>` documents](files/notification.md)
* [Challenge key pairs](files/challenge_keypairs.md)
* [All Client Capabilities](files/client_capabilities.md)
# Wanted Information
* [MSNP2](versions/msnp2.md): What is the format of the initial `text/x-msmsgsemailnotification`?
* [MSNP8](versions/msnp8.md): Did [FND](commands/fnd.md) exist? Rumors said it did shortly before it got killed in all protocols.
* [MSNP8](versions/msnp8.md): Did [LSG](commands/lsg.md) and [LST](commands/lst.md) change outside of [SYN](commands/syn.md) in this version?
* [MSNP10](versions/msnp10.md): Asynchronous `BPR MFN`s from the server. Does it really?
* [MSNP10](versions/msnp10.md): Did [LSG](commands/lsg.md) and [LST](commands/lst.md) change outside of [SYN](commands/syn.md) in this version?
* [MSNP11](versions/msnp11.md): How does `ABCHMigrated: 0` really work now? `OUT MIG` still exists.
* [MSNP12](versions/msnp12.md): Did [LST](commands/lst.md) change outside of [SYN](commands/syn.md) 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](versions/msnp2.md) to [MSNP7](versions/msnp7.md): 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](commands/cvr.md) responses, all of them are their release versions, when they could be latest.
* All Protocols since [MSNP10](versions/msnp10.md): Use legitimate [CVR](commands/cvr.md) responses from the time if possible, not ones for Client Version 6.1.
* [IMS command](commands/ims.md): What is the unknown number (that is usually `0`) in the response?
* [NAK command](commands/nak.md): This isn't used ever as a response for [MSG](commands/msg.md) D right?
* [MSG command](commands/msg.md): What can return from [MSG](commands/msg.md) D?
* [LST command](commands/lst.md): Any updates to this command outside of [SYN](commands/syn.md).
* [PRP command](commands/prp.md): Any information on the following properties (if they are properties?):
* `UTL`
* `WPL`
* `CID`: Is this related to spaces?
* `RES`
* `NSD`
* `UAC`
* `MNI`
* [UUX command](commands/uux.md): Any information on the following optional elements:
* `PHMEnabled`
* `MNIEnabled`
* `LastSpaceUpdate`
* `LastStorageError`
* `FIR`
* Meta: A good way to handle removed-mid-protocol commands like [FND](commands/fnd.md), [LSG](commands/lsg.md) and [LST](commands/lst.md)...
## We know, but isn't written
* [Messenger Config service](services/msgrconfig.md): maybe provide examples?
* MSNC1: the client-to-client subprotocol introduced with [MSNP9](versions/msnp9.md), un-sure where to put this one...
* MSNP2P: the sub-protocol used for file transfers in [MSNP5](versions/msnp5.md), also un-sure where to put this one...
### We know SOME Information
* Offline IMs (OIM) SOAP service: Absolutely needs a service page, since it's been in since [MSNP11](versions/msnp11.md).
## Unsolved Mysteries
* [INF command](commands/inf.md): ***Why*** does the [MSNP2](versions/msnp2.md) [draft](https://datatracker.ietf.org/doc/html/draft-movva-msn-messenger-protocol-00#section-7.2) have this in Switchboard? It's not used by any client as far as i'm aware.
* [FND command](commands/fnd.md): Why does this have an iterator if you can't send it over multiple packets?
* [USR command](commands/usr.md): Speaking of CKI, Why is it not specified when authenticating to Switchboard?
* [XFR command](commands/xfr.md): 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](https://datatracker.ietf.org/doc/html/draft-movva-msn-messenger-protocol-00#section-7.11), 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](services/abservice.md) and the [Contact Sharing Service](services/sharingservice.md).
* 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](services/passport14.md).
* PPSOAP: [Passport (SOAP)](services/passportsoap.md) that was implemented in Client Version 7.5+ ([MSNP12](versions/msnp12.md)).
* 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](versions/msnp21.md).
* 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](commands/qry.md).
* 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`](https://git-scm.com/docs/git-format-patch).