# Table of contents:
- Introduction
- License
- Protocol Versions
- Web Services
- Other documents and files
- Wanted Information
- Common (or not) Terms
- Where can I find or edit the source of the articles provided?
# 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
- Address Book Service
- Contact Sharing Service
- Messenger Config Service
- Passport 1.4
- Passport Request Security Token service
More is to come soon! Hopefully!
# Other documents and files
- Constants used on the wiki
- List of Error Codes and HRESULTs
- Shields Configuration Data
-
<NOTIFICATION>
documents - Challenge key pairs
- All Client Capabilities
# Wanted Information
- 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: Anything about the
GSB
command, and is it related toSBS
? -
MSNP11: How does
ABCHMigrated: 0
really work now?OUT MIG
still exists. - MSNP12: Did LST change outside of SYN in this version?
-
MSNP18: Did
<NotificationData>
-based circle updates get added in MSNP17 instead of MSNP18? - 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?
- 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...
# We know SOME Information
- Offline IMs (OIM) SOAP service: Absolutely needs a service page, since it's been in since MSNP11.
- Above requires MSNP11 challenges. Please document those.
# 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.
- RST: The Passport Request Security Token service that was implemented in Client Version 7.5+ (MSNP12).
- RST2: The second version of the Passport Request Security Token service that was implemented in Client Version 14.0+ (MSNP18) (TODO: Am I right about this?).
- 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 ismsmsgs@msnmsgr.com
orPROD0090YUAUV{2B
. -
The one you use for the main challenge response hash is the Private Key.
An example of the Private Key isQ1P7W2E4J9R8U3S5
orYMM8C_H7KCQ2S_KL
.
-
The one you send with it in plain is the Public Key.
# Where can I find or edit the source of the articles provided?
The git repository for the project is avaliable at https://git.computernewb.com/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
.
If such a method is undesired or you do not want to format such a message,
that is fine too, as long as you give a pointer to where you would like the information to go.