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 +