# Table of contents:
# Introduction
The Address Book Service (abservice), also known as the Address Book Clearing House (ABCH) is a SOAP (XML) Web Service. It was introduced with MSNP8.
It manages the link(s) between the E-mail Service Address Book and the Forward List (FL).
It's default HTTP URL is http://contacts.msn.com/abservice/abservice.asmx.
It's default HTTPS URL is https://contacts.msn.com/abservice/abservice.asmx.
Related: Contact Sharing Service (for other List's members).
# Authentication
This service requires Passport Authentication, either using Passport SSI 1.4 or Passport SOAP (RST).
There are two ways to authenticate.
# Using Cookies
The easiest way to authenticate is by setting the MSPAuth cookie to the MSPAuth value from your Passport Compact Token (everything after t= and before &p=)
This can be done using a token for either contacts.msn.com or messenger.msn.com.
# Using SOAP
Clients from MSNP15 and up use SOAP to authenticate with the service. See the ABAuthHeader section for more info.
This method of authentication only works with a token for contacts.msn.com.
# Actions
All actions listed have the prefix of
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) - ABGroupContactAdd (internal name:
Contacts.Push.Contact.AddToGroup) - ABGroupContactDelete (internal name:
Contacts.Push.Contact.DeleteFromGroup) - ABGroupAdd (internal name:
Contacts.Push.Group) - ABGroupDelete (internal name:
Contacts.Push.Group.Delete) - ABGroupUpdate (internal name:
Contacts.Push.Contact.Edit)
# Actions that we don't know much about
- ABFind (internal name:
Contacts.FindId) - ABAdd (internal name:
Contacts.AddAb) - 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. The following also applies to the Contact Sharing Service.
# Client/Request
The following sub-headings are XML elements for the client's request.
# soap:EnvelopeThis element has four attributes:
xmlns:soap: Is always set tohttp://schemas.xmlsoap.org/soap/envelope/.xmlns:xsi: Is always set tohttp://www.w3.org/2001/XMLSchema-instance.xmlns:xsd: Is always set tohttp://www.w3.org/2001/XMLSchema.xmlns:soapenc: Is always set tohttp://schemas.xmlsoap.org/soap/encoding/.
This element only serves to host the <ABApplicationHeader> and <ABAuthHeader> elements.
This element has only one attribute:
xmlns: Is always set tohttp://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 totrue, otherwise set tofalse.<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 modified contact is saved by the client.MessengerPendingList: Managing the Pending List (PL).ContactMsgrAPI: General Messenger API.BlockUnblock: Block or unblock of this user.GroupSave: When the modified group is saved by the client.
This element has only one attribute:
xmlns: Is always set tohttp://www.msn.com/webservices/AddressBook.
This element has two children:
<ManagedGroupRequest>: If this is a managed group request, set totrue, otherwise set tofalse.<TicketToken>This element contains the XML-encoded Passport Compact token forcontacts.msn.com(see above). Added since MSNP15.
Your request element and it's children goes here.
# Server/Response
The following sub-headings are XML elements for the server's response.
# soap:EnvelopeThis element has three attributes:
xmlns:soap: Is always set tohttp://schemas.xmlsoap.org/soap/envelope/.xmlns:xsi: Is always set tohttp://www.w3.org/2001/XMLSchema-instance.xmlns:xsd: Is always set tohttp://www.w3.org/2001/XMLSchema.
This element only serves to host the <ServiceHeader> element.
This element has only one attribute:
xmlns: Is always set tohttp://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 with14r2;, then continues with base64-encoded data. The meaning of the appended data is yet to be known. It may be a 128-bit hash of some kind.<CacheKeyChanged>: Did the<CacheKey>change? If it did, set totrue, otherwise set tofalse.<PreferredHostName>: The domain name that this service would like to receive requests to.<SessionId>: The current session GUID.
This element contains the server's response elements and their children for the action.