From e6520d0ac002234b8ec568ee633792fc3dec0f47 Mon Sep 17 00:00:00 2001 From: yellows111 Date: Sat, 26 Oct 2024 11:56:17 +0100 Subject: [PATCH] massive amount of corrections, rest of pre-P11 commands upgrade yiki, slugs now work better, but not in URLs (i forgot) 0 Commands Left. Time for that parity check. Add a license too. Bump version to 0.1.0. NEW RECORD! --- LICENSE.md | 445 ++++++++++++++++++++++++++++++++++++ README.md | 4 + docs/commands/adg.md | 4 +- docs/commands/ans.md | 2 +- docs/commands/blp.md | 12 +- docs/commands/chg.md | 22 +- docs/commands/chl.md | 6 +- docs/commands/cvq.md | 2 +- docs/commands/cvr.md | 2 +- docs/commands/gcf.md | 2 +- docs/commands/gtc.md | 12 +- docs/commands/ims.md | 2 +- docs/commands/inf.md | 3 +- docs/commands/ipg.md | 51 +++++ docs/commands/lsg.md | 2 +- docs/commands/lst.md | 2 +- docs/commands/msg.md | 12 +- docs/commands/not.md | 128 +++++++++++ docs/commands/pag.md | 3 +- docs/commands/pgd.md | 3 +- docs/commands/prp.md | 2 +- docs/commands/qng.md | 4 +- docs/commands/qry.md | 66 ++++++ docs/commands/reg.md | 132 +++++++++++ docs/commands/rmg.md | 115 ++++++++++ docs/commands/sdc.md | 6 +- docs/commands/syn.md | 15 ++ docs/commands/usr.md | 3 +- docs/commands/ver.md | 3 +- docs/files/notification.md | 207 +++++++++++++++++ docs/index.md | 10 +- docs/license.md | 445 ++++++++++++++++++++++++++++++++++++ docs/reference_constants.md | 3 + docs/table_of_commands.md | 20 +- docs/versions/msnp10.md | 4 +- docs/versions/msnp11.md | 42 +++- docs/versions/msnp5.md | 24 +- docs/versions/msnp6.md | 23 +- docs/versions/msnp7.md | 4 +- docs/versions/msnp8.md | 2 +- docs/versions/msnp9.md | 13 ++ package-lock.json | 8 +- package.json | 6 +- 43 files changed, 1787 insertions(+), 89 deletions(-) create mode 100644 LICENSE.md create mode 100644 docs/commands/ipg.md create mode 100644 docs/commands/not.md create mode 100644 docs/commands/qry.md create mode 100644 docs/commands/reg.md create mode 100644 docs/commands/rmg.md create mode 100644 docs/files/notification.md create mode 100644 docs/license.md 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" } }