[0.1.2] ABContact*, some corrections

Add a dedicated contactinfo because it's used
This commit is contained in:
Declan B. 2024-10-29 21:58:42 +00:00
parent bdd28d778a
commit 91c0d86d55
Signed by: yellows111
SSH key fingerprint: SHA256:ynw5IJBU1pb7fZfHgLihKu9gHHA8FVpixZbB6IEB3r8
14 changed files with 336 additions and 16 deletions

View file

@ -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.

View file

@ -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.

View file

@ -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.

View file

@ -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
```

View file

@ -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 `<ABApplicationHeader>` and `<ABAuthHeader>` elements.
##### ABApplicationHeader
This element has only one attribute:
* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`.
This element has three children:
* `<ApplicationID>`: The GUID of the client that sent the request for this action.
* `<IsMigration>`: If this request is part of the ABCH Migration process.
If it is, set to `true`, otherwise set to `false`.
* `<PartnerScenario>`: 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:
* `<ManagedGroupRequest>`: If this is a managed group request, set to `true`, otherwise set to `false`.
* `<TicketToken>` 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 `<ServiceHeader>` element.
##### ServiceHeader
This element has only one attribute:
* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`.
This element has five children:
* `<Version>`: The version of this service.
* `<CacheKey>`: The current or new address book caching key.
Usually starts with `14r2;`, then continues with some form of base64-encoded data.
* `<CacheKeyChanged>`: Did the `<CacheKey>` change? If it did, set to `true`, otherwise set to `false`.
* `<PreferredHostName>`: The domain name that this service would like to receive requests to.
* `<SessionId>`: The current session GUID.
#### soap:Body
This element contains the server's response elements and their children for the action.

View file

@ -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>`](#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>`](contactinfo.md) article.
The relevant elements are:
* `<passportName>`: The user handle that you would like to add.
* `<isMessengerUser>`: Is the user I am adding a part of the Messenger Service Network?
If they are, set to `true`, otherwise set to `false`.
* `<contactType>`: (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:
* `<EnableAllowListManagement>`: 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 `<ABContactAddResult>` element.
### ABContactAddResult
This element only contains the `<guid>` element.
They may be the same amount of `<guid>` elements as the amount of `<Contact>` elements you specify,
but this behavour is yet to be confirmed.
#### guid
The GUID of the contact you have added.

View file

@ -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>`](#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`.

View file

@ -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>`](#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>`](contactinfo.md) article.
The most relevant children are:
* `<displayName>`: The new display name for this contact.
##### propertiesChanged
This element only contains the space delimited list of updated items in `<contactInfo>`.
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`.

View file

@ -0,0 +1,109 @@
# Introduction
The `<contactInfo>` element is the main associative element of a `<Contact>` node.
# contactInfo
This element can contain many children, all of which optional:
* `<quickName>`: The sorting name of this contact
* `<passportName>`: The user handle of this contact.
* `<IsPassportNameHidden>` Are the contents of `<passportName>` hidden to the user (`true` or `false`)?
* `<isMessengerUser>`: Is this contact a part of the Messenger Service Network (`true` or `false`)?
* `<contactType>`: The type of contact this is related to:
* `LivePending`: A user yet to authorise you
* `Regular`: A user from another service.
* `<displayName>`: The display name for this contact.
* `<puid>`: Unused. Always 0.
* `<CID>`: The Common ID of this contact, which is a signed 64-bit integer.
* `<IsNotMobileVisible>`: Is this contact not visible as a mobile user (`true` or `false`)?
* `<isMobileIMEnabled>`: Does this contact allow me to talk to them via their mobile device (`true` or `false`)?
* `<isFavorite>`: Is this contact in the "Favorites" group (`true` or `false`)?
* `<isSmtp>`: Is this contact using a Japanese mobile phone (`true` or `false`)?
* `<hasSpace>`: Does this contact have a blog (`true` or `false`)?
* `<spotWatchState>`: Does this contact have a web watch, if not, set to `NoDevice`.
* `<birthdate>`: This contact's birthday as a ISO 8601 timestamp.
* `<PendingAnnotations>`: ([`ABContactAdd`](abcontactadd.md) only)
A list of [`<Annotation>`](#annotation) elements you would like to add.
* `<firstName>`: The first name for this contact.
* `<lastName>`: The last name for this contact.
* `<comment>`: The user attached comment for this contact. New lines are included as-is.
* `<MiddleName>`: The middle name for this contact.
* `<annotations>`: Contains many [`<Annotation>`](#annotation) elements.
* `<primaryEmailType>`: Can be any of the following:
* `ContactEmailPersonal`
* `ContactEmailMessenger`
* `ContactEmailBusiness`
* `ContactEmailOther`
* `Passport`
* `<emails>`: Contains many [`<ContactEmail>`](#contactemail) elements.
* `<PrimaryPhone>`: Can be any of the following:
* `ContactPhonePersonal`
* `ContactPhonePager`
* `ContactPhoneFax`
* `ContactPhoneBusiness`
* `ContactPhoneOther`
* `ContactPhoneMobile`
* `<phones>`: Contains many [`<ContactPhone>`](#contactphone) elements.
* `<PrimaryLocation>`: Can be any of the following:
* `ContactLocationBusiness`
* `ContactLocationPersonal`
* `<locations>`: Contains many [`<ContactLocation>`](#contactlocation) elements.
* `<webSites>`: Contains many [`<ContactWebSite>`](#contactwebsite) elements.
* `<IsPrivate>`: Is this contact private (`true` or `false`).
* `<Gender>`: What gender is this contact, if unsure, set to `Unspecified`.
* `<TimeZone>`: What time zone is this contact in?, if unsure, set to `None`.
## Annotation
This element contains two children:
* `<Name>`: 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.
* `<Value>`: The value of this property.
## ContactEmail
This element contains two children:
* `<contactEmailType>`: Can be any of the following:
* `ContactEmailPersonal`
* `ContactEmailMessenger`
* `ContactEmailBusiness`
* `ContactEmailOther`
* `<email>`: The e-mail address associated with the `<contactEmailType>`.
## ContactPhone
This element contains two children:
* `<contactPhoneType>`: Can be any of the following:
* `ContactPhonePersonal`
* `ContactPhonePager`
* `ContactPhoneFax`
* `ContactPhoneBusiness`
* `ContactPhoneOther`
* `ContactPhoneMobile`
* `<number>`: The phone number associated with the `<contactPhoneType>`.
## ContactLocation
This element contains two children:
* `<contactLocationType>`: Can be any of the following:
* `ContactLocationBusiness`
* `ContactLocationPersonal`
* `<name>`: The name associated with the `<contactLocationType>`.
* `<street>`: The street associated with the `<contactLocationType>`.
* `<city>`: The city associated with the `<contactLocationType>`.
* `<state>`: The state associated with the `<contactLocationType>`.
* `<country>`: The country associated with the `<contactLocationType>`.
* `<postalCode>`: The postal code associated associated with the `<contactLocationType>`.
* `<Changes>`: A space delimited list of changed elements in this `<ContactLocation>`:
* `Name`
* `Street`
* `City`
* `State`
* `Country`
* `PostalCode`
## ContactWebSite
This element contains two children:
* `<contactWebSiteType>`: Can be any of the following:
* `ContactWebSiteBusiness`
* `ContactWebSitePersonal`
* `<webURL>`: The location of the website associated with the `<contactWebSiteType>`.

View file

@ -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.) |

View file

@ -96,11 +96,11 @@ S: GCF 9 Shields.xml 145
<?xml version= "1.0" encoding="utf-8" ?><config><shield><cli maj="7" min="0" minbld="0" maxbld="9999" deny="" /></shield><block></block></config>
C: CHG 10 NLN
S: CHG 10 NLN
C: UUX 11 40
C: UUX 11 53
<Data><PSM></PSM><CurrentMedia></CurrentMedia></Data>
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
<Data><PSM>new feature :P</PSM><CurrentMedia></CurrentMedia></Data>
C: ADC 11 FL N=tel:15551111222 F=john
S: ADC 11 FL N=tel:15551111222 F=john C=a47e39cf-312c-4100-94a6-f2b33adf5b68

View file

@ -95,8 +95,8 @@ S: GCF 9 Shields.xml 145
<?xml version= "1.0" encoding="utf-8" ?><config><shield><cli maj="7" min="0" minbld="0" maxbld="9999" deny="" /></shield><block></block></config>
C: CHG 10 NLN
S: CHG 10 NLN
C: UUX 11 40
<PSM></PSM><CurrentMedia></CurrentMedia>
C: UUX 11 53
<Data><PSM></PSM><CurrentMedia></CurrentMedia></Data>
S: UUX 11 0
C: OUT
```

4
package-lock.json generated
View file

@ -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:*"

View file

@ -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",