Frameworks/libpurple.framework/Versions/0.6.2/Headers/contact.h
changeset 2592 e8d15275025e
parent 2539 2c9881ea8cdf
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/Frameworks/libpurple.framework/Versions/0.6.2/Headers/contact.h	Fri Aug 21 13:25:11 2009 -0700
     1.3 @@ -0,0 +1,711 @@
     1.4 +/**
     1.5 + * @file contact.h			Header file for contact.c
     1.6 + *	Author
     1.7 + * 		MaYuan<mayuan2006@gmail.com>
     1.8 + * purple
     1.9 + *
    1.10 + * Purple is the legal property of its developers, whose names are too numerous
    1.11 + * to list here.  Please refer to the COPYRIGHT file distributed with this
    1.12 + * source distribution.
    1.13 + *
    1.14 + * This program is free software; you can redistribute it and/or modify
    1.15 + * it under the terms of the GNU General Public License as published by
    1.16 + * the Free Software Foundation; either version 2 of the License, or
    1.17 + * (at your option) any later version.
    1.18 + *
    1.19 + * This program is distributed in the hope that it will be useful,
    1.20 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    1.21 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1.22 + * GNU General Public License for more details.
    1.23 + *
    1.24 + * You should have received a copy of the GNU General Public License
    1.25 + * along with this program; if not, write to the Free Software
    1.26 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    1.27 + */
    1.28 +#ifndef _MSN_CONTACT_H_
    1.29 +#define _MSN_CONTACT_H_
    1.30 +
    1.31 +#include "session.h"
    1.32 +#include "soap.h"
    1.33 +
    1.34 +#define MSN_APPLICATION_ID "CFE80F9D-180F-4399-82AB-413F33A1FA11"
    1.35 +
    1.36 +#define MSN_CONTACT_SERVER	"omega.contacts.msn.com"
    1.37 +
    1.38 +/* Get Contact List */
    1.39 +
    1.40 +#define MSN_GET_CONTACT_POST_URL	"/abservice/SharingService.asmx"
    1.41 +#define MSN_GET_CONTACT_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/FindMembership"
    1.42 +
    1.43 +#define MSN_GET_CONTACT_UPDATE_XML \
    1.44 +	"<View>Full</View>"\
    1.45 +	"<deltasOnly>true</deltasOnly>"\
    1.46 +	"<lastChange>%s</lastChange>"
    1.47 +
    1.48 +#define MSN_GET_CONTACT_TEMPLATE	"<?xml version='1.0' encoding='utf-8'?>"\
    1.49 +"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
    1.50 +	"<soap:Header xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
    1.51 +		"<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
    1.52 +			"<ApplicationId xmlns=\"http://www.msn.com/webservices/AddressBook\">" MSN_APPLICATION_ID "</ApplicationId>"\
    1.53 +			"<IsMigration xmlns=\"http://www.msn.com/webservices/AddressBook\">false</IsMigration>"\
    1.54 +			"<PartnerScenario xmlns=\"http://www.msn.com/webservices/AddressBook\">%s</PartnerScenario>"\
    1.55 +		 "</ABApplicationHeader>"\
    1.56 +		"<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
    1.57 +			"<ManagedGroupRequest xmlns=\"http://www.msn.com/webservices/AddressBook\">false</ManagedGroupRequest>"\
    1.58 +			"<TicketToken>EMPTY</TicketToken>"\
    1.59 +		"</ABAuthHeader>"\
    1.60 +	"</soap:Header>"\
    1.61 +	"<soap:Body xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
    1.62 +		"<FindMembership xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
    1.63 +			"<serviceFilter xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
    1.64 +				"<Types xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
    1.65 +					"<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">Messenger</ServiceType>"\
    1.66 +					"<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">Invitation</ServiceType>"\
    1.67 +					"<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">SocialNetwork</ServiceType>"\
    1.68 +					"<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">Space</ServiceType>"\
    1.69 +					"<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">Profile</ServiceType>"\
    1.70 +				"</Types>"\
    1.71 +			"</serviceFilter>"\
    1.72 +			"%s"\
    1.73 +		"</FindMembership>"\
    1.74 +	"</soap:Body>"\
    1.75 +"</soap:Envelope>"
    1.76 +
    1.77 +/************************************************
    1.78 + * Address Book SOAP
    1.79 + * *********************************************/
    1.80 +
    1.81 +#define MSN_ADDRESS_BOOK_POST_URL	"/abservice/abservice.asmx"
    1.82 +
    1.83 +/* Create AddressBook template */
    1.84 +#define MSN_ADD_ADDRESSBOOK_SOAP_ACTION     "http://www.msn.com/webservices/AddressBook/ABAdd"
    1.85 +
    1.86 +#define MSN_ADD_ADDRESSBOOK_TEMPLATE	"<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
    1.87 +"<soap:Envelope"\
    1.88 +	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
    1.89 +	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
    1.90 +	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
    1.91 +	" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
    1.92 +	"<soap:Header>"\
    1.93 +		"<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
    1.94 +			"<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
    1.95 +			"<IsMigration>false</IsMigration>"\
    1.96 +			"<PartnerScenario>Initial</PartnerScenario>"\
    1.97 +		"</ABApplicationHeader>"\
    1.98 +		"<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
    1.99 +			"<ManagedGroupRequest>false</ManagedGroupRequest>"\
   1.100 +			"<TicketToken>EMPTY</TicketToken>"\
   1.101 +		"</ABAuthHeader>"\
   1.102 +	"</soap:Header>"\
   1.103 +	"<soap:Body>"\
   1.104 +		"<ABAdd xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.105 +			"<abInfo>"\
   1.106 +				"<name/>"\
   1.107 +				"<ownerPuid>0</ownerPuid>"\
   1.108 +				"<ownerEmail>%s</ownerEmail>"\
   1.109 +				"<fDefault>true</fDefault>"\
   1.110 +			"</abInfo>"\
   1.111 +		"</ABAdd>"\
   1.112 +	"</soap:Body>"\
   1.113 +"</soap:Envelope>"
   1.114 +
   1.115 +/* Get AddressBook */
   1.116 +#define MSN_GET_ADDRESS_SOAP_ACTION	"http://www.msn.com/webservices/AddressBook/ABFindAll"
   1.117 +#define MSN_GET_ADDRESS_FULL_TIME	"0001-01-01T00:00:00.0000000-08:00"
   1.118 +#define MSN_GET_ADDRESS_UPDATE_XML \
   1.119 +	"<deltasOnly>true</deltasOnly>"\
   1.120 +	"<lastChange>%s</lastChange>"
   1.121 +
   1.122 +#define MSN_GET_GLEAM_UPDATE_XML \
   1.123 +	"%s"\
   1.124 +	"<dynamicItemView>Gleam</dynamicItemView>"\
   1.125 +	"<dynamicItemLastChange>%s</dynamicItemLastChange>"
   1.126 +
   1.127 +#define MSN_GET_ADDRESS_TEMPLATE	"<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
   1.128 +"<soap:Envelope"\
   1.129 +	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
   1.130 +	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
   1.131 +	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
   1.132 +	" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
   1.133 +	"<soap:Header>"\
   1.134 +		"<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.135 +			"<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
   1.136 +			"<IsMigration>false</IsMigration>"\
   1.137 +			"<PartnerScenario>%s</PartnerScenario>"\
   1.138 +		"</ABApplicationHeader>"\
   1.139 +		"<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.140 +			"<ManagedGroupRequest>false</ManagedGroupRequest>"\
   1.141 +			"<TicketToken>EMPTY</TicketToken>"\
   1.142 +		"</ABAuthHeader>"\
   1.143 +	"</soap:Header>"\
   1.144 +	"<soap:Body>"\
   1.145 +		"<ABFindAll xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.146 +			"<abId>00000000-0000-0000-0000-000000000000</abId>"\
   1.147 +			"<abView>Full</abView>"\
   1.148 +			"%s"\
   1.149 +		"</ABFindAll>"\
   1.150 +	"</soap:Body>"\
   1.151 +"</soap:Envelope>"
   1.152 +
   1.153 +
   1.154 +/*Gleams SOAP request template*/
   1.155 +#define MSN_GET_GLEAMS_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABFindAll"
   1.156 +#define MSN_GLEAMS_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
   1.157 +"<soap:Envelope"\
   1.158 +	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
   1.159 +	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
   1.160 +	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
   1.161 +	" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
   1.162 +	"<soap:Header>"\
   1.163 +		"<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.164 +			"<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
   1.165 +			"<IsMigration>false</IsMigration>"\
   1.166 +			"<PartnerScenario>Initial</PartnerScenario>"\
   1.167 +		"</ABApplicationHeader>"\
   1.168 +		"<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.169 +			"<ManagedGroupRequest>false</ManagedGroupRequest>"\
   1.170 +			"<TicketToken>EMPTY</TicketToken>"\
   1.171 +		"</ABAuthHeader>"\
   1.172 +	"</soap:Header>"\
   1.173 +	"<soap:Body>"\
   1.174 +		"<ABFindAll xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.175 +			"<abId>00000000-0000-0000-0000-000000000000</abId>"\
   1.176 +			"<abView>Full</abView>"\
   1.177 +			"<dynamicItemView>Gleam</dynamicItemView>"\
   1.178 +			"<dynamicItemLastChange>0001-01-01T00:00:00.0000000-08:00</dynamicItemLastChange>"\
   1.179 +		"</ABFindAll>"\
   1.180 +	"</soap:Body>"\
   1.181 +"</soap:Envelope>"
   1.182 +
   1.183 +
   1.184 +/*******************************************************
   1.185 + * Contact Management SOAP actions
   1.186 + *******************************************************/
   1.187 +
   1.188 +/* Add a new contact */
   1.189 +#define MSN_CONTACT_ADD_SOAP_ACTION	"http://www.msn.com/webservices/AddressBook/ABContactAdd"
   1.190 +#define MSN_CONTACT_LIVE_PENDING_XML \
   1.191 +	"<Contact xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.192 +		"<contactInfo>"\
   1.193 +			"<contactType>LivePending</contactType>"\
   1.194 +			"<passportName>%s</passportName>"\
   1.195 +			"<isMessengerUser>true</isMessengerUser>"\
   1.196 +		"</contactInfo>"\
   1.197 +	"</Contact>"
   1.198 +
   1.199 +#define MSN_CONTACT_XML	\
   1.200 +	"<Contact xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.201 +		"<contactInfo>"\
   1.202 +			"<passportName>%s</passportName>"\
   1.203 +			"<isSmtp>false</isSmtp>"\
   1.204 +			"<isMessengerUser>true</isMessengerUser>"\
   1.205 +		"</contactInfo>"\
   1.206 +	"</Contact>"
   1.207 +
   1.208 +#define MSN_CONTACT_DISPLAYNAME_XML	\
   1.209 +	"<Contact xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.210 +		"<contactInfo>"\
   1.211 +			"<displayName>%s</displayName>"\
   1.212 +			"<passportName>%s</passportName>"\
   1.213 +			"<isMessengerUser>true</isMessengerUser>"\
   1.214 +		"</contactInfo>"\
   1.215 +	"</Contact>"
   1.216 +
   1.217 +#define MSN_CONTACT_ID_XML \
   1.218 +	"<Contact>"\
   1.219 +		"<contactId>%s</contactId>"\
   1.220 +	"</Contact>"
   1.221 +
   1.222 +#define MSN_CONTACT_EMAIL_XML \
   1.223 +	"<Contact>"\
   1.224 +		"<contactInfo>"\
   1.225 +			"<emails>"\
   1.226 +				"<ContactEmail>"\
   1.227 +					"<contactEmailType>%s</contactEmailType>"\
   1.228 +					"<email>%s</email>"\
   1.229 +					"<isMessengerEnabled>true</isMessengerEnabled>"\
   1.230 +					"<Capability>%d</Capability>"\
   1.231 +					"<MessengerEnabledExternally>false</MessengerEnabledExternally>"\
   1.232 +					"<propertiesChanged/>"\
   1.233 +				"</ContactEmail>"\
   1.234 +			"</emails>"\
   1.235 +		"</contactInfo>"\
   1.236 +	"</Contact>"
   1.237 +
   1.238 +#define MSN_CONTACT_INVITE_MESSAGE_XML \
   1.239 +	"<MessengerMemberInfo>"\
   1.240 +		"<PendingAnnotations>"\
   1.241 +			"<Annotation>"\
   1.242 +				"<Name>MSN.IM.InviteMessage</Name>"\
   1.243 +				"<Value>%s</Value>"\
   1.244 +			"</Annotation>"\
   1.245 +		"</PendingAnnotations>"\
   1.246 +		"<DisplayName>%s</DisplayName>"\
   1.247 +	"</MessengerMemberInfo>"
   1.248 +
   1.249 +#define MSN_ADD_CONTACT_TEMPLATE	"<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
   1.250 +"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
   1.251 +	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
   1.252 +	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
   1.253 +	" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
   1.254 +	"<soap:Header>"\
   1.255 +		"<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.256 +			"<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
   1.257 +			"<IsMigration>false</IsMigration>"\
   1.258 +			"<PartnerScenario>ContactSave</PartnerScenario>"\
   1.259 +		"</ABApplicationHeader>"\
   1.260 +		"<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.261 +			"<ManagedGroupRequest>false</ManagedGroupRequest>"\
   1.262 +			"<TicketToken>EMPTY</TicketToken>"\
   1.263 +		"</ABAuthHeader>"\
   1.264 +	"</soap:Header>"\
   1.265 +	"<soap:Body>"\
   1.266 +		"<ABContactAdd xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.267 +			"<abId>00000000-0000-0000-0000-000000000000</abId>"\
   1.268 +			"<contacts>%s</contacts>"\
   1.269 +			"<options>"\
   1.270 +				"<EnableAllowListManagement>true</EnableAllowListManagement>"\
   1.271 +			"</options>"\
   1.272 +		"</ABContactAdd>"\
   1.273 +	"</soap:Body>"\
   1.274 +"</soap:Envelope>"
   1.275 +
   1.276 +/* Add a contact to a group */
   1.277 +#define MSN_ADD_CONTACT_GROUP_SOAP_ACTION	"http://www.msn.com/webservices/AddressBook/ABGroupContactAdd"
   1.278 +#define MSN_ADD_CONTACT_GROUP_TEMPLATE	"<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
   1.279 +"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
   1.280 +	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
   1.281 +	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
   1.282 +	" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
   1.283 +	"<soap:Header>"\
   1.284 +		"<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.285 +			"<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
   1.286 +			"<IsMigration>false</IsMigration>"\
   1.287 +			"<PartnerScenario>ContactSave</PartnerScenario>"\
   1.288 +		"</ABApplicationHeader>"\
   1.289 +		"<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.290 +			"<ManagedGroupRequest>false</ManagedGroupRequest>"\
   1.291 +			"<TicketToken>EMPTY</TicketToken>"\
   1.292 +		"</ABAuthHeader>"\
   1.293 +	"</soap:Header>"\
   1.294 +	"<soap:Body>"\
   1.295 +		"<ABGroupContactAdd xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.296 +			"<abId>00000000-0000-0000-0000-000000000000</abId>"\
   1.297 +			"<groupFilter>"\
   1.298 +				"<groupIds>"\
   1.299 +					"<guid>%s</guid>"\
   1.300 +				"</groupIds>"\
   1.301 +			"</groupFilter>"\
   1.302 +			"<contacts>%s</contacts>"\
   1.303 +			"<groupContactAddOptions>"\
   1.304 +				"<fGenerateMissingQuickName>true</fGenerateMissingQuickName>"\
   1.305 +				"<EnableAllowListManagement>true</EnableAllowListManagement>"\
   1.306 +			"</groupContactAddOptions>"\
   1.307 +			"%s"\
   1.308 +		"</ABGroupContactAdd>"\
   1.309 +	"</soap:Body>"\
   1.310 +"</soap:Envelope>"
   1.311 +
   1.312 +/* Delete a contact from the Contact List */
   1.313 +#define MSN_CONTACT_DEL_SOAP_ACTION	"http://www.msn.com/webservices/AddressBook/ABContactDelete"
   1.314 +#define MSN_DEL_CONTACT_TEMPLATE	"<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
   1.315 +"<soap:Envelope"\
   1.316 +	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
   1.317 +	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
   1.318 +	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
   1.319 +	" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
   1.320 +	"<soap:Header>"\
   1.321 +		"<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.322 +			"<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
   1.323 +			"<IsMigration>false</IsMigration>"\
   1.324 +			"<PartnerScenario>Timer</PartnerScenario>"\
   1.325 +		"</ABApplicationHeader>"\
   1.326 +		"<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.327 +			"<ManagedGroupRequest>false</ManagedGroupRequest>"\
   1.328 +			"<TicketToken>EMPTY</TicketToken>"\
   1.329 +		"</ABAuthHeader>"\
   1.330 +	"</soap:Header>"\
   1.331 +	"<soap:Body>"\
   1.332 +		"<ABContactDelete xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.333 +			"<abId>00000000-0000-0000-0000-000000000000</abId>"\
   1.334 +			"<contacts>%s</contacts>"\
   1.335 +		"</ABContactDelete>"\
   1.336 +	"</soap:Body>"\
   1.337 +"</soap:Envelope>"
   1.338 +
   1.339 +/* Remove a contact from a group */
   1.340 +#define MSN_CONTACT_DEL_GROUP_SOAP_ACTION	"http://www.msn.com/webservices/AddressBook/ABGroupContactDelete"
   1.341 +#define MSN_CONTACT_DEL_GROUP_TEMPLATE	"<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
   1.342 +"<soap:Envelope"\
   1.343 +	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
   1.344 +	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
   1.345 +	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
   1.346 +	" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
   1.347 +	"<soap:Header>"\
   1.348 +		"<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.349 +			"<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
   1.350 +			"<IsMigration>false</IsMigration>"\
   1.351 +			"<PartnerScenario>Timer</PartnerScenario>"\
   1.352 +		"</ABApplicationHeader>"\
   1.353 +		"<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.354 +			"<ManagedGroupRequest>false</ManagedGroupRequest>"\
   1.355 +			"<TicketToken>EMPTY</TicketToken>"\
   1.356 +		"</ABAuthHeader>"\
   1.357 +	"</soap:Header>"\
   1.358 +	"<soap:Body>"\
   1.359 +		"<ABGroupContactDelete xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.360 +			"<abId>00000000-0000-0000-0000-000000000000</abId>"\
   1.361 +			"<contacts>%s</contacts>"\
   1.362 +			"<groupFilter>"\
   1.363 +				"<groupIds>"\
   1.364 +					"<guid>%s</guid>"\
   1.365 +				"</groupIds>"\
   1.366 +			"</groupFilter>"\
   1.367 +		"</ABGroupContactDelete>"\
   1.368 +	"</soap:Body>"\
   1.369 +"</soap:Envelope>"
   1.370 +
   1.371 +
   1.372 +/* Update Contact Information */
   1.373 +#define MSN_CONTACT_UPDATE_SOAP_ACTION	"http://www.msn.com/webservices/AddressBook/ABContactUpdate"
   1.374 +#define MSN_CONTACT_UPDATE_TEMPLATE	"<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
   1.375 +"<soap:Envelope"\
   1.376 +	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
   1.377 +	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
   1.378 +	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
   1.379 +	" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
   1.380 +	"<soap:Header>"\
   1.381 +		"<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.382 +			"<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
   1.383 +			"<IsMigration>false</IsMigration>"\
   1.384 +			"<PartnerScenario>Timer</PartnerScenario>"\
   1.385 +		"</ABApplicationHeader>"\
   1.386 +		"<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.387 +			"<ManagedGroupRequest>false</ManagedGroupRequest>"\
   1.388 +			"<TicketToken>EMPTY</TicketToken>"\
   1.389 +		"</ABAuthHeader>"\
   1.390 +	"</soap:Header>"\
   1.391 +	"<soap:Body>"\
   1.392 +		"<ABContactUpdate xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.393 +			"<abId>00000000-0000-0000-0000-000000000000</abId>"\
   1.394 +			"<contacts>"\
   1.395 +				"<Contact xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.396 +					""\
   1.397 +				"</Contact>"\
   1.398 +			"</contacts>"\
   1.399 +		"</ABContactUpdate>"\
   1.400 +	"</soap:Body>"\
   1.401 +"</soap:Envelope>"
   1.402 +
   1.403 +/*******************************************************
   1.404 + * Add/Delete contact from lists SOAP actions
   1.405 + *******************************************************/
   1.406 +
   1.407 +/* block means delete from allow list and add contact to block list */
   1.408 +#define MSN_SHARE_POST_URL		"/abservice/SharingService.asmx"
   1.409 +
   1.410 +#define MSN_ADD_MEMBER_TO_LIST_SOAP_ACTION	"http://www.msn.com/webservices/AddressBook/AddMember"
   1.411 +#define MSN_DELETE_MEMBER_FROM_LIST_SOAP_ACTION	"http://www.msn.com/webservices/AddressBook/DeleteMember"
   1.412 +
   1.413 +#define MSN_MEMBER_PASSPORT_XML	\
   1.414 +	"<Member xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"%s\">"\
   1.415 +		"<Type>%s</Type>"\
   1.416 +		"<State>Accepted</State>"\
   1.417 +		"<%s>%s</%s>"\
   1.418 +	"</Member>"
   1.419 +
   1.420 +#define MSN_MEMBER_MEMBERSHIPID_XML	\
   1.421 +	"<Member xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"%s\">"\
   1.422 +		"<Type>%s</Type>"\
   1.423 +		"<MembershipId>%u</MembershipId>"\
   1.424 +		"<State>Accepted</State>"\
   1.425 +	"</Member>"
   1.426 +
   1.427 +/* first delete contact from allow list */
   1.428 +
   1.429 +#define MSN_CONTACT_DELETE_FROM_LIST_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
   1.430 +"<soap:Envelope"\
   1.431 +	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
   1.432 +	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
   1.433 +	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
   1.434 +	" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
   1.435 +	"<soap:Header>"\
   1.436 +		"<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.437 +			"<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
   1.438 +			"<IsMigration>false</IsMigration>"\
   1.439 +			"<PartnerScenario>%s</PartnerScenario>"\
   1.440 +		"</ABApplicationHeader>"\
   1.441 +		"<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.442 +			"<ManagedGroupRequest>false</ManagedGroupRequest>"\
   1.443 +			"<TicketToken>EMPTY</TicketToken>"\
   1.444 +		"</ABAuthHeader>"\
   1.445 +	"</soap:Header>"\
   1.446 +	"<soap:Body>"\
   1.447 +		"<DeleteMember xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.448 +			"<serviceHandle>"\
   1.449 +				"<Id>0</Id>"\
   1.450 +				"<Type>Messenger</Type>"\
   1.451 +				"<ForeignId></ForeignId>"\
   1.452 +			"</serviceHandle>"\
   1.453 +			"<memberships>"\
   1.454 +				"<Membership>"\
   1.455 +					"<MemberRole>%s</MemberRole>"\
   1.456 +					"<Members>"\
   1.457 +						"%s"\
   1.458 +					"</Members>"\
   1.459 +				"</Membership>"\
   1.460 +			"</memberships>"\
   1.461 +		"</DeleteMember>"\
   1.462 +	"</soap:Body>"\
   1.463 +"</soap:Envelope>"
   1.464 +
   1.465 +#define MSN_CONTACT_ADD_TO_LIST_TEMPLATE	"<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
   1.466 +"<soap:Envelope"\
   1.467 +	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
   1.468 +	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
   1.469 +	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
   1.470 +	" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
   1.471 +	"<soap:Header>"\
   1.472 +		"<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.473 +			"<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
   1.474 +			"<IsMigration>false</IsMigration>"\
   1.475 +			"<PartnerScenario>%s</PartnerScenario>"\
   1.476 +		"</ABApplicationHeader>"\
   1.477 +		"<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.478 +			"<ManagedGroupRequest>false</ManagedGroupRequest>"\
   1.479 +			"<TicketToken>EMPTY</TicketToken>"\
   1.480 +		"</ABAuthHeader>"\
   1.481 +	"</soap:Header>"\
   1.482 +	"<soap:Body>"\
   1.483 +		"<AddMember xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.484 +			"<serviceHandle>"\
   1.485 +				"<Id>0</Id>"\
   1.486 +				"<Type>Messenger</Type>"\
   1.487 +				"<ForeignId></ForeignId>"\
   1.488 +			"</serviceHandle>"\
   1.489 +			"<memberships>"\
   1.490 +				"<Membership>"\
   1.491 +					"<MemberRole>%s</MemberRole>"\
   1.492 +					"<Members>"\
   1.493 +						"%s"\
   1.494 +					"</Members>"\
   1.495 +				"</Membership>"\
   1.496 +			"</memberships>"\
   1.497 +		"</AddMember>"\
   1.498 +	"</soap:Body>"\
   1.499 +"</soap:Envelope>"
   1.500 +
   1.501 +
   1.502 +
   1.503 +/*******************************************************
   1.504 + * Group management SOAP actions
   1.505 + *******************************************************/
   1.506 +
   1.507 +/* add a group */
   1.508 +#define MSN_GROUP_ADD_SOAP_ACTION	"http://www.msn.com/webservices/AddressBook/ABGroupAdd"
   1.509 +#define MSN_GROUP_ADD_TEMPLATE	"<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
   1.510 +"<soap:Envelope"\
   1.511 +	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
   1.512 +	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
   1.513 +	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
   1.514 +	" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
   1.515 +	"<soap:Header>"\
   1.516 +		"<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.517 +			"<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
   1.518 +			"<IsMigration>false</IsMigration>"\
   1.519 +			"<PartnerScenario>GroupSave</PartnerScenario>"\
   1.520 +		"</ABApplicationHeader>"\
   1.521 +		"<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.522 +			"<ManagedGroupRequest>false</ManagedGroupRequest>"\
   1.523 +			"<TicketToken>EMPTY</TicketToken>"\
   1.524 +		"</ABAuthHeader>"\
   1.525 +	"</soap:Header>"\
   1.526 +	"<soap:Body>"\
   1.527 +		"<ABGroupAdd xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.528 +			"<abId>00000000-0000-0000-0000-000000000000</abId>"\
   1.529 +			"<groupAddOptions>"\
   1.530 +				"<fRenameOnMsgrConflict>false</fRenameOnMsgrConflict>"\
   1.531 +			"</groupAddOptions>"\
   1.532 +			"<groupInfo>"\
   1.533 +				"<GroupInfo>"\
   1.534 +					"<name>%s</name>"\
   1.535 +					"<groupType>C8529CE2-6EAD-434d-881F-341E17DB3FF8</groupType>"\
   1.536 +					"<fMessenger>false</fMessenger>"\
   1.537 +					"<annotations>"\
   1.538 +						"<Annotation>"\
   1.539 +							"<Name>MSN.IM.Display</Name>"\
   1.540 +							"<Value>1</Value>"\
   1.541 +						"</Annotation>"\
   1.542 +					"</annotations>"\
   1.543 +				"</GroupInfo>"\
   1.544 +			"</groupInfo>"\
   1.545 +		"</ABGroupAdd>"\
   1.546 +	"</soap:Body>"\
   1.547 +"</soap:Envelope>"
   1.548 +
   1.549 +/* delete a group */
   1.550 +#define MSN_GROUP_DEL_SOAP_ACTION	"http://www.msn.com/webservices/AddressBook/ABGroupDelete"
   1.551 +#define MSN_GROUP_DEL_TEMPLATE	"<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
   1.552 +"<soap:Envelope"\
   1.553 +	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
   1.554 +	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
   1.555 +	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
   1.556 +	" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
   1.557 +	"<soap:Header>"\
   1.558 +		"<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.559 +			"<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
   1.560 +			"<IsMigration>false</IsMigration>"\
   1.561 +			"<PartnerScenario>Timer</PartnerScenario>"\
   1.562 +		"</ABApplicationHeader>"\
   1.563 +		"<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.564 +			"<ManagedGroupRequest>false</ManagedGroupRequest>"\
   1.565 +			"<TicketToken>EMPTY</TicketToken>"\
   1.566 +		"</ABAuthHeader>"\
   1.567 +	"</soap:Header>"\
   1.568 +	"<soap:Body>"\
   1.569 +		"<ABGroupDelete xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.570 +			"<abId>00000000-0000-0000-0000-000000000000</abId>"\
   1.571 +			"<groupFilter>"\
   1.572 +				"<groupIds>"\
   1.573 +					"<guid>%s</guid>"\
   1.574 +				"</groupIds>"\
   1.575 +			"</groupFilter>"\
   1.576 +		"</ABGroupDelete>"\
   1.577 +	"</soap:Body>"\
   1.578 +"</soap:Envelope>"
   1.579 +
   1.580 +/* change a group's name */
   1.581 +#define MSN_GROUP_RENAME_SOAP_ACTION	"http://www.msn.com/webservices/AddressBook/ABGroupUpdate"
   1.582 +#define MSN_GROUP_RENAME_TEMPLATE	"<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
   1.583 +"<soap:Envelope"\
   1.584 +	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
   1.585 +	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
   1.586 +	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
   1.587 +	" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
   1.588 +	"<soap:Header>"\
   1.589 +		"<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.590 +			"<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
   1.591 +			"<IsMigration>false</IsMigration>"\
   1.592 +			"<PartnerScenario>Timer</PartnerScenario>"\
   1.593 +		"</ABApplicationHeader>"\
   1.594 +		"<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.595 +			"<ManagedGroupRequest>false</ManagedGroupRequest>"\
   1.596 +			"<TicketToken>EMPTY</TicketToken>"\
   1.597 +		"</ABAuthHeader>"\
   1.598 +	"</soap:Header>"\
   1.599 +	"<soap:Body>"\
   1.600 +		"<ABGroupUpdate xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
   1.601 +			"<abId>00000000-0000-0000-0000-000000000000</abId>"\
   1.602 +			"<groups>"\
   1.603 +				"<Group>"\
   1.604 +					"<groupId>%s</groupId>"\
   1.605 +					"<groupInfo>"\
   1.606 +						"<name>%s</name>"\
   1.607 +					"</groupInfo>"\
   1.608 +					"<propertiesChanged>GroupName </propertiesChanged>"\
   1.609 +				"</Group>"\
   1.610 +			"</groups>"\
   1.611 +		"</ABGroupUpdate>"\
   1.612 +	"</soap:Body>"\
   1.613 +"</soap:Envelope>"
   1.614 +
   1.615 +typedef enum
   1.616 +{
   1.617 +	MSN_ADD_BUDDY       = 0x01,
   1.618 +	MSN_MOVE_BUDDY      = 0x02,
   1.619 +	MSN_ACCEPTED_BUDDY  = 0x04,
   1.620 +	MSN_DENIED_BUDDY    = 0x08,
   1.621 +	MSN_ADD_GROUP       = 0x10,
   1.622 +	MSN_DEL_GROUP       = 0x20,
   1.623 +	MSN_RENAME_GROUP    = 0x40,
   1.624 +	MSN_UPDATE_INFO     = 0x80
   1.625 +} MsnCallbackAction;
   1.626 +
   1.627 +typedef enum
   1.628 +{
   1.629 +	MSN_PS_INITIAL,
   1.630 +	MSN_PS_SAVE_CONTACT,
   1.631 +	MSN_PS_PENDING_LIST,
   1.632 +	MSN_PS_CONTACT_API,
   1.633 +	MSN_PS_BLOCK_UNBLOCK
   1.634 +} MsnSoapPartnerScenario;
   1.635 +
   1.636 +typedef struct _MsnCallbackState MsnCallbackState;
   1.637 +
   1.638 +struct _MsnCallbackState
   1.639 +{
   1.640 +	gchar * who;
   1.641 +	gchar * uid;
   1.642 +	gchar * old_group_name;
   1.643 +	gchar * new_group_name;
   1.644 +	gchar * guid;
   1.645 +	MsnListId list_id;
   1.646 +	MsnCallbackAction action;
   1.647 +	MsnSession *session;
   1.648 +	xmlnode *body;
   1.649 +	xmlnode *token;
   1.650 +	const gchar *post_action;
   1.651 +	const gchar *post_url;
   1.652 +	MsnSoapCallback cb;
   1.653 +	/* For msn_get_contact_list only */
   1.654 +	MsnSoapPartnerScenario partner_scenario;
   1.655 +};
   1.656 +
   1.657 +typedef enum
   1.658 +{
   1.659 +	MSN_UPDATE_DISPLAY,	/* Real display name */
   1.660 +	MSN_UPDATE_ALIAS,	/* Aliased display name */
   1.661 +	MSN_UPDATE_COMMENT
   1.662 +} MsnContactUpdateType;
   1.663 +
   1.664 +/************************************************
   1.665 + * function prototype
   1.666 + ************************************************/
   1.667 +MsnCallbackState * msn_callback_state_new(MsnSession *session);
   1.668 +MsnCallbackState * msn_callback_state_dup(MsnCallbackState *state);
   1.669 +void msn_callback_state_free(MsnCallbackState *state);
   1.670 +void msn_callback_state_set_who(MsnCallbackState *state, const gchar *who);
   1.671 +void msn_callback_state_set_uid(MsnCallbackState *state, const gchar *uid);
   1.672 +void msn_callback_state_set_old_group_name(MsnCallbackState *state,
   1.673 +					   const gchar *old_group_name);
   1.674 +void msn_callback_state_set_new_group_name(MsnCallbackState *state,
   1.675 +					   const gchar *new_group_name);
   1.676 +void msn_callback_state_set_guid(MsnCallbackState *state, const gchar *guid);
   1.677 +void msn_callback_state_set_list_id(MsnCallbackState *state, MsnListId list_id);
   1.678 +void msn_callback_state_set_action(MsnCallbackState *state,
   1.679 +				   MsnCallbackAction action);
   1.680 +
   1.681 +void msn_contact_connect(MsnSession *session);
   1.682 +void msn_get_contact_list(MsnSession *session,
   1.683 +			  const MsnSoapPartnerScenario partner_scenario,
   1.684 +			  const char *update);
   1.685 +void msn_get_address_book(MsnSession *session,
   1.686 +			  const MsnSoapPartnerScenario partner_scenario,
   1.687 +			  const char * update, const char * gupdate);
   1.688 +
   1.689 +/* contact SOAP operations */
   1.690 +void msn_update_contact(MsnSession *session, const char *passport, MsnContactUpdateType type, const char* value);
   1.691 +
   1.692 +void msn_add_contact(MsnSession *session, MsnCallbackState *state,
   1.693 +		     const char *passport);
   1.694 +void msn_delete_contact(MsnSession *session, MsnUser *user);
   1.695 +
   1.696 +void msn_add_contact_to_group(MsnSession *session, MsnCallbackState *state,
   1.697 +			      const char *passport, const char *groupId);
   1.698 +void msn_del_contact_from_group(MsnSession *session, const char *passport,
   1.699 +				const char *group_name);
   1.700 +/* group operations */
   1.701 +void msn_add_group(MsnSession *session, MsnCallbackState *state,
   1.702 +					const char* group_name);
   1.703 +void msn_del_group(MsnSession *session, const gchar *group_name);
   1.704 +void msn_contact_rename_group(MsnSession *session, const char *old_group_name,
   1.705 +						   const char *new_group_name);
   1.706 +
   1.707 +/* lists operations */
   1.708 +void msn_add_contact_to_list(MsnSession *session, MsnCallbackState *state,
   1.709 +			     const gchar *passport, const MsnListId list);
   1.710 +void msn_del_contact_from_list(MsnSession *session, MsnCallbackState *state,
   1.711 +			       const gchar *passport, const MsnListId list);
   1.712 +
   1.713 +#endif /* _MSN_CONTACT_H_ */
   1.714 +