diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..05e2ce1
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,445 @@
+# GNU Free Documentation License
+
+Version 1.3, 3 November 2008
+
+Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation,
+Inc.
+
+Everyone is permitted to copy and distribute verbatim copies of this
+license document, but changing it is not allowed.
+
+## 0. PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does. But this License is not limited to software manuals; it
+can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book. We recommend this License
+principally for works whose purpose is instruction or reference.
+
+## 1. APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License. Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein. The "Document", below, refers
+to any such manual or work. Any member of the public is a licensee,
+and is addressed as "you". You accept the license if you copy, modify
+or distribute the work in a way requiring permission under copyright
+law.
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A "Secondary Section" is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject. (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.) The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The "Invariant Sections" are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License. If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant. The Document may contain zero
+Invariant Sections. If the Document does not identify any Invariant
+Sections then there are none.
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License. A Front-Cover Text may be
+at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A "Transparent" copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters. A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text. A copy that is not "Transparent" is called "Opaque".
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification. Examples of
+transparent image formats include PNG, XCF and JPG. Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+The "publisher" means any person or entity that distributes copies of
+the Document to the public.
+
+A section "Entitled XYZ" means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as "Acknowledgements",
+"Dedications", "Endorsements", or "History".) To "Preserve the Title"
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+## 2. VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no
+other conditions whatsoever to those of this License. You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute. However, you may accept
+compensation in exchange for copies. If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+## 3. COPYING IN QUANTITY
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover. Both covers must also clearly and legibly identify you
+as the publisher of these copies. The front cover must present the
+full title with all words of the title equally prominent and visible.
+You may add other material on the covers in addition. Copying with
+changes limited to the covers, as long as they preserve the title of
+the Document and satisfy these conditions, can be treated as verbatim
+copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to
+give them a chance to provide you with an updated version of the
+Document.
+
+## 4. MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it. In addition, you must do these things in the Modified Version:
+
+- A. Use in the Title Page (and on the covers, if any) a title
+ distinct from that of the Document, and from those of previous
+ versions (which should, if there were any, be listed in the
+ History section of the Document). You may use the same title as a
+ previous version if the original publisher of that version
+ gives permission.
+- B. List on the Title Page, as authors, one or more persons or
+ entities responsible for authorship of the modifications in the
+ Modified Version, together with at least five of the principal
+ authors of the Document (all of its principal authors, if it has
+ fewer than five), unless they release you from this requirement.
+- C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+- D. Preserve all the copyright notices of the Document.
+- E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+- F. Include, immediately after the copyright notices, a license
+ notice giving the public permission to use the Modified Version
+ under the terms of this License, in the form shown in the
+ Addendum below.
+- G. Preserve in that license notice the full lists of Invariant
+ Sections and required Cover Texts given in the Document's
+ license notice.
+- H. Include an unaltered copy of this License.
+- I. Preserve the section Entitled "History", Preserve its Title,
+ and add to it an item stating at least the title, year, new
+ authors, and publisher of the Modified Version as given on the
+ Title Page. If there is no section Entitled "History" in the
+ Document, create one stating the title, year, authors, and
+ publisher of the Document as given on its Title Page, then add an
+ item describing the Modified Version as stated in the
+ previous sentence.
+- J. Preserve the network location, if any, given in the Document
+ for public access to a Transparent copy of the Document, and
+ likewise the network locations given in the Document for previous
+ versions it was based on. These may be placed in the "History"
+ section. You may omit a network location for a work that was
+ published at least four years before the Document itself, or if
+ the original publisher of the version it refers to
+ gives permission.
+- K. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, and preserve in the section all
+ the substance and tone of each of the contributor acknowledgements
+ and/or dedications given therein.
+- L. Preserve all the Invariant Sections of the Document, unaltered
+ in their text and in their titles. Section numbers or the
+ equivalent are not considered part of the section titles.
+- M. Delete any section Entitled "Endorsements". Such a section may
+ not be included in the Modified Version.
+- N. Do not retitle any existing section to be Entitled
+ "Endorsements" or to conflict in title with any Invariant Section.
+- O. Preserve any Warranty Disclaimers.
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant. To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties—for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version. Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity. If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+## 5. COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy. If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications". You must delete all sections
+Entitled "Endorsements".
+
+## 6. COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other
+documents released under this License, and replace the individual
+copies of this License in the various documents with a single copy
+that is included in the collection, provided that you follow the rules
+of this License for verbatim copying of each of the documents in all
+other respects.
+
+You may extract a single document from such a collection, and
+distribute it individually under this License, provided you insert a
+copy of this License into the extracted document, and follow this
+License in all other respects regarding verbatim copying of that
+document.
+
+## 7. AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+## 8. TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections. You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+## 9. TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document
+except as expressly provided under this License. Any attempt otherwise
+to copy, modify, sublicense, or distribute it is void, and will
+automatically terminate your rights under this License.
+
+However, if you cease all violation of this License, then your license
+from a particular copyright holder is reinstated (a) provisionally,
+unless and until the copyright holder explicitly and finally
+terminates your license, and (b) permanently, if the copyright holder
+fails to notify you of the violation by some reasonable means prior to
+60 days after the cessation.
+
+Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, receipt of a copy of some or all of the same material does
+not give you any rights to use it.
+
+## 10. FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions of the
+GNU Free Documentation License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in
+detail to address new problems or concerns. See
+.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation. If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation. If the Document specifies
+that a proxy can decide which future versions of this License can be
+used, that proxy's public statement of acceptance of a version
+permanently authorizes you to choose that version for the Document.
+
+## 11. RELICENSING
+
+"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+World Wide Web server that publishes copyrightable works and also
+provides prominent facilities for anybody to edit those works. A
+public wiki that anybody can edit is an example of such a server. A
+"Massive Multiauthor Collaboration" (or "MMC") contained in the site
+means any set of copyrightable works thus published on the MMC site.
+
+"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+license published by Creative Commons Corporation, a not-for-profit
+corporation with a principal place of business in San Francisco,
+California, as well as future copyleft versions of that license
+published by that same organization.
+
+"Incorporate" means to publish or republish a Document, in whole or in
+part, as part of another Document.
+
+An MMC is "eligible for relicensing" if it is licensed under this
+License, and if all works that were first published under this License
+somewhere other than this MMC, and subsequently incorporated in whole
+or in part into the MMC, (1) had no cover texts or invariant sections,
+and (2) were thus incorporated prior to November 1, 2008.
+
+The operator of an MMC Site may republish an MMC contained in the site
+under CC-BY-SA on the same site at any time before August 1, 2009,
+provided the MMC is eligible for relicensing.
+
+## ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+ Copyright (C) YEAR YOUR NAME.
+ 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 section entitled "GNU
+ Free Documentation License".
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with … Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with the
+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License, to
+permit their use in free software.
diff --git a/README.md b/README.md
index 4cc770e..4679c50 100644
--- a/README.md
+++ b/README.md
@@ -12,3 +12,7 @@ mkdir build
npm run build
cp ./node_modules/yiki/yiki.css build/
```
+
+# License
+This work is licensed under the
+[GNU Free Documentation License 1.3](https://www.gnu.org/licenses/fdl-1.3.en.html).
diff --git a/docs/commands/adg.md b/docs/commands/adg.md
index a37f1d1..a2eb0d9 100644
--- a/docs/commands/adg.md
+++ b/docs/commands/adg.md
@@ -12,7 +12,7 @@ Replaced with [Address Book Service](../services/abservice)'s `ABGroupAdd` in [M
Where `group-name` is the name of the group you'd like to create.
Has a limit of 61 bytes (URL encoded characters count as 3 bytes).
-Where `0` is always `0.`. Removed in [MSNP10](../comnmands/msnp10.md).
+Where `0` is always `0`. Removed in [MSNP10](../versions/msnp10.md).
# Server/Response
`ADG TrID {list-version} group-name group-id {0}`
@@ -127,4 +127,4 @@ Server disconnects client.
* [MSNP10](../versions/msnp10.md): Removed unused `0` parameter,
Returns a GUID instead of a Group ID if `ABCHMigrated: 1`.
* [MSNP13](../versions/msnp13.md): Removed (automatic disconnect),
- use Address Book Service's `ABGroupAdd` instead.
+ use [Address Book Service](../services/abservice.md)'s `ABGroupAdd` instead.
diff --git a/docs/commands/ans.md b/docs/commands/ans.md
index cb51c69..90785aa 100644
--- a/docs/commands/ans.md
+++ b/docs/commands/ans.md
@@ -32,7 +32,7 @@ S: ANS 1 OK
```
## Invalid session
-*NOTE: There is no defined behavour for this command specificially."
+*NOTE: There is no defined behaviour for this command specificially.*
```
C: ANS 2 example@hotmail.com bad data
```
diff --git a/docs/commands/blp.md b/docs/commands/blp.md
index aace7e6..74acdac 100644
--- a/docs/commands/blp.md
+++ b/docs/commands/blp.md
@@ -27,12 +27,20 @@ C: BLP 2 BL
S: BLP 2 257 BL
```
+## Already in that mode
+```
+C: BLP 3 AL
+S: BLP 3 258 AL
+C: BLP 4 AL
+S: 218 4
+```
+
## Invalid argument
*NOTE: This is an assumption. The actual error code here is unknown.
It may also lead to an Instant Disconnection.*
```
-C: BLP 3 CL
-S: 201
+C: BLP 5 CL
+S: 201 5
```
# Known changes
diff --git a/docs/commands/chg.md b/docs/commands/chg.md
index 061acc9..c88290a 100644
--- a/docs/commands/chg.md
+++ b/docs/commands/chg.md
@@ -9,15 +9,15 @@ Changes your presence status, and sets your Client Capabilities and MSNObject in
`CHG TrID status {flags} {msnobj}`
Where `status` can be any of the below:
-* `NLN` - Online
-* `BSY` - Busy
-* `IDL` - Idle
-* `BRB` - Be Right Back
-* `AWY` - Away (previously Away From Keyboard)
-* `PHN` - On The Phone
-* `LUN` - Out To Lunch
-* `HDN` - Appear Offline (previously Invisible)
-* `FLN` - Semi-offline. More on this below.
+* `NLN`: Online
+* `BSY`: Busy
+* `IDL`: Idle
+* `BRB`: Be Right Back
+* `AWY`: Away (previously Away From Keyboard)
+* `PHN`: On The Phone
+* `LUN`: Out To Lunch
+* `HDN`: Appear Offline (previously Invisible)
+* `FLN`: Semi-offline. More on this below.
In [MSNP8](../versions/msnp8.md) and higher, `flags`, an optional parameter may be used to
specify your Client Capabilities.
@@ -63,7 +63,7 @@ S: CHG 2 IDL 1
*This only works in [MSNP9](../versions/msnp9.md) and higher.*
*NOTE: This has been line-breaked.
-Lines beginning with `..` followed by a space are continuations of the previous line.
+Lines beginning with `..` followed by a space are continuations of the previous line.*
```
C: CHG 3 BSY 268435500 %3Cmsnobj%20Creator%3D%22example%40hotmail.com%22
.. %20Size%3D%2225235%22%20Type%3D%223%22
@@ -83,7 +83,7 @@ S: CHG 0 FLN
```
## Invalid argument
-*NOTE: There is no defined behavour for this command specifically.*
+*NOTE: There is no defined behaviour for this command specifically.*
```
C: CHG 4 HOT
```
diff --git a/docs/commands/chl.md b/docs/commands/chl.md
index 262d2ed..ce814dd 100644
--- a/docs/commands/chl.md
+++ b/docs/commands/chl.md
@@ -3,7 +3,8 @@
It is a Notification Server command, without a request or response payload.
-A request to generate a challenge. Respond with QRY on a new transaction to continue your connection.
+A request to generate or solve a challenge.
+Respond correctly with [QRY](qry.md) on a new transaction to continue your connection.
# Client/Request
`CHL TrID`
@@ -41,5 +42,4 @@ S: OUT
Server disconnects client.
# Known changes
-* [MSNP11](../versions/msnp11.md): Challenge response (QRY commands)'s
-algorithm changed to be more formidable.
+* [MSNP11](../versions/msnp11.md): Changed challenge response ([QRY](qry.md) commands) generation algorithm drastically.
diff --git a/docs/commands/cvq.md b/docs/commands/cvq.md
index 2cf3806..15151f1 100644
--- a/docs/commands/cvq.md
+++ b/docs/commands/cvq.md
@@ -45,7 +45,7 @@ Where `fallback-url` is the URL the client opens if it failed to download `downl
# Examples
*NOTE: This has been line-breaked.
-Lines beginning with `..` are continuations of the previous line."
+Lines beginning with `..` followed by a space are continuations of the previous line.*
## Old
*Only used in the [CVR0](../versions/cvr0.md) implementation of [MSNP2](../versions/msnp2.md) to [MSNP7](../versions/msnp2.md).*
diff --git a/docs/commands/cvr.md b/docs/commands/cvr.md
index 8ba24e0..8093654 100644
--- a/docs/commands/cvr.md
+++ b/docs/commands/cvr.md
@@ -45,7 +45,7 @@ Where `fallback-url` is the URL the client opens if it failed to download `downl
# Examples
*NOTE: This has been line-breaked.
-Lines beginning with `..` are continuations of the previous line."
+Lines beginning with `..` followed by a space are continuations of the previous line.*
## Post-login
*Only used in [MSNP2](../versions/msnp2.md) to [MSNP7](../versions/msnp2.md).*
diff --git a/docs/commands/gcf.md b/docs/commands/gcf.md
index 9f1d29c..c80d03f 100644
--- a/docs/commands/gcf.md
+++ b/docs/commands/gcf.md
@@ -19,7 +19,7 @@ GCF TrID filename length
payload
```
-Where `length` is the length of `payload`.
+Where `length` is the size (in bytes) of the `payload`.
Where `payload` is the data for this file.
diff --git a/docs/commands/gtc.md b/docs/commands/gtc.md
index b5ab1a4..0820019 100644
--- a/docs/commands/gtc.md
+++ b/docs/commands/gtc.md
@@ -27,12 +27,20 @@ C: GTC 2 N
S: GTC 2 257 N
```
+## Already in that mode
+```
+C: GTC 3 A
+S: GTC 3 258 A
+C: GTC 4 A
+S: 218 4
+```
+
## Invalid argument
*NOTE: This is an assumption. The actual error code here is unknown.
It may also lead to an Instant Disconnection.*
```
-C: GTC 3 B
-S: 201
+C: GTC 5 B
+S: 201 5
```
# Known changes
diff --git a/docs/commands/ims.md b/docs/commands/ims.md
index 772f2d4..9779e53 100644
--- a/docs/commands/ims.md
+++ b/docs/commands/ims.md
@@ -29,7 +29,7 @@ S: IMS 2 0 OFF
```
## Invalid argument
-*NOTE: There is no defined behavour for this command specifically.*
+*NOTE: There is no defined behaviour for this command specifically.*
```
C: IMS 3 TOMORROW
```
diff --git a/docs/commands/inf.md b/docs/commands/inf.md
index 494644d..9f8f4c8 100644
--- a/docs/commands/inf.md
+++ b/docs/commands/inf.md
@@ -5,7 +5,8 @@ It is a Dispatch Server and Notification Server command, without either a reques
It specifies which authentication methods the client is allowed to use.
-This command can only be sent once. Any further uses of this command in the same session is Undefined Behavour.
+This command can only be sent once.
+Any further uses of this command in the same session is Undefined Behaviour.
# Client/Request
`INF TrID`
diff --git a/docs/commands/ipg.md b/docs/commands/ipg.md
new file mode 100644
index 0000000..0b8ee2d
--- /dev/null
+++ b/docs/commands/ipg.md
@@ -0,0 +1,51 @@
+# Introduction
+`IPG` is a command introduced with [MSNP6](../versions/msnp6.md).
+
+It is a Notification Server command, WITH a response payload.
+
+Used to send incoming pages (mobile text messages) to the client.
+For the command to send text messages to a mobile device, read [PAG](pag.md) or [PGD](pgd.md).
+
+# Client/Request
+This command can not be sent from the client.
+
+# Server/Response
+```
+IPG length
+payload
+```
+
+Where `length` is the size (in bytes) of the `payload`.
+
+Where `payload` is a [`` document](../files/notification.md).
+
+# Examples
+
+## Incoming page
+```
+S: IPG 471
+
+
+
+
+
+
+
+
+
+
+ Hello! I am talking from a mobile device.
+
+
+
+```
+
+## Invalid context
+```
+C: IPG 1 0
+```
+
+Server disconnects client.
+
+# Known changes
+None.
diff --git a/docs/commands/lsg.md b/docs/commands/lsg.md
index b4ab2c4..9d36415 100644
--- a/docs/commands/lsg.md
+++ b/docs/commands/lsg.md
@@ -124,4 +124,4 @@ S: LSG Friends f60efbe7-94af-4b16-b926-e4e10878d329
* [MSNP8](../versions/msnp8.md): Removed iterator and List Version parameters from [SYN](syn.md) version.
* [MSNP10](../versions/msnp10.md): Removed unused `0` parameter and support for the `~` quasi-group.
Changed group IDs to group GUIDs if `ABCHMigrated: 1`.
-* Hard-removed in November 2003, Removed outside of [SYN](commands/syn.md), now just automatically disconnects.
+* Hard-removed in November 2003, Removed outside of [SYN](syn.md), now just automatically disconnects.
diff --git a/docs/commands/lst.md b/docs/commands/lst.md
index 8982ebc..d15865f 100644
--- a/docs/commands/lst.md
+++ b/docs/commands/lst.md
@@ -189,4 +189,4 @@ S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056
Changed `C=` to contact GUID and changed group ID list to group GUID list with `ABCHMigrated: 1` to SYN version.
* [MSNP12](../versions/msnp12.md): Added Network IDs to [SYN](syn.md) version.
* [MSNP13](../versions/msnp13.md): Removed [SYN](syn.md).
-* Hard-removed in November 2003, Removed outside of [SYN](commands/syn.md), now just automatically disconnects.
+* Hard-removed in November 2003, Removed outside of [SYN](syn.md), now just automatically disconnects.
diff --git a/docs/commands/msg.md b/docs/commands/msg.md
index 47f3cea..2190c09 100644
--- a/docs/commands/msg.md
+++ b/docs/commands/msg.md
@@ -9,7 +9,7 @@ Used to transfer MIME-headered data to other parties, whenever that be you or ot
*This command can only be sent in a Switchboard session.*
```
MSG TrID [ U | N | A | D ] length
-data
+payload
```
## Acknowledgement Types
* U: Unacknowledged, no response is sent.
@@ -19,15 +19,15 @@ data
Acknowledgement Type `D` is defined since [MSNP9](../versions/msnp9.md).
-Where `length` is the `length` in bytes of `data`.
+Where `length` is the size (in bytes) of the `payload`.
-Where `data` is the body of the message,
+Where `payload` is the body of the message,
usually containing a `MIME-Version` header and a `Content-Type`.
# Server/Response
```
MSG user-handle friendly-name length
-data
+payload
```
Where `user-handle` is either the senders's handle,
@@ -36,9 +36,9 @@ or `Hotmail`, if sent from the Notification Server itself.
Where `friendly-name` is either the URL-encoded Friendly Name of the sender,
or `Hotmail`, if sent from the Notification Server itself.
-Where `length` is the `length` in bytes of `data`.
+Where `length` is the size (in bytes) of the `payload`.
-Where `data` is the body of the message,
+Where `payload` is the body of the message,
usually containing a `MIME-Version` header and a `Content-Type`.
# Examples
diff --git a/docs/commands/not.md b/docs/commands/not.md
new file mode 100644
index 0000000..3d71686
--- /dev/null
+++ b/docs/commands/not.md
@@ -0,0 +1,128 @@
+# Introduction
+`NOT` is a command introduced with [MSNP5](../versions/msnp5.md).
+
+It is a Notification Server command, WITH a response payload.
+
+Used to send notifications ("alerts") to the client.
+
+# Client/Request
+This command can not be sent from the client.
+
+# Server/Response
+```
+NOT length
+payload
+```
+
+Where `length` is the size (in bytes) of the `payload`.
+
+Where `payload` is a [`` document](../files/notification.md).
+
+# Examples
+
+## Basic notification
+```
+S: NOT 367
+
+
+
+
+
+
+ This is an example notification.
+
+
+
+```
+
+## Advanced notification
+*Since [MSNP9](../versions/msnp9.md).*
+```
+S: NOT 457
+
+
+
+
+
+
+ This is an example notification.
+ <P>This is an <B>extended</B> notification!</P>
+
+
+
+```
+
+## Blog update notification
+*Since [MSNP11](../versions/msnp11.md).*
+```
+S: NOT 1249
+
+
+
+
+
+
+
+
+ <NotificationData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <SpaceHandle>
+ <ResourceID>example1!101</ResourceID>
+ </SpaceHandle>
+ <ComponentHandle>
+ <ResourceID>example2!101</ResourceID>
+ </ComponentHandle>
+ <OwnerCID>4294967298</OwnerCID>
+ <LastModifiedDate>2024-10-26T09:33:27.1020000-08:00</LastModifiedDate>
+ <HasNewItem>true<HasNewItem>
+ <ComponentSummary>
+ <Component xsi:type="MessageContainer">
+ <ResourceID>example2!102</ResourceID>
+ </Component>
+ <Items>
+ <Component xsi:type="Message">
+ <ResourceID>example2!101</ResourceID>
+ </Component>
+ </Items>
+ </ComponentSummary>
+ </NotificationData>
+
+
+
+```
+
+## Contact update notification
+*Since [MSNP13](../versions/msnp13.md).*
+```
+S: NOT 685
+
+
+
+
+
+
+
+
+ <NotificationData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <Service>ABCHInternal</Service>
+ <CID>4294967298</CID>
+ <LastModifiedDate>2024-10-26T09:33:27.1020000-08:00</LastModifiedDate>
+ <HasNewItem>false</HasNewItem>
+ </NotificationData>
+
+
+
+```
+
+## Invalid context
+*Inherited from being an unimplemented command.
+```
+C: NOT 1 0
+```
+
+Server disconnects client.
+
+# Known changes
+* [MSNP11](../versions/msnp11.md): Using an `` sub-document embedded into a `` document is supported.
+ Using the new sub-document, live blog updates are now sent.
+* [MSNP13](../versions/msnp13.md): Used for [Address Book Service](../services/abservice.md) live updates using the `` sub-document.
+* [MSNP18](../versions/msnp18.md): Used for live persistant chat group ("circle") updates using the `` sub-document.
diff --git a/docs/commands/pag.md b/docs/commands/pag.md
index 4e93ec7..8e8461a 100644
--- a/docs/commands/pag.md
+++ b/docs/commands/pag.md
@@ -5,6 +5,7 @@ It is a Notification Server command, with a request payload.
It sends a text message to a mobile device or pager.
For the version of this command that supports Web Watches, read [PGD](pgd.md).
+For the command that is sent when you receive a page, read [IPG](ipg.md).
# Client/Request
```
@@ -14,7 +15,7 @@ payload
Where `user-handle` is the target user for this page.
-Where `length` is the length of `payload`.
+Where `length` is the size (in bytes) of the `payload`.
Where `payload` is a XML-like payload that encodes the following characters:
* `&` turns into `&`
diff --git a/docs/commands/pgd.md b/docs/commands/pgd.md
index 429bf2d..f2dc527 100644
--- a/docs/commands/pgd.md
+++ b/docs/commands/pgd.md
@@ -5,6 +5,7 @@ It is a Notification Server command, with a request payload.
It sends a text message to a mobile device/pager or Web Watch.
For the version of this command that doesn't support Web watches, read [PAG](pag.md).
+For the command that is sent when you receive a page, read [IPG](ipg.md).
# Client/Request
```
@@ -18,7 +19,7 @@ Where `device-type` is a number:
* 1: Mobile Device
* 2: Web Watch
-Where `length` is the length of `payload`.
+Where `length` is the size (in bytes) of the `payload`.
Where `payload` is a XML-like payload that encodes the following characters:
* `&` turns into `&`
diff --git a/docs/commands/prp.md b/docs/commands/prp.md
index c24b7f4..f0e42e1 100644
--- a/docs/commands/prp.md
+++ b/docs/commands/prp.md
@@ -36,7 +36,7 @@ S: PRP 1 256 PHH 1%20(222)%203333
```
## Unknown property
-*NOTE: There is no defined behavour for this command specifically.*
+*NOTE: There is no defined behaviour for this command specifically.*
```
C: PRP 2 NEW very%20yes
```
diff --git a/docs/commands/qng.md b/docs/commands/qng.md
index 1a5d031..9f22aa7 100644
--- a/docs/commands/qng.md
+++ b/docs/commands/qng.md
@@ -3,7 +3,7 @@
It is a Notification Server command, without either a request or response payload.
-It is a response to the [PNG](../commands/png.md) command.
+It is the response to the [PNG](png.md) command.
# Client/Request
This command can not be sent from the client.
@@ -11,7 +11,7 @@ This command can not be sent from the client.
# Server/Response
`QNG {next-seconds}`
-Where `next-seconds` is the amount of seconds until the client should send another [PNG](../commands/png.md). Added since [MSNP9](../versions/msnp9.md).
+Where `next-seconds` is the amount of seconds until the client should send another [PNG](png.md). Added since [MSNP9](../versions/msnp9.md).
# Examples
diff --git a/docs/commands/qry.md b/docs/commands/qry.md
new file mode 100644
index 0000000..74e80d3
--- /dev/null
+++ b/docs/commands/qry.md
@@ -0,0 +1,66 @@
+# Introduction
+`QRY` is a command introduced with [MSNP6](../versions/msnp6.md).
+
+It is a Notification Server command, WITH a request payload but without a response payload.
+
+Responds to a challenge request ([CHL](chl.md) command).
+
+# Client/Request
+```
+QRY TrID public-key length
+payload
+```
+
+Where `public-key` is your client's Public Key.
+
+Where `length` is the size (in bytes) of the `payload`.
+
+Where `payload` is the challenge response.
+
+## Challenge responses
+Calculating the challenge response depends on the version of the protocol you are using.
+
+### Basic responses
+*Only in [MSNP6](../versions/msnp10.md) to [MSNP10](../versions/msnp10.md).*
+
+Simply MD5 hash the challenge and your client's Private Key concatenated together as a string.
+
+The output should be 32 bytes and lowercase hexadecimal.
+
+### Advanced responses
+*Since [MSNP11](../versions/msnp11.md).*
+
+Since this is more advanced of an algorithm,
+it will be avaliable as annotated source code in the Miscellaneous Files sectiom.
+
+TODO: Write said annotated source code.
+
+The output should be 32 bytes and lowercase hexadecimal.
+
+# Server/Response
+`QRY TrID`
+
+# Examples
+
+## Successful response
+```
+S: CHL 12345678901234567890
+C: QRY 1 msmsgs@msnmsgr.com 32
+8ba1bb9d6dbf624fee31a2053af5fdd0
+S: QRY 1
+```
+
+## Failed challenge
+*NOTE: This happens as-is in [MSNP11](../versions/msnp11.md),
+since it isn't using the new method.*
+```
+S: CHL 12345678901234567890
+C: QRY 2 msmsgs@msnmsgr.com 32
+8ba1bb9d6dbf624fee31a2053af5fdd0
+S: 540 2
+```
+
+Server disconnects client.
+
+# Known changes
+* [MSNP11](../versions/msnp11.md): Changed challenge response generation algorithm drastically.
diff --git a/docs/commands/reg.md b/docs/commands/reg.md
new file mode 100644
index 0000000..eec1f70
--- /dev/null
+++ b/docs/commands/reg.md
@@ -0,0 +1,132 @@
+# Introduction
+`REG` is a command introduced with [MSNP7](../versions/msnp7.md)
+
+It is a Notification Server command, without a request or response payload.
+
+Renames an existing group. Replaced with [Address Book Service](../services/abservice.md)'s `ABGroupUpdate` in [MSNP13](../versions/msnp13.md).
+
+# Client/Request
+`REG TrID group-id new-group-name {0}`
+
+Where `group-id` is the group's identification number.
+With `ABCHMigrated: 1`, this is instead the group's GUID.
+
+Where `new-group-name` is the name you want to rename `group-id` to.
+Has a limit of 127 bytes (URL-encoded characters count as 3 bytes).
+
+Where `0` is always `0`. Removed in [MSNP10](../versions/msnp10.md).
+
+# Server/Response
+`REG TrID {list-version} group-id group-name {0}`
+
+Where `list-version` is the new List Version. Removed in [MSNP10](../versions/msnp10.md)
+
+Where` group-name` is the updated name of the group.
+
+# Examples
+
+## With list versions
+*Only in [MSNP7](../versions/msnp7.md) to [MSNP9](../versions/msnp9.md).*
+
+### Normal use
+```
+C: REG 1 0 example%20group%20rename 0
+S: REG 1 256 0 example%20group%20rename 0
+```
+
+### Cannot rename group that doesn't exist yet
+```
+C: REG 2 2 non-existant%20group 0
+S: 224 2
+```
+
+### Cannot rename out-of-bounds groups
+```
+C: REG 3 30 example%20out%20of%20bounds%20group 0
+```
+
+Server disconnects client
+
+### Group name extremely long
+*NOTE: This has been line-breaked.
+Lines beginnging with `..` followed by a space are continuations of the previous line.*
+```
+C: REG 4 0 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+.. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+.. AAAAAAAAA 0
+```
+
+Server disconnects client.
+
+## Without list versions
+
+### With group IDs
+*Only in [MSNP10](../versions/msnp10.md) with `ABCHMigrated: 0`.*
+
+#### Normal use
+```
+C: REG 5 0 another%20example%20group%20rename
+S: REG 5 0 another%20example%20group%20rename
+```
+
+#### Cannot rename group that doesn't exist yet
+```
+C: REG 6 2 still%20a%20non-existant%20group
+S: 224 6
+```
+
+#### Cannot rename out-of-bounds groups
+```
+C: REG 7 30 still%20out%20of%20bounds
+```
+
+Server disconnects client.
+
+### Group name extremely long
+*NOTE: This has been line-breaked.
+Lines beginnging with `..` followed by a space are continuations of the previous line.*
+```
+C: REG 8 0 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+.. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+.. AAAAAAAAA
+```
+
+Server disconnects client.
+
+### With group GUIDs
+*Since [MSNP10](../versions/msnp10.md) with `ABCHMigrated: 1`.*
+
+#### Normal use
+```
+C: REG 9 d6deeacd-7849-4de4-93c5-d130915d0042 yet%20another%20example%20group%20rename
+C: REG 9 d6deeacd-7849-4de4-93c5-d130915d0042 yet%20another%20example%20group%20rename
+```
+
+#### Cannot rename group that doesn't exist yet
+```
+C: REG 10 11111111-2222-3333-4444-555555555555 still%20a%20non-existant%20group
+S: 224 10
+```
+
+#### Cannot use an invalid GUID
+```
+C: REG 11 THIS0IS0-NOT0-A0VA-LID0-GUID0AT0ALL! very%20invalid%20GUID%20there
+```
+
+Server disconnects client.
+
+### Group name extremely long
+*NOTE: This has been line-breaked.
+Lines beginnging with `..` followed by a space are continuations of the previous line.*
+```
+C: REG 12 d6deeacd-7849-4de4-93c5-d130915d0042 AAAAAAAAAAAAAAAAAAAA
+.. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+.. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+```
+
+Server disconnects client.
+
+# Known changes
+* [MSNP10](../versions/msnp10.md): Removed unused `0` parameter, removed List Versions,
+ and with `ABCHMigrated: 1`, changed group IDs to GUIDs.
+* [MSNP13](../versions/msnp13.md): Removed (automatic disconnect), use [Address Book Service](../services/abservice.md)'s `ABGroupUpdate` instead.
diff --git a/docs/commands/rmg.md b/docs/commands/rmg.md
new file mode 100644
index 0000000..be0eea0
--- /dev/null
+++ b/docs/commands/rmg.md
@@ -0,0 +1,115 @@
+# Introduction
+`RMG` is a command introduced with [MSNP7](../versions/msnp7.md).
+
+It is a Notification Server command, without either a request or response payload.
+
+Removes all users from a group and the group itself.
+Replaced with [Address Book Service](../services/abservice.md)'s `ABGroupDelete` in [MSNP13](../versions/msnp13.md).
+
+# Client/Request
+`RMG TrID group-id`
+
+Where `group-id` is the identification number of the group you would like to remove.
+With `ABCHMigrated: 1`, this parameter is instead the GUID of the group you'd like to remove.
+You cannot remove the "Other Contacts" group (group ID `0`).
+
+*NOTE: If users are exclusively in the group you remove,
+THEY WILL BE ALSO REMOVED FROM THE FORWARD LIST (FL).*
+
+# Server/Response
+`RMG TrID {list-version} group-id`
+
+Where `list-version` is the new List Version. Removed in [MSNP10](../versions/msnp10.md).
+
+# Examples
+
+## With List Versions
+*Only in [MSNP7](../versions/msnp7.md) to [MSNP9](../versions/msnp9.md).*
+
+## Without List Versions
+
+### Normal use
+```
+C: RMG 1 1
+S: RMG 1 256 1
+```
+
+### Group doesn't exist yet
+```
+C: RMG 2 2
+S: 224 2
+```
+
+### Can not remove the initial group
+```
+C: RMG 3 0
+S: 230 3
+```
+
+### Can not remove out-of-bounds groups
+```
+C: RMG 4 30
+```
+
+Server disconnects client.
+
+### With group IDs
+*Only in [MSNP10](../versions/msnp10.md) with `ABCHMigrated: 0`.*
+
+#### Normal use
+```
+C: RMG 5 1
+S: RMG 5 1
+```
+
+#### Group doesn't exist yet
+```
+C: RMG 6 2
+S: 224 6
+```
+
+#### Can not remove the initial group
+```
+C: RMG 7 0
+S: 230 7
+```
+
+#### Can not remove out-of-bounds groups
+```
+C: RMG 8 30
+```
+
+Server disconnects client.
+
+### With group GUIDs
+*Since [MSNP10](../versions/msnp10.md) with `ABCHMigrated: 1`.*
+
+#### Normal use
+```
+C: RMG 9 f60efbe7-94af-4b16-b926-e4e10878d329
+S: RMG 9 f60efbe7-94af-4b16-b926-e4e10878d329
+```
+
+#### Group doesn't exist yet
+```
+C: RMG 10 11111111-2222-3333-4444-555555555555
+S: 224 10
+```
+
+#### Can not remove the initial group
+```
+C: RMG 11 d6deeacd-7849-4de4-93c5-d130915d0042
+S: 230 11
+```
+
+#### Can not remove out-of-bounds groups
+```
+C: RMG 8 THIS0IS0-NOT0-A0VA-LID0-GUID0AT0ALL!
+```
+
+Server disconnects client.
+
+# Known changes
+* [MSNP10](../versions/msnp10.md): Removed the List Version parameter, and with `ABCHMigrated: 1`
+* [MSNP13](../versions/msnp13.md): Removed (automatic disconnect),
+ use [Address Book Services](../services/abservice.md)'s `ABGroupDelete` instead.
diff --git a/docs/commands/sdc.md b/docs/commands/sdc.md
index 6695ae9..f55fb3d 100644
--- a/docs/commands/sdc.md
+++ b/docs/commands/sdc.md
@@ -9,7 +9,7 @@ For the version of this command that does not support friendly names, read [SND]
# Client/Request
```
SDC TrID target-address translation-lcid requesting-library client-identification X X my-friendly-name length
-{payload}
+payload
````
Where `target-address` is the E-mail address or index from the last [FND](fnd.md) response you'd like to invite to the service.
@@ -26,11 +26,11 @@ Where `my-friendly-name` is your current friendly name.
Invalid escaped characters are forcefully re-encoded to`%3DXX`,
where `XX` is original escaped character code.
-Where `length` is the length of the payload.
+Where `length` is the size (in bytes) of the `payload`.
Set to `0` if you don't want to add anything else to your invitation.
Where `payload` is plain-text data that is included in the invitation.
-If this is `0`, this parameter is empty.
+If the `length` is `0`, the `payload` is not to be set.
# Server/Response
`SDC TrID OK`
diff --git a/docs/commands/syn.md b/docs/commands/syn.md
index 1fbbc83..63d98d2 100644
--- a/docs/commands/syn.md
+++ b/docs/commands/syn.md
@@ -1,6 +1,13 @@
# Introduction
`SYN` is a command introduced with [MSNP2](../versions/msnp2.md)
+It is a Notification Server command, without a request or response payload.
+
+Synchronizes user options and every contact list.
+
+This command can only be sent once.
+Any further uses of this command in the same session is Undefined Behaviour.
+
# Client/Request
`SYN TrID list-version {settings-version}`
@@ -121,6 +128,10 @@ S: LST 3 RL 255 1 1 anotheruser@hotmail.com another%20user
*This only happens if the only group is `~`,
and you set the client to sort by groups.*
+Used commands:
+* [REG](reg.md)
+* [ADG](adg.md)
+
```
S: LSG 3 255 1 1 0 ~ 0
```
@@ -163,6 +174,10 @@ S: BPR PHH 1%20(222)%20333%204444
*This only happens if the only group is `~`,
and you set the client to sort by groups.*
+Used commands:
+* [REG](reg.md)
+* [ADG](adg.md)
+
```
S: LSG 0 ~ 0
```
diff --git a/docs/commands/usr.md b/docs/commands/usr.md
index 7b00b0e..f059e28 100644
--- a/docs/commands/usr.md
+++ b/docs/commands/usr.md
@@ -6,7 +6,8 @@ The command exists in all services, without a request or response payload.
Specifies a user that wants to authenticate to the service.
For the command that is used when sending this to a Dispatch Server, read [XFR](xfr.md).
-This command can only be sent once. Any further uses of this command in the same session is Undefined Behavour.
+This command can only be sent once.
+Any further uses of this command in the same session is Undefined Behaviour.
# Client/Request
diff --git a/docs/commands/ver.md b/docs/commands/ver.md
index fd9858c..9c6ebe0 100644
--- a/docs/commands/ver.md
+++ b/docs/commands/ver.md
@@ -5,7 +5,8 @@ It is a Dispatch Server and Notification Server command, without either a reques
It specifies which protocols the client can accept, and which one the server likes the best.
-This command can only be sent once. Any further uses of this command in the same session is Undefined Behavour.
+This command can only be sent once.
+Any further uses of this command in the same session is Undefined Behaviour.
# Client/Request
`VER TrID dialect-name {dialect-name ...}`
diff --git a/docs/files/notification.md b/docs/files/notification.md
new file mode 100644
index 0000000..7460459
--- /dev/null
+++ b/docs/files/notification.md
@@ -0,0 +1,207 @@
+# Introduction
+`` documents are the basis behind the [NOT](../commands/not.md) and [IPG](../commands/ipg.md) commands.
+Being such, it was introduced with [MSNP5](../versions/msnp5.md).
+
+This article only describes the `` command from .NET Alerts 5.0 and below,
+and not the `` element used in .NET Alerts 6.0 and above.
+
+# NOTIFICATION
+This is the root element of the document, and supports four attributes:
+* `ver`: This is always `1`. Seems optional, or was removed later.
+* `id`: A 32-bit unsigned integer that is set by the sending party.
+* `siteid`: The .NET Alerts Site ID, not to be confused with the .NET Passport Site ID.
+ Setting this to some values changes the default icon:
+ * `0`: Use stocks (stack of coins or line-chart) icon
+ * `1`: Use calendar (clock) icon
+ * Other values: Use default bell icon or custom icon
+* `siteurl`: The base URL to the service used in later relative URL attributes.
+
+## TO
+This element supports two attributes:
+* `pid`: The recipient's Passport Unique ID.
+ The format for the PUID is `0xHHHHHHHH:0xLLLLLLLL`,
+ where `H` is the hexadecimal representation of the profile's `MemberIdHigh` variable,
+ and where `L` is the hexadecimal representation of the profile's `MemberIdLow` variable.
+* `name`: The recipient's display name or user handle. Optional.
+
+If this element (``) does not have a (``) element, it is to be empty.
+
+### VIA
+*NOTE: This element seems to only exist as backwards compatibility from .NET Alerts 6.0.*
+
+This empty element only supports one attribute:
+* `agent`: What this alert is intended to be viewed by:
+ * `email`: A e-mail message.
+ * `messenger`: A "toast" generated by the Official Client.
+ * `mobile`: A mobile device.
+
+## FROM
+*NOTE: This element should NOT be added to any `` documents.*
+
+This optional empty element supports two attributes:
+* `pid`: The sender's Passport Unique ID. Follows the same format as [``](#to)'s `pid` parameter.
+* `from`: The sender's display name or user handle. Optional.
+
+## MSG
+This is the primary element of the document, and supports two attributes:
+* `pri`: This is always empty, and should NOT be set. May be set to `1` for incoming pages. Optional.
+* `id`: The notification's numeric ID, defaulting to '0', and should NOT be changed.
+
+### ACTION
+This element supports only one attribute:
+* `url`: The main URL that is used when this notification is activated, relative to `siteurl`.
+
+When opened by a client, the following are added to the URL as query parameters:
+* `to_pid`: The `pid` attribute from [``](#to) element.
+* `notification_id`: The `id` attribute from [``](#notification) element.
+* `message_id`: The `id` attribute from [``](#msg) element.
+* `agent`: The client that activated this notification. The Official Client sets this to `messenger`. Optional.
+
+### SUBSCR
+This element supports only one attribute:
+* `url`: The configuration URL that is used when the notification's `change` option is activated, relative to `siteurl`.
+
+When opened by a client, the following are added to the URL as query parameters:
+* `to_pid`: The `pid` attribute from [``](#to) element.
+* `notification_id`: The `id` attribute from [``](#notification) element.
+* `message_id`: The `id` attribute from [``](#msg) element.
+* `agent`: The client that activated this notification. The Official Client sets this to `messenger`. Optional.
+
+### CAT
+*NOTE: This element is obsolete and
+should NOT be added to any `` documents.*
+
+This optional empty element only supports one attribute:
+* `id`: The category ID of this notification.
+
+### BODY
+This is the main body of the document, and supports two attributes:
+
+* `lang`: The decimal LCID that this notification document is meant to display in. Optional, but should be set.
+* `icon`: The custom 32x32 PNG icon URL, relative to `siteurl`. Optional.
+ Note: Newer versions of the client support 48x32 icons and will use them automatically
+ if your icon URL has `_32x32` in it, the client can replace it with `_48x32`.
+ If you do not have a 48x32 icon, it will fall-back to the original 32x32 one.
+
+The default element that this parents is ``. It may also contain other types of data.
+One such data type is the [``](#notificationdata) sub-document.
+
+This element (including the `` and ``) are restricted in size to 1024 bytes.
+
+#### NAME
+*NOTE: This element should NOT be added to any `` documents.*
+
+This optional element contains the friendly name of the recipient.
+
+#### TEXT
+This optional element contains the text data of the notification.
+
+#### TEXTX
+This optional element contains the extended text data of the notification,
+supported by [MSNP9](../versions/msnp9.md) and higher.
+
+The [``](#text) element is required for this to be parsed by the Official Client.
+
+The inner docment of this is required to be XML encoded.
+
+##### P
+A paragraph, required for [``](#textx) elements to parse correctly.
+
+This element supports one attribute:
+* `align`: The extended notification's text alignment:
+ * `left`
+ * `center`
+ * `right`
+
+This element may contain any of the following elements:
+* `P`: Nested paragraph, also supporting the `align` element.
+* `B`: Bold text.
+* `I`: Italic text.
+* `BR`: This empty element denotes a line-break.
+
+# NotificationData
+This element may instead be contained in the [``](#body) element entirely,
+replacing all of it's children.
+This sub-document is XML encoded if set as the inner data of the [``](#body) element.
+
+This element supports two attributes:
+* `xmlns:xsd`: is always set to `http://www.w3.org/2001/XMLSchema`
+* `xmlns:xsi`: is always set to `http://www.w3.org/2001/XMLSchema-instance`
+
+## Service
+Contains only `ABCHInternal`. Unknown if there are other values supported.
+
+This element is exclusive to notifications generated by the [Address Book Service](../services/abservice.md).
+
+## CID
+Contains only the Contact ID of the user associated with this notification.
+
+This element is exclusive to notifications generated by the [Address Book Service](../services/abservice.md).
+
+## SpaceHandle
+This element only has one child named `ResourceID`.
+
+This element and it's children are exclusive to notifications generated by the blog service.
+
+### ResourceID
+Contains the blog service's ID for this user.
+
+## ComponentHandle
+This element only has one child named `ResourceID`.
+
+This element and it's children are exclusive to notifications generated by the blog service.
+
+### ResourceID
+Contains the blog service's ID for the main component.
+
+## OwnerCID
+This element only contains a signed 64-bit integer for the Contact ID.
+Added since [MSNP13](../versions/msnp13.md).
+
+This element and it's children are exclusive to notifications generated by the blog service.
+
+## LastModifiedDate
+Contains a ISO 8601-compatible timestamp with 7 millisecond digits.
+
+This element is omitted in notifications generated by the persistant group service.
+
+## Action
+Only observed to contain `Add`. Unknown if there are other values supported.
+
+This element is exclusive to notifications generated by the blog service.
+
+## HasNewItem
+Contains either `true` or `false`.
+
+## ComponentSummary
+This element has two children named `` and ``.
+
+This element and it's children are exclusive to notifications generated by the blog service.
+
+### Component
+This element has one child named `ResourceID` and supports one attribute:
+* `xsi:type`: The type of this ``:
+ * `List`: A list.
+ * `Folder`: A photo collection.
+ * `MessageContainer`: A text message container.
+
+#### ResourceID
+Contains the blog service's ID for this ``.
+
+### Items
+This element supports multiple `- ` child elements.
+
+#### Item
+This element has one child named `ResourceID` and supports one attribute:
+* `xsi:type`: The type of this ``:
+ * `ListEntry`: An entry on a list.
+ * `Photo`: A photo.
+ * `Message`: A text message.
+
+##### ResourceID
+Contains the blog service's ID for this `
- `.
+
+## CircleId
+Contains the GUID of the persistant group.
+
+This element is exclusive to notifications generated by the persistant group service.
diff --git a/docs/index.md b/docs/index.md
index e3cbd3d..8d502ed 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -39,7 +39,9 @@ More is to come soon! Hopefully!
* [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 ``'d circle updates get 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.
@@ -68,7 +70,7 @@ More is to come soon! Hopefully!
* PP30: Passport over SOAP that was implemented in Client Version 7.5+ ([MSNP12](versions/msnp12.md)).
* SOAP: Simple Object Access Protocol, A wrapper over XML. That's the kindest thing I can write about it.
* Passport: The Authentication Server and/or Protocol.
-* Undefined Behavour: An intentional blank left in the documentation, basically as a "I am not responsible for what this does to your client or server" warning.
+* 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).
@@ -80,7 +82,7 @@ More is to come soon! Hopefully!
* TrID: Transaction ID. Links the server's response to the client's request.
* User handle: A 129-character max address used across the protocol.
May be called "principles" in other places.
-* Public Key, Private Key: The parameters used in QRY.
+* 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.
@@ -90,3 +92,7 @@ More is to come soon! Hopefully!
The git repo is avaliable at .
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).
+
+# License
+This documentational site, and it's related sources are avaliable under the
+[license of the GNU Free Documentation License 1.3](license.md).
\ No newline at end of file
diff --git a/docs/license.md b/docs/license.md
new file mode 100644
index 0000000..05e2ce1
--- /dev/null
+++ b/docs/license.md
@@ -0,0 +1,445 @@
+# GNU Free Documentation License
+
+Version 1.3, 3 November 2008
+
+Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation,
+Inc.
+
+Everyone is permitted to copy and distribute verbatim copies of this
+license document, but changing it is not allowed.
+
+## 0. PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document "free" in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does. But this License is not limited to software manuals; it
+can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book. We recommend this License
+principally for works whose purpose is instruction or reference.
+
+## 1. APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License. Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein. The "Document", below, refers
+to any such manual or work. Any member of the public is a licensee,
+and is addressed as "you". You accept the license if you copy, modify
+or distribute the work in a way requiring permission under copyright
+law.
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A "Secondary Section" is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall
+subject (or to related matters) and contains nothing that could fall
+directly within that overall subject. (Thus, if the Document is in
+part a textbook of mathematics, a Secondary Section may not explain
+any mathematics.) The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The "Invariant Sections" are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License. If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant. The Document may contain zero
+Invariant Sections. If the Document does not identify any Invariant
+Sections then there are none.
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License. A Front-Cover Text may be
+at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A "Transparent" copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters. A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text. A copy that is not "Transparent" is called "Opaque".
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification. Examples of
+transparent image formats include PNG, XCF and JPG. Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+The "publisher" means any person or entity that distributes copies of
+the Document to the public.
+
+A section "Entitled XYZ" means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as "Acknowledgements",
+"Dedications", "Endorsements", or "History".) To "Preserve the Title"
+of such a section when you modify the Document means that it remains a
+section "Entitled XYZ" according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+## 2. VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no
+other conditions whatsoever to those of this License. You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute. However, you may accept
+compensation in exchange for copies. If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+## 3. COPYING IN QUANTITY
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover. Both covers must also clearly and legibly identify you
+as the publisher of these copies. The front cover must present the
+full title with all words of the title equally prominent and visible.
+You may add other material on the covers in addition. Copying with
+changes limited to the covers, as long as they preserve the title of
+the Document and satisfy these conditions, can be treated as verbatim
+copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to
+give them a chance to provide you with an updated version of the
+Document.
+
+## 4. MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it. In addition, you must do these things in the Modified Version:
+
+- A. Use in the Title Page (and on the covers, if any) a title
+ distinct from that of the Document, and from those of previous
+ versions (which should, if there were any, be listed in the
+ History section of the Document). You may use the same title as a
+ previous version if the original publisher of that version
+ gives permission.
+- B. List on the Title Page, as authors, one or more persons or
+ entities responsible for authorship of the modifications in the
+ Modified Version, together with at least five of the principal
+ authors of the Document (all of its principal authors, if it has
+ fewer than five), unless they release you from this requirement.
+- C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+- D. Preserve all the copyright notices of the Document.
+- E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+- F. Include, immediately after the copyright notices, a license
+ notice giving the public permission to use the Modified Version
+ under the terms of this License, in the form shown in the
+ Addendum below.
+- G. Preserve in that license notice the full lists of Invariant
+ Sections and required Cover Texts given in the Document's
+ license notice.
+- H. Include an unaltered copy of this License.
+- I. Preserve the section Entitled "History", Preserve its Title,
+ and add to it an item stating at least the title, year, new
+ authors, and publisher of the Modified Version as given on the
+ Title Page. If there is no section Entitled "History" in the
+ Document, create one stating the title, year, authors, and
+ publisher of the Document as given on its Title Page, then add an
+ item describing the Modified Version as stated in the
+ previous sentence.
+- J. Preserve the network location, if any, given in the Document
+ for public access to a Transparent copy of the Document, and
+ likewise the network locations given in the Document for previous
+ versions it was based on. These may be placed in the "History"
+ section. You may omit a network location for a work that was
+ published at least four years before the Document itself, or if
+ the original publisher of the version it refers to
+ gives permission.
+- K. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, and preserve in the section all
+ the substance and tone of each of the contributor acknowledgements
+ and/or dedications given therein.
+- L. Preserve all the Invariant Sections of the Document, unaltered
+ in their text and in their titles. Section numbers or the
+ equivalent are not considered part of the section titles.
+- M. Delete any section Entitled "Endorsements". Such a section may
+ not be included in the Modified Version.
+- N. Do not retitle any existing section to be Entitled
+ "Endorsements" or to conflict in title with any Invariant Section.
+- O. Preserve any Warranty Disclaimers.
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant. To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties—for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version. Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity. If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+## 5. COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy. If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled "History"
+in the various original documents, forming one section Entitled
+"History"; likewise combine any sections Entitled "Acknowledgements",
+and any sections Entitled "Dedications". You must delete all sections
+Entitled "Endorsements".
+
+## 6. COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other
+documents released under this License, and replace the individual
+copies of this License in the various documents with a single copy
+that is included in the collection, provided that you follow the rules
+of this License for verbatim copying of each of the documents in all
+other respects.
+
+You may extract a single document from such a collection, and
+distribute it individually under this License, provided you insert a
+copy of this License into the extracted document, and follow this
+License in all other respects regarding verbatim copying of that
+document.
+
+## 7. AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an "aggregate" if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one half of
+the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+## 8. TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections. You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled "Acknowledgements",
+"Dedications", or "History", the requirement (section 4) to Preserve
+its Title (section 1) will typically require changing the actual
+title.
+
+## 9. TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document
+except as expressly provided under this License. Any attempt otherwise
+to copy, modify, sublicense, or distribute it is void, and will
+automatically terminate your rights under this License.
+
+However, if you cease all violation of this License, then your license
+from a particular copyright holder is reinstated (a) provisionally,
+unless and until the copyright holder explicitly and finally
+terminates your license, and (b) permanently, if the copyright holder
+fails to notify you of the violation by some reasonable means prior to
+60 days after the cessation.
+
+Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, receipt of a copy of some or all of the same material does
+not give you any rights to use it.
+
+## 10. FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions of the
+GNU Free Documentation License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in
+detail to address new problems or concerns. See
+.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation. If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation. If the Document specifies
+that a proxy can decide which future versions of this License can be
+used, that proxy's public statement of acceptance of a version
+permanently authorizes you to choose that version for the Document.
+
+## 11. RELICENSING
+
+"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+World Wide Web server that publishes copyrightable works and also
+provides prominent facilities for anybody to edit those works. A
+public wiki that anybody can edit is an example of such a server. A
+"Massive Multiauthor Collaboration" (or "MMC") contained in the site
+means any set of copyrightable works thus published on the MMC site.
+
+"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+license published by Creative Commons Corporation, a not-for-profit
+corporation with a principal place of business in San Francisco,
+California, as well as future copyleft versions of that license
+published by that same organization.
+
+"Incorporate" means to publish or republish a Document, in whole or in
+part, as part of another Document.
+
+An MMC is "eligible for relicensing" if it is licensed under this
+License, and if all works that were first published under this License
+somewhere other than this MMC, and subsequently incorporated in whole
+or in part into the MMC, (1) had no cover texts or invariant sections,
+and (2) were thus incorporated prior to November 1, 2008.
+
+The operator of an MMC Site may republish an MMC contained in the site
+under CC-BY-SA on the same site at any time before August 1, 2009,
+provided the MMC is eligible for relicensing.
+
+## ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+ Copyright (C) YEAR YOUR NAME.
+ 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 section entitled "GNU
+ Free Documentation License".
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with … Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with the
+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License, to
+permit their use in free software.
diff --git a/docs/reference_constants.md b/docs/reference_constants.md
index 4f91355..fc27a0f 100644
--- a/docs/reference_constants.md
+++ b/docs/reference_constants.md
@@ -22,6 +22,9 @@ This refers to all the constants used on the wiki.
* My [Address Book Service](services/abservice.md) GUID: `00000000-0000-0000-0000-000000000000`
* John's (mobile-only contact) GUID: `a47e39cf-312c-4100-94a6-f2b33adf5b68`
+## Other things
+* My Passport Unique ID: `0x00000001:0x000000002`, High: `1`, Low: `2`.
+
## MSNP Servers
* The Dispatch Server: `10.0.0.1:1863`
* The Notification Server: `10.0.0.5:1863`
diff --git a/docs/table_of_commands.md b/docs/table_of_commands.md
index ba83822..e1ad1c1 100644
--- a/docs/table_of_commands.md
+++ b/docs/table_of_commands.md
@@ -27,15 +27,15 @@ This is a list of all known MSNP commands and their originating version.
| [`PRP`](commands/prp.md) | N | Y | N | [MSNP5](versions/msnp5.md) | [MSNP8](versions/msnp8.md) (Removed List Version in [SYN](commands/syn.md)), [MSNP10](versions/msnp10.md) (Removed List Version outside of [SYN](commands/syn.md) if `ABCHMigrated: 1`) |
| [`BPR`](commands/bpr.md) | N | N | Y | [MSNP5](versions/msnp5.md) | [MSNP8](versions/msnp8.md) (Removed List Version and user handle in [SYN](commands/syn.md)), [MSNP10](versions/msnp10.md) (Removed List Version outside of SYN if `ABCHMigrated: 1`) |
| [`RNG`](commands/rng.md) | N | N | Y | [MSNP2](versions/msnp2.md) | |
-| [`LST`](commands/lst.md) | N | Y | Y\*| [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP8](versions/msnp8.md) ([SYN](commands/syn.md): removed iterator parameters, condensed all lists into a single parameter, removed List Version), [MSNP10](versions/msnp10.md) (Added prefixes to contact's handle and friendly name, and added a GUID parameter if `ABCHMigrated: 1`. Also changed group IDs to GUIDs.), [MSNP12](versions/msnp12.md) (Added network IDs), [MSNP13](versions/msnp13.md) (Likely removed), November 2003 (Removed outside of [SYN](commands/syn.md), not really any specific MSNP update, just hard removed with an automatic disconnect.) |
+| [`LST`](commands/lst.md) | N | Y | Y\*| [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP8](versions/msnp8.md) ([SYN](commands/syn.md): removed iterator parameters, condensed all lists into a single parameter, removed List Version), [MSNP10](versions/msnp10.md) (Added prefixes to contact's handle and friendly name, and added a GUID parameter if `ABCHMigrated: 1`. Also changed group IDs to GUIDs.), [MSNP12](versions/msnp12.md) (Added network IDs), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s `ABFindAll` and [Contact Sharing Service](services/sharingservice.md)'s `FindMemberships` instead.), November 2003 (Removed outside of [SYN](commands/syn.md), not really any specific MSNP update, just hard removed with an automatic disconnect.) |
| [`ADD`](commands/add.md) | N | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP10](versions/msnp10.md) (Removed; automatic disconnect, use [ADC](commands/adc.md) instead) |
| [`REM`](commands/rem.md) | N | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP10](versions/msnp10.md) (Replaced user handles with GUIDs if list is the Forward List (FL), and removed list versions from all responses), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, replaced with RML) |
| [`FLN`](commands/fln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | |
| [`PNG`](commands/png.md) | N | Y | N | [MSNP2](versions/msnp2.md) | |
| [`QNG`](commands/qng.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP9](versions/msnp9.md) (Added next seconds parameter) |
| [`URL`](commands/url.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (Added Passport Site ID support as parameter 3), removed `PASSWORD` service), [MSNP5](versions/msnp5.md) (Added `MOBILE` and `CHGMOB` services), [MSNP6](versions/msnp6.md) (Added `PROFILE`, `N2PACCOUNT` and `N2PFUND` services), [MSNP7](versions/msnp7.md) (Added `CHAT` service), [MSNP8](versions/msnp8.md) (Added `ADDRBOOK`, `ADVSEARCH` and `INTSEARCH` services) |
-| [`LSG`](commands/lsg.md) | N | Y | Y\*| [MSNP7](versions/msnp7.md) | [MSNP8](versions/msnp8.md) (Removed iterator and List Version parameters from [SYN](commands/syn.md) version), [MSNP10](versions/msnp10.md) (Removed unused parameter, and replaced Group IDs with Group GUIDs if `ABCHMigrated: 1`.), November 2003 (Removed outside of [SYN](commands/syn.md), not really any specific MSNP update, just hard removed with an automatic disconnect.) |
-| [`ADG`](commands/adg.md) | N | Y | N | [MSNP7](versions/msnp7.md) | [MSNP10](versions/msnp10.md) (Removed unused parameter, and replaced Group IDs with Group GUIDs if `ABCHMigrated: 1`), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect?, use [Address Book Service](services/abservice.md) `ABGroupAdd` instead.) |
+| [`LSG`](commands/lsg.md) | N | Y | Y\*| [MSNP7](versions/msnp7.md) | [MSNP8](versions/msnp8.md) (Removed iterator and List Version parameters from [SYN](commands/syn.md) version), [MSNP10](versions/msnp10.md) (Removed unused parameter, and replaced Group IDs with Group GUIDs if `ABCHMigrated: 1`.), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s `ABFindAll` instead.) November 2003 (Removed outside of [SYN](commands/syn.md), not really any specific MSNP update, just hard removed with an automatic disconnect.) |
+| [`ADG`](commands/adg.md) | N | Y | N | [MSNP7](versions/msnp7.md) | [MSNP10](versions/msnp10.md) (Removed unused `0` and List Version parameters, and replaced Group IDs with Group GUIDs if `ABCHMigrated: 1`), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect?, use [Address Book Service](services/abservice.md) `ABGroupAdd` instead.) |
| [`ILN`](commands/iln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP8](versions/msnp8.md) (Added support for Client Capabilities), [MSNP9](versions/msnp9.md) (Added optional MSNObject parameter), [MSNP14](versions/msnp14.md) (Added Network ID parameter and optional Presence Icon URL parameter), [MSNP16](versions/msnp16.md) (Support for the Extended Client Capabilities, changing the original Client Capabilities parameter to now be delimited by a colon) |
| [`NLN`](commands/nln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP8](versions/msnp8.md) (Added support for Client Capabilities), [MSNP9](versions/msnp9.md) (Added optional MSNObject parameter), [MSNP14](versions/msnp14.md) (Added Network ID parameter and optional Presence Icon URL parameter), [MSNP16](versions/msnp16.md) (Support for the Extended Client Capabilities, changing the original Client Capabilities parameter to now be delimited by a colon) |
| [`REA`](commands/rea.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP10](versions/msnp10.md) (Removed; automatic disconnect) |
@@ -45,19 +45,17 @@ This is a list of all known MSNP commands and their originating version.
| [`PAG`](commands/pag.md) | Y | Y | N | [MSNP5](versions/msnp5.md) | [MSNP9](versions/msnp9.md) (Removed; error 715, use [PGD](commands/pgd.md) instead.) |
| [`PGD`](commands/pgd.md) | Y | Y | N | [MSNP9](versions/msnp9.md) | |
| [`SBP`](commands/sbp.md) | N | Y | N | [MSNP10](versions/msnp10.md) | [MSNP10](versions/msnp10.md) (`ABCHMigrated: 1`: Contact user handles are now GUIDs.), [MSNP11](versions/msnp11.md) (Added property `HSB`, for Has Blog. Set by the relevant Client Capability.), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s `ABContactUpdate` action instead.) |
-| [`CHL`](commands/chl.md) | N | Y | Y | [MSNP6](versions/msnp6.md) | [MSNP10](versions/msnp10.md) (Changed QRY response algorithm) |
+| [`CHL`](commands/chl.md) | N | Y | Y | [MSNP6](versions/msnp6.md) | [MSNP10](versions/msnp10.md) (Changed challenge response ([QRY](commands/qry.md) commands) generation algorithm drastically.) |
| [`GCF`](commands/gcf.md) | Y | Y | Y | [MSNP11](versions/msnp11.md) | [MSNP13](versions/msnp13.md) (Command is now always asynchronous and always retuns `Shields.xml` in a new wrapper.) |
| [`SYN`](commands/syn.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP5](versions/msnp5.md) (Added [BPR](commands/bpr.md) and [PRP](commands/prp.md) to response.), [MSNP7](versions/msnp7.md) (Added [LSG](commands/lsg.md) support and groups in [LST](commands/lst.md).), [MSNP8](versions/msnp8.md) (Unset properties are now omitted, new response parameters to replace [LSG](commands/lsg.md) and [LST](commands/lst.md) iterator parameters, Transaction IDs and List Version was removed from used commands), [MSNP10](versions/msnp10.md) (Added new parameters for the settings version. With `ABCHMigrated: 1`, both versions are now timestamps), [MSNP12](versions/msnp12.md) (Added Network IDs to [LST](commands/lst.md).), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use the [Address Book Service](../services/abservice.md) and the [Contact Sharing Service](../services/sharingservice.md) instead.) |
+| [`NOT`](commands/not.md) | Y | N | Y | [MSNP5](versions/msnp5.md) | [MSNP11](versions/msnp11.md) (Added support for the `` sub-document, and live blog updates use the new sub-document.), [MSNP13](versions/msnp13.md) (Added live contact list updates using the `` subdocument.), [MSNP18](versions/msnp18.md) (Added live persistant chat group updates using the `` subdocument.) |
+| [`IPG`](commands/ipg.md) | Y | N | Y | [MSNP6](versions/msnp6.md) | |
+| [`REG`](commands/reg.md) | N | Y | N | [MSNP7](versions/msnp7.md) | [MSNP10](versions/msnp10.md) (Removed unused `0` and List Version parameters, with `ABCHMigrated: 1`, group IDs are instead group GUIDs), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s `ABGroupUpdate` instead.) |
+| [`RMG`](commands/rmg.md) | N | Y | N | [MSNP7](versions/msnp7.md) | [MSNP10](versions/msnp10.md) (Removed List Version parameter, with `ABCHMigrated: 1`, group IDs are instead group GUIDs), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s `ABGroupDelete` instead.) |
+| [`QRY`](commands/qry.md) | Y | Y | N | [MSNP6](versions/msnp6.md) | [MSNP10](versions/msnp10.md) (Changed challenge response generation algorithm drastically.) |
# What's Missing Right Now
-## For next parity check
-* [MSNP5](versions/msnp5.md): NOT
-* [MSNP6](versions/msnp6.md): IPG
-* [MSNP6](versions/msnp6.md): QRY
-* [MSNP7](versions/msnp7.md): REG
-* [MSNP7](versions/msnp7.md): RMG
-
## In general
* [MSNP11](versions/msnp11.md): SBS
* [MSNP11](versions/msnp11.md): UBX
diff --git a/docs/versions/msnp10.md b/docs/versions/msnp10.md
index 686db5e..6ece56b 100644
--- a/docs/versions/msnp10.md
+++ b/docs/versions/msnp10.md
@@ -41,8 +41,8 @@ The following commands were removed in this version:
* [BLP](../commands/blp.md)
* [ADG](../commands/adg.md)
* [BPR](../commands/bpr.md)
- * REG
- * RMG
+ * [REG](../commands/reg.md)
+ * [RMG](../commands/rmg.md)
* [REM](../commands/rem.md)
* [PRP](../commands/prp.md)
* Added a new list: Pending List/PL (bit 5, decimal 16). Is meant for unhandled contact added you notifications.
diff --git a/docs/versions/msnp11.md b/docs/versions/msnp11.md
index b3114c2..97bf160 100644
--- a/docs/versions/msnp11.md
+++ b/docs/versions/msnp11.md
@@ -17,17 +17,18 @@ It introduces the notification service commands:
# Known changes
(from [MSNP10](msnp10.md)):
-* QRY: Challenge response is drastically overhauled.
- Check the command article for more information.
+* [QRY](../commands/qry.md): Challenge response generation has been drastically overhauled.
+ TODO: Write annotated source code explaning new algorithm.
* [OUT](../commands/out.md) RCT `TimeBeforeRetry` now exists.
`TimeBeforeRetry` is a numerical value in minutes that specifies the amount
of time in minutes the client should wait before reconnecting.
-* All `ABCHMigrated` changes are now the default - `ABCHMigrated: 0` is Undefined Behavour from now on.
+* All `ABCHMigrated` changes are now the default - `ABCHMigrated: 0` is Undefined Behaviour from now on.
* [ADC](../commands/adc.md): Now supports a telephone address (`tel:`) for `N=`.
* Official Client: Feature blocks are implemented using the [GCF](../commands/gcf.md) command
to download `Shields.xml`. For more information read the [Shields Configuration Data](../files/shields.md) article.
* Official Client: WebMessenger now canonically exists - Client Capability 512 is used for this.
-* Official Client: Notifications (NOT commands) with encoded `NotificationData` documents are supported for spaces (blogs).
+* Official Client: Notifications ([NOT](../commands/not.md) commands) with encoded
+ [``](../files/notification.md) sub-documents are supported for spaces (blogs).
* Official Client: Messenger Config requests now support regional arguments via SOAP.
* Official Client: [OUT](../commands/out.md) SSD is actually implemented now.
* Official Client: Error code 913 is handled again after being removed last version. Why?
@@ -105,6 +106,39 @@ C: ADC 11 FL N=tel:15551111222 F=john
S: ADC 11 FL N=tel:15551111222 F=john C=a47e39cf-312c-4100-94a6-f2b33adf5b68
C: ADC 12 AL N=tel:15551111222
S: ADC 12 AL N=tel:15551111222
+S: NOT 1249
+
+
+
+
+
+
+
+
+ <NotificationData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <SpaceHandle>
+ <ResourceID>example1!101</ResourceID>
+ </SpaceHandle>
+ <ComponentHandle>
+ <ResourceID>example2!101</ResourceID>
+ </ComponentHandle>
+ <OwnerCID>4294967298</OwnerCID>
+ <LastModifiedDate>2024-10-26T09:33:27.1020000-08:00</LastModifiedDate>
+ <HasNewItem>true<HasNewItem>
+ <ComponentSummary>
+ <Component xsi:type="MessageContainer">
+ <ResourceID>example2!102</ResourceID>
+ </Component>
+ <Items>
+ <Component xsi:type="Message">
+ <ResourceID>example2!101</ResourceID>
+ </Component>
+ </Items>
+ </ComponentSummary>
+ </NotificationData>
+
+
+
C: OUT
```
Client disconnects from server
diff --git a/docs/versions/msnp5.md b/docs/versions/msnp5.md
index 6a0eba2..dc63b71 100644
--- a/docs/versions/msnp5.md
+++ b/docs/versions/msnp5.md
@@ -5,7 +5,7 @@ It was introduced officially in Client Version 3.0.0283.
# Command information
It introduces the notification service commands:
* [BPR](../commands/bpr.md)
-* NOT
+* [NOT](../commands/not.md)
* [PAG](../commands/pag.md)
* [PRP](../commands/prp.md)
* [SDC](../commands/sdc.md)
@@ -20,6 +20,7 @@ It introduces the error codes:
# Known changes
(from [MSNP4](msnp4.md)):
* [BPR](../commands/bpr.md) and [PRP](../commands/prp.md) have been added to [SYN](../commands/syn.md).
+* [``](../files/notification.md) documents are handled by the client with the new [NOT](not.md) payload command.
* Non-protocol: Official website stopped updating the whatsnew.asp page between this (MSNP5) and [MSNP7](msnp7.md).
* Official Client: Introduced the toast notification system. Notifications can now stack vertically.
* Official Client: Log in notifications are now handled by the newly introduced toast system.
@@ -116,17 +117,16 @@ S: LST 8 BL 6 0 0
S: LST 8 RL 6 1 1 anotheruser@hotmail.com another%20user
C: CHG 9 NLN
S: CHG 9 NLN
-S: NOT 431
-
-
-
-
-
-
-
-text of the notification
-
-
+S: NOT 367
+
+
+
+
+
+
+ This is an example notification.
+
+
C: PRP 10 PHH 123%20(4567)
S: PRP 10 7 PHH 123%20(4567)
diff --git a/docs/versions/msnp6.md b/docs/versions/msnp6.md
index 0eefde8..3446d87 100644
--- a/docs/versions/msnp6.md
+++ b/docs/versions/msnp6.md
@@ -5,8 +5,8 @@ It was introduced officially in Client Version 3.6.0038.
# Command information
It introduces the notification service commands:
* [CHL](../commands/chl.md)
-* IPG
-* QRY
+* [IPG](../commands/ipg.md)
+* [QRY](../commands/qry.md)
*No switchboard or dispatch service commands were known to be introduced in this version*
@@ -23,9 +23,9 @@ It introduces the error codes:
if it is `0`, the Official Client shows a warning to verify the account.
NOTE: Your display name will be forced to be
`example@hotmail.com (E-Mail Address Not Verified)`, and can not be changed.
-* Client-server challenges were introduced. The format for the response is
+* Client-server challenges were introduced. The format for the response ([QRY](../commands/qry.md) commands) are
`MD5(challenge + privateKey)` as a lowercase hexadecimal string.
-* An example client secret is `Q1P7W2E4J9R8U3S5`, which is tied to `msmsgs@msnmsgr.com`.
+* An example Private Key is `Q1P7W2E4J9R8U3S5`, which is tied to the Public Key of `msmsgs@msnmsgr.com`.
* First protocol version added in a patch release (Client Versions 3.6.0025 and 3.6.0026 do not support MSNP6).
* Official Client: Added new [URL](../commands/url.md) services `PROFILE`, `N2PACCOUNT` and `N2PFUND`.
* Official Client: Error 924 dialog changed to the unverified but still can use service one. Not sure why.
@@ -92,6 +92,21 @@ S: CHL 0 11111111111111111111
C: QRY 10 msmsgs@msnmsgr.com 32
3b6666b60157322b6fc6e41a115968f5
S: QRY 10
+S: IPG 478
+
+
+
+
+
+
+
+
+
+
+ Hello! I am talking from a mobile device.
+
+
+
C: OUT
```
Client disconnects from server
diff --git a/docs/versions/msnp7.md b/docs/versions/msnp7.md
index 7b7bbd1..afe43b4 100644
--- a/docs/versions/msnp7.md
+++ b/docs/versions/msnp7.md
@@ -5,8 +5,8 @@ It was introduced officially in Client Version 4.5.0121.
# Command information
It introduces the notification service commands:
* [ADG](../commands/adg.md)
-* REG
-* RMG
+* [REG](../commands/reg.md)
+* [RMG](../commands/rmg.md)
* [LSG](../commands/lsg.md)
*No switchboard or dispatch service commands were known to be introduced in this version*
diff --git a/docs/versions/msnp8.md b/docs/versions/msnp8.md
index bf672cb..4827240 100644
--- a/docs/versions/msnp8.md
+++ b/docs/versions/msnp8.md
@@ -58,7 +58,7 @@ Added: 603
# Client-server communication example
*NOTE: This has been line-breaked.
-Lines beginning with `..` followed by a space are continuations of the previous line.
+Lines beginning with `..` followed by a space are continuations of the previous line.*
```
C: VER 1 MSNP8 CVR0
S: VER 1 MSNP8
diff --git a/docs/versions/msnp9.md b/docs/versions/msnp9.md
index 7cacadb..6275cc4 100644
--- a/docs/versions/msnp9.md
+++ b/docs/versions/msnp9.md
@@ -25,6 +25,7 @@ The following commands were removed in this version:
* [QNG](../commands/qng.md): Added a "next ping" time (in seconds) parameter.
* Switchboard [MSG](../commands/msg.md): Acknowledgement type D added.
Can respond with either [ACK](../commands/ack.md), error 282, or possibly any other error codes.
+* [NOT](../commands/not.md): Extended notifications are now supported via the `` element.
* Official Client: Error 603 is handled again after being removed in Client Version 5.0.
Error code 711 is no longer handled after being implemented in Client Version 5.0.
* Official Client: Supports the [Messenger Config](../services/msgrconfig.md) XML service, replacing `svcs.microsoft.com`.
@@ -99,6 +100,18 @@ S: NLN NLN anotheruser@hotmail.com another%20user 268435500 %3Cmsnobj%20Creator%
.. %20SHA1D%3D%22vP1ppB+xiFQ8ceZivRe0uCaYLIU%3D%22
.. %20SHA1C%3D%22PApbbjkbDSGrt3ybGHRKNaZ8s%2Fw%3D%22%2F%3E
S: QNG 60
+S: NOT 457
+
+
+
+
+
+
+ This is an example notification.
+ <P>This is an <B>extended</B> notification!</P>
+
+
+
C: OUT
```
Client disconnects from server
diff --git a/package-lock.json b/package-lock.json
index 6c9ba87..0bbb640 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6,8 +6,8 @@
"packages": {
"": {
"name": "yellows-msnp-wiki",
- "version": "0.0.1",
- "license": "UNLICENSED",
+ "version": "0.1.0",
+ "license": "GFDL-1.3-or-later",
"dependencies": {
"yiki": "git+https://git.kevinthe.horse/yellows111/yiki.git#semver:*"
}
@@ -680,8 +680,8 @@
}
},
"node_modules/yiki": {
- "version": "0.1.4",
- "resolved": "git+https://git.kevinthe.horse/yellows111/yiki.git#6565b78ac144a48cf553252fc46d1d1b883fa20d",
+ "version": "0.1.5",
+ "resolved": "git+https://git.kevinthe.horse/yellows111/yiki.git#7991d78e1c2461db7ab36ee10dd0a53105801b8b",
"license": "MIT",
"dependencies": {
"@liquify/prettify": "^0.5.5-beta.1",
diff --git a/package.json b/package.json
index eaff8ee..14fe583 100644
--- a/package.json
+++ b/package.json
@@ -1,13 +1,13 @@
{
"name": "yellows-msnp-wiki",
- "version": "0.0.1",
+ "version": "0.1.0",
"description": "The yellows111 MSNP wiki that aims for accuracy.",
"author": "yellows111",
- "license": "UNLICENSED",
+ "license": "GFDL-1.3-or-later",
"dependencies": {
"yiki": "git+https://git.kevinthe.horse/yellows111/yiki.git#semver:*"
},
"scripts": {
- "build": "node ./node_modules/yiki/ymake.js"
+ "build": "node ./node_modules/yiki/ymake.js"
}
}