8.4 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
- Constants used on the wiki
- Shields Configuration Data
<NOTIFICATION>
documents- Challenge key pairs
- All Client Capabilities
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 MFN
s 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
- Contact Sharing Service: write about
FindMembership
- Address Book Service: write about
ABFindAll
- 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
orPROD0090YUAUV{2B
. - The one you use for the main challenge response hash is the Private Key.
An example of the Private Key is
Q1P7W2E4J9R8U3S5
orYMM8C_H7KCQ2S_KL
.
- The one you send with it in plain is the Public Key.
An example of the Public Key is
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
.