From 91c0d86d554be1189a85dfd108cadfe5c23eed49 Mon Sep 17 00:00:00 2001 From: yellows111 Date: Tue, 29 Oct 2024 21:58:42 +0000 Subject: [PATCH] [0.1.2] ABContact*, some corrections Add a dedicated contactinfo because it's used --- docs/commands/adc.md | 2 +- docs/commands/gtc.md | 2 +- docs/commands/ubx.md | 2 +- docs/commands/uux.md | 2 +- docs/services/abservice.md | 77 ++++++++++++++- docs/services/abservice/abcontactadd.md | 55 +++++++++++ docs/services/abservice/abcontactdelete.md | 32 ++++++ docs/services/abservice/abcontactupdate.md | 53 ++++++++++ docs/services/abservice/contactinfo.md | 109 +++++++++++++++++++++ docs/table_of_commands.md | 4 +- docs/versions/msnp11.md | 4 +- docs/versions/msnp12.md | 4 +- package-lock.json | 4 +- package.json | 2 +- 14 files changed, 336 insertions(+), 16 deletions(-) create mode 100644 docs/services/abservice/abcontactadd.md create mode 100644 docs/services/abservice/abcontactdelete.md create mode 100644 docs/services/abservice/abcontactupdate.md create mode 100644 docs/services/abservice/contactinfo.md diff --git a/docs/commands/adc.md b/docs/commands/adc.md index ff2115f..b905dc7 100644 --- a/docs/commands/adc.md +++ b/docs/commands/adc.md @@ -173,4 +173,4 @@ S: ADC 0 RL N=anotheruser@hotmail.com F=another%20user * [MSNP11](../versions/msnp11.md): Now supports phone-only (`tel:`) contacts. Requires `MobileMessaging` in the [Messenger Config](../services/msgrconfig.md) to be configured for the Official Client. * [MSNP13](../versions/msnp13.md): Removed, use a combination of ADL and - [Address Book Service](../services/abservice.md)'s `ABContactAdd` instead. + [Address Book Service](../services/abservice.md)'s [`ABContactAdd`](../services/abservice/abcontactadd.md) instead. diff --git a/docs/commands/gtc.md b/docs/commands/gtc.md index 0820019..e56383d 100644 --- a/docs/commands/gtc.md +++ b/docs/commands/gtc.md @@ -48,4 +48,4 @@ S: 201 5 * [MSNP13](../versions/msnp13.md): Removed (automatic disconnect), set the `MSN.IM.GTC` annotation's value to either 0 or 1 with the [Address Book Service](../services/abservice.md)'s - `ABContactUpdate` action on your own GUID instead. + [`ABContactUpdate`](../services/abservice/abcontactupdate.md) action on your own GUID instead. diff --git a/docs/commands/ubx.md b/docs/commands/ubx.md index f8aac85..3f30f68 100644 --- a/docs/commands/ubx.md +++ b/docs/commands/ubx.md @@ -3,7 +3,7 @@ It is a Notification Server command, WITH a response payload. -For the version of the command that relates to another user, read [UUX](uux.md). +For the version of the command that is sent by the client, read [UUX](uux.md). # Client/Request This command can not be sent from the client. diff --git a/docs/commands/uux.md b/docs/commands/uux.md index 3b254d6..cce290e 100644 --- a/docs/commands/uux.md +++ b/docs/commands/uux.md @@ -3,7 +3,7 @@ It is a Notification Server command, WITH a request payload and WITH a response payload. -For the version of the command that relates to another user, read [UBX](ubx.md). +For the version of the command that is sent from the server that relates to another user, read [UBX](ubx.md). # Client/Request ``` diff --git a/docs/services/abservice.md b/docs/services/abservice.md index 4479417..87e3d80 100644 --- a/docs/services/abservice.md +++ b/docs/services/abservice.md @@ -16,9 +16,9 @@ Related: [Contact Sharing Service](sharingservice.md) (for other List's members) `http://www.msn.com/webservices/AddressBook/`.* * ABFindAll (internal name: `Contacts.Pull`) -* ABContactAdd (internal name: `Contacts.Push.Contact.Add`) -* ABContactDelete (internal name: `Contacts.Push.Contact.Delete`) -* ABContactUpdate (internal name: `Contacts.Push.Contact.Update`) +* [ABContactAdd](abservice/abcontactadd.md) (internal name: `Contacts.Push.Contact.Add`) +* [ABContactDelete](abservice/abcontactdelete.md) (internal name: `Contacts.Push.Contact.Delete`) +* [ABContactUpdate](abservice/abcontactupdate.md) (internal name: `Contacts.Push.Contact.Update`) * ABGroupContactAdd (internal name: `Contacts.Push.Contact.AddToGroup`) * ABGroupContactDelete (internal name: `Contacts.Push.Contact.DeleteFromGroup`) * ABGroupAdd (internal name: `Contacts.Push.Group`) @@ -31,3 +31,74 @@ Related: [Contact Sharing Service](sharingservice.md) (for other List's members) * ABDelete (internal name: `Contacts.DeleteAb`) * ABFindByContacts (internal name: `Contacts.Pull.Id`) * UpdateDynamicItem (internal name: `Contacts.Push.DynamicItem.Edit`) + +# Shared Templates +This is used by all Actions listed, as far as we know. + +## Client/Request +The following sub-headings are XML elements for the server's response. + +### soap:Envelope +This element has four attributes: +* `xmlns:soap`: Is always set to `http://schemas.xmlsoap.org/soap/envelope/`. +* `xmlns:xsi`: Is always set to `http://www.w3.org/2001/XMLSchema-instance`. +* `xmlns:xsd`: Is always set to `http://www.w3.org/2001/XMLSchema`. +* `xmlns:soapenc`: Is always set to `http://schemas.xmlsoap.org/soap/encoding/`. + +#### soap:Header +This element only serves to host the `` and `` elements. + +##### ABApplicationHeader +This element has only one attribute: +* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`. + +This element has three children: +* ``: The GUID of the client that sent the request for this action. +* ``: If this request is part of the ABCH Migration process. + If it is, set to `true`, otherwise set to `false`. +* ``: What caused this request to happen: + * `Initial`: This is the initial request to this action. + * `Timer`: This request was done automatically on a timer. + * `ContactSave`: When the contact is updated. + * `MessengerPendingList`: Managing the Pending List (PL). + * `ContactMsgrAPI`: General Messenger API. + * `BlockUnblock`: Block or unblock of this user. + +##### ABAuthHeader +This element has only one attribute: +* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`. + +This element has two children: +* ``: If this is a managed group request, set to `true`, otherwise set to `false`. +* `` This element contains the [Passport](passport14.md) token for `contacts.msn.com`. + Added since [MSNP15](../versions/msnp15.md). + +#### soap:Body +Your request element and it's children goes here. + +## Server/Response +The following sub-headings are XML elements for the server's response. + +### soap:Envelope +This element has three attributes: +* `xmlns:soap`: Is always set to `http://schemas.xmlsoap.org/soap/envelope/`. +* `xmlns:xsi`: Is always set to `http://www.w3.org/2001/XMLSchema-instance`. +* `xmlns:xsd`: Is always set to `http://www.w3.org/2001/XMLSchema`. + +#### soap:Header +This element only serves to host the `` element. + +##### ServiceHeader +This element has only one attribute: +* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`. + +This element has five children: +* ``: The version of this service. +* ``: The current or new address book caching key. + Usually starts with `14r2;`, then continues with some form of base64-encoded data. +* ``: Did the `` change? If it did, set to `true`, otherwise set to `false`. +* ``: The domain name that this service would like to receive requests to. +* ``: The current session GUID. + +#### soap:Body +This element contains the server's response elements and their children for the action. diff --git a/docs/services/abservice/abcontactadd.md b/docs/services/abservice/abcontactadd.md new file mode 100644 index 0000000..08d7803 --- /dev/null +++ b/docs/services/abservice/abcontactadd.md @@ -0,0 +1,55 @@ +# Introduction +`ABContactAdd` is one of the SOAP actions the [Address Book Service](../abservice.md) provides. + +Adds a contact to the Forward List (FL). +For adding a contact to any other list, see the [Contact Sharing Service](../sharingservice.md). + +# Client/Request +The template used in this action is described on the [Address Book Service](../abservice.md) main page. + +## ABContactAdd +This element has only one attribute: +* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`. + +### abId +This element contains your [Address Book Service](../abservice.md) GUID. + +### contacts +This element contains one or multiple [``](#contact-elements) elements. + +#### Contact +This element has only one attribute: +* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`. + +##### contactInfo +For more information about this element, read the [``](contactinfo.md) article. + +The relevant elements are: +* ``: The user handle that you would like to add. +* ``: Is the user I am adding a part of the Messenger Service Network? + If they are, set to `true`, otherwise set to `false`. +* ``: (Optional?) The type of contact you'd like to add: + * `LivePending`: A Messenger Service user. + * `Regular`: A user from another service. + +### options +This element contains one child: +* ``: Usually only set to `true`. + +# Server/Response +The template used in this action is described on the [Address Book Service](../abservice.md) main page. + +## ABContactAddResponse +This element has only one attribute: +* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`. + +This element only contains the `` element. + +### ABContactAddResult +This element only contains the `` element. + +They may be the same amount of `` elements as the amount of `` elements you specify, +but this behavour is yet to be confirmed. + +#### guid +The GUID of the contact you have added. diff --git a/docs/services/abservice/abcontactdelete.md b/docs/services/abservice/abcontactdelete.md new file mode 100644 index 0000000..acea267 --- /dev/null +++ b/docs/services/abservice/abcontactdelete.md @@ -0,0 +1,32 @@ +# Introduction +`ABContactDelete` is one of the SOAP actions the [Address Book Service](../abservice.md) provides. + +Removes a contact from the Forward List (FL). +For removing a contact from any other list, see the [Contact Sharing Service](../sharingservice.md). + +# Client/Request +The template used in this action is described on the [Address Book Service](../abservice.md) main page. + +## ABContactDelete +This element has only one attribute: +* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`. + +### abId +This element contains your [Address Book Service](../abservice.md) GUID. + +### contacts +This element contains one or multiple [``](#contact-elements) elements. + +#### Contact +This element has only one attribute: +* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`. + +##### contactId +This element only contains the GUID of the contact you would like to remove. + +# Server/Response +The template used in this action is described on the [Address Book Service](../abservice.md) main page. + +## ABContactDeleteResponse +This empty element has only one attribute: +* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`. diff --git a/docs/services/abservice/abcontactupdate.md b/docs/services/abservice/abcontactupdate.md new file mode 100644 index 0000000..264442f --- /dev/null +++ b/docs/services/abservice/abcontactupdate.md @@ -0,0 +1,53 @@ +# Introduction +`ABContactUpdate` is one of the SOAP actions the [Address Book Service](../abservice.md) provides. + +Modifies information about a contact from the Forward List (FL). +For modifying a contact's information from any other list, see the [Contact Sharing Service](../sharingservice.md). + +# Client/Request +The template used in this action is described on the [Address Book Service](../abservice.md) main page. + +## ABContactDelete +This element has only one attribute: +* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`. + +### abId +This element contains your [Address Book Service](../abservice.md) GUID. + +### contacts +This element contains one or multiple [``](#contact-elements) elements. + +#### Contact +This element has only one attribute: +* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`. + +##### contactId +This element only contains the GUID of the contact you would like to modify. + +##### contactInfo +For more information about this element, read the [``](contactinfo.md) article. + +The most relevant children are: +* ``: The new display name for this contact. + +##### propertiesChanged +This element only contains the space delimited list of updated items in ``. +The valid values are the following: +* `DisplayName` +* `ContactFirstName` +* `ContactLastName` +* `Comment` +* `MiddleName` +* `ContactPrimaryEmailType` +* `ContactEmail` +* `ContactLocation` +* `ContactPhone` +* `ContactWebSite` +* `Annotation` + +# Server/Response +The template used in this action is described on the [Address Book Service](../abservice.md) main page. + +## ABContactUpdate +This empty element has only one attribute: +* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`. diff --git a/docs/services/abservice/contactinfo.md b/docs/services/abservice/contactinfo.md new file mode 100644 index 0000000..8b47df4 --- /dev/null +++ b/docs/services/abservice/contactinfo.md @@ -0,0 +1,109 @@ +# Introduction +The `` element is the main associative element of a `` node. + +# contactInfo +This element can contain many children, all of which optional: +* ``: The sorting name of this contact +* ``: The user handle of this contact. +* `` Are the contents of `` hidden to the user (`true` or `false`)? +* ``: Is this contact a part of the Messenger Service Network (`true` or `false`)? +* ``: The type of contact this is related to: + * `LivePending`: A user yet to authorise you + * `Regular`: A user from another service. +* ``: The display name for this contact. +* ``: Unused. Always 0. +* ``: The Common ID of this contact, which is a signed 64-bit integer. +* ``: Is this contact not visible as a mobile user (`true` or `false`)? +* ``: Does this contact allow me to talk to them via their mobile device (`true` or `false`)? +* ``: Is this contact in the "Favorites" group (`true` or `false`)? +* ``: Is this contact using a Japanese mobile phone (`true` or `false`)? +* ``: Does this contact have a blog (`true` or `false`)? +* ``: Does this contact have a web watch, if not, set to `NoDevice`. +* ``: This contact's birthday as a ISO 8601 timestamp. +* ``: ([`ABContactAdd`](abcontactadd.md) only) + A list of [``](#annotation) elements you would like to add. +* ``: The first name for this contact. +* ``: The last name for this contact. +* ``: The user attached comment for this contact. New lines are included as-is. +* ``: The middle name for this contact. +* ``: Contains many [``](#annotation) elements. +* ``: Can be any of the following: + * `ContactEmailPersonal` + * `ContactEmailMessenger` + * `ContactEmailBusiness` + * `ContactEmailOther` + * `Passport` +* ``: Contains many [``](#contactemail) elements. +* ``: Can be any of the following: + * `ContactPhonePersonal` + * `ContactPhonePager` + * `ContactPhoneFax` + * `ContactPhoneBusiness` + * `ContactPhoneOther` + * `ContactPhoneMobile` +* ``: Contains many [``](#contactphone) elements. +* ``: Can be any of the following: + * `ContactLocationBusiness` + * `ContactLocationPersonal` +* ``: Contains many [``](#contactlocation) elements. +* ``: Contains many [``](#contactwebsite) elements. +* ``: Is this contact private (`true` or `false`). +* ``: What gender is this contact, if unsure, set to `Unspecified`. +* ``: What time zone is this contact in?, if unsure, set to `None`. + +## Annotation +This element contains two children: +* ``: The key of this property: + * `MSN.IM.MBEA`: (Only for you) Can users talk to me via my mobile phone? (`0` or `1`). + * `MSN.IM.GTC`: (Only for you) Do I automatically add users to the AL or ask first? (`0` or `1`). + * `MSN.IM.BLP`: (Only for you) Are all users blocked or allowed by default to talk to me? (`0` or `1`). + * `AB.JobTitle`: The job title of this contact. + * `AB.NickName`: The user-provided nick-name for this contact. + * `AB.Spouse`: The contact's spouse's name. +* ``: The value of this property. + +## ContactEmail +This element contains two children: +* ``: Can be any of the following: + * `ContactEmailPersonal` + * `ContactEmailMessenger` + * `ContactEmailBusiness` + * `ContactEmailOther` +* ``: The e-mail address associated with the ``. + +## ContactPhone +This element contains two children: +* ``: Can be any of the following: + * `ContactPhonePersonal` + * `ContactPhonePager` + * `ContactPhoneFax` + * `ContactPhoneBusiness` + * `ContactPhoneOther` + * `ContactPhoneMobile` +* ``: The phone number associated with the ``. + +## ContactLocation +This element contains two children: +* ``: Can be any of the following: + * `ContactLocationBusiness` + * `ContactLocationPersonal` +* ``: The name associated with the ``. +* ``: The street associated with the ``. +* ``: The city associated with the ``. +* ``: The state associated with the ``. +* ``: The country associated with the ``. +* ``: The postal code associated associated with the ``. +* ``: A space delimited list of changed elements in this ``: + * `Name` + * `Street` + * `City` + * `State` + * `Country` + * `PostalCode` + +## ContactWebSite +This element contains two children: +* ``: Can be any of the following: + * `ContactWebSiteBusiness` + * `ContactWebSitePersonal` +* ``: The location of the website associated with the ``. diff --git a/docs/table_of_commands.md b/docs/table_of_commands.md index 7fbe953..20a0e80 100644 --- a/docs/table_of_commands.md +++ b/docs/table_of_commands.md @@ -41,10 +41,10 @@ This is a list of all known MSNP commands and their originating version. | [`REA`](commands/rea.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP10](versions/msnp10.md) (Removed; automatic disconnect) | | [`SND`](commands/snd.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (parameters 2 and 3), [MSNP4](versions/msnp4.md) (parameter 4), [MSNP5](versions/msnp5.md) (obsoleted by [SDC](commands/sdc.md)) | | [`SDC`](commands/sdc.md) | Y | Y | N | [MSNP5](versions/msnp5.md) | | -| [`ADC`](commands/adc.md) | N | Y | N?| [MSNP10](versions/msnp10.md) | [MSNP10](versions/msnp10.md) (`ABCHMigrated: 1`: Contact user handles and Group IDs are now both GUIDs.), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use ADL and the [Address Book Service](services/abservice.md)'s `ABContactAdd` action instead) | +| [`ADC`](commands/adc.md) | N | Y | N?| [MSNP10](versions/msnp10.md) | [MSNP10](versions/msnp10.md) (`ABCHMigrated: 1`: Contact user handles and Group IDs are now both GUIDs.), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use ADL and the [Address Book Service](services/abservice.md)'s [`ABContactAdd`](services/abservice/abcontactadd.md) action instead) | | [`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.) | +| [`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`](services/abservice/abcontactupdate.md) action instead.) | | [`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.) | diff --git a/docs/versions/msnp11.md b/docs/versions/msnp11.md index ebd353a..893bc3c 100644 --- a/docs/versions/msnp11.md +++ b/docs/versions/msnp11.md @@ -96,11 +96,11 @@ S: GCF 9 Shields.xml 145 C: CHG 10 NLN S: CHG 10 NLN -C: UUX 11 40 +C: UUX 11 53 S: UUX 11 0 S: ILN 10 NLN anotheruser@hotmail.com another%20user 1073791084 -S: UBX anotheruser@hotmail.com 54 +S: UBX anotheruser@hotmail.com 67 new feature :P C: ADC 11 FL N=tel:15551111222 F=john S: ADC 11 FL N=tel:15551111222 F=john C=a47e39cf-312c-4100-94a6-f2b33adf5b68 diff --git a/docs/versions/msnp12.md b/docs/versions/msnp12.md index ab4a050..95c6cec 100644 --- a/docs/versions/msnp12.md +++ b/docs/versions/msnp12.md @@ -95,8 +95,8 @@ S: GCF 9 Shields.xml 145 C: CHG 10 NLN S: CHG 10 NLN -C: UUX 11 40 - +C: UUX 11 53 + S: UUX 11 0 C: OUT ``` diff --git a/package-lock.json b/package-lock.json index c98988e..3f9121d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "yellows-msnp-wiki", - "version": "0.0.1", + "version": "0.1.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "yellows-msnp-wiki", - "version": "0.1.1", + "version": "0.1.2", "license": "GFDL-1.3-or-later", "dependencies": { "yiki": "git+https://git.kevinthe.horse/yellows111/yiki.git#semver:*" diff --git a/package.json b/package.json index 242f56c..97c1d5a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "yellows-msnp-wiki", - "version": "0.1.1", + "version": "0.1.2", "description": "The yellows111 MSNP wiki that aims for accuracy.", "author": "yellows111", "license": "GFDL-1.3-or-later",