2 * @file contact.h Header file for contact.c
4 * MaYuan<mayuan2006@gmail.com>
7 * Purple is the legal property of its developers, whose names are too numerous
8 * to list here. Please refer to the COPYRIGHT file distributed with this
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 #ifndef _MSN_CONTACT_H_
26 #define _MSN_CONTACT_H_
31 #define MSN_APPLICATION_ID "CFE80F9D-180F-4399-82AB-413F33A1FA11"
33 #define MSN_CONTACT_SERVER "omega.contacts.msn.com"
35 /* Get Contact List */
37 #define MSN_GET_CONTACT_POST_URL "/abservice/SharingService.asmx"
38 #define MSN_GET_CONTACT_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/FindMembership"
40 #define MSN_GET_CONTACT_UPDATE_XML \
42 "<deltasOnly>true</deltasOnly>"\
43 "<lastChange>%s</lastChange>"
45 #define MSN_GET_CONTACT_TEMPLATE "<?xml version='1.0' encoding='utf-8'?>"\
46 "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
47 "<soap:Header xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
48 "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
49 "<ApplicationId xmlns=\"http://www.msn.com/webservices/AddressBook\">" MSN_APPLICATION_ID "</ApplicationId>"\
50 "<IsMigration xmlns=\"http://www.msn.com/webservices/AddressBook\">false</IsMigration>"\
51 "<PartnerScenario xmlns=\"http://www.msn.com/webservices/AddressBook\">%s</PartnerScenario>"\
52 "</ABApplicationHeader>"\
53 "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
54 "<ManagedGroupRequest xmlns=\"http://www.msn.com/webservices/AddressBook\">false</ManagedGroupRequest>"\
55 "<TicketToken>EMPTY</TicketToken>"\
58 "<soap:Body xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
59 "<FindMembership xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
60 "<serviceFilter xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
61 "<Types xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
62 "<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">Messenger</ServiceType>"\
63 "<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">Invitation</ServiceType>"\
64 "<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">SocialNetwork</ServiceType>"\
65 "<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">Space</ServiceType>"\
66 "<ServiceType xmlns=\"http://www.msn.com/webservices/AddressBook\">Profile</ServiceType>"\
74 /************************************************
76 * *********************************************/
78 #define MSN_ADDRESS_BOOK_POST_URL "/abservice/abservice.asmx"
80 /* Create AddressBook template */
81 #define MSN_ADD_ADDRESSBOOK_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABAdd"
83 #define MSN_ADD_ADDRESSBOOK_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
85 " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
86 " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
87 " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
88 " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
90 "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
91 "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
92 "<IsMigration>false</IsMigration>"\
93 "<PartnerScenario>Initial</PartnerScenario>"\
94 "</ABApplicationHeader>"\
95 "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
96 "<ManagedGroupRequest>false</ManagedGroupRequest>"\
97 "<TicketToken>EMPTY</TicketToken>"\
101 "<ABAdd xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
104 "<ownerPuid>0</ownerPuid>"\
105 "<ownerEmail>%s</ownerEmail>"\
106 "<fDefault>true</fDefault>"\
112 /* Get AddressBook */
113 #define MSN_GET_ADDRESS_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABFindAll"
114 #define MSN_GET_ADDRESS_FULL_TIME "0001-01-01T00:00:00.0000000-08:00"
115 #define MSN_GET_ADDRESS_UPDATE_XML \
116 "<deltasOnly>true</deltasOnly>"\
117 "<lastChange>%s</lastChange>"
119 #define MSN_GET_GLEAM_UPDATE_XML \
121 "<dynamicItemView>Gleam</dynamicItemView>"\
122 "<dynamicItemLastChange>%s</dynamicItemLastChange>"
124 #define MSN_GET_ADDRESS_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
126 " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
127 " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
128 " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
129 " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
131 "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
132 "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
133 "<IsMigration>false</IsMigration>"\
134 "<PartnerScenario>%s</PartnerScenario>"\
135 "</ABApplicationHeader>"\
136 "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
137 "<ManagedGroupRequest>false</ManagedGroupRequest>"\
138 "<TicketToken>EMPTY</TicketToken>"\
142 "<ABFindAll xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
143 "<abId>00000000-0000-0000-0000-000000000000</abId>"\
144 "<abView>Full</abView>"\
151 /*Gleams SOAP request template*/
152 #define MSN_GET_GLEAMS_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABFindAll"
153 #define MSN_GLEAMS_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
155 " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
156 " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
157 " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
158 " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
160 "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
161 "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
162 "<IsMigration>false</IsMigration>"\
163 "<PartnerScenario>Initial</PartnerScenario>"\
164 "</ABApplicationHeader>"\
165 "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
166 "<ManagedGroupRequest>false</ManagedGroupRequest>"\
167 "<TicketToken>EMPTY</TicketToken>"\
171 "<ABFindAll xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
172 "<abId>00000000-0000-0000-0000-000000000000</abId>"\
173 "<abView>Full</abView>"\
174 "<dynamicItemView>Gleam</dynamicItemView>"\
175 "<dynamicItemLastChange>0001-01-01T00:00:00.0000000-08:00</dynamicItemLastChange>"\
181 /*******************************************************
182 * Contact Management SOAP actions
183 *******************************************************/
185 /* Add a new contact */
186 #define MSN_CONTACT_ADD_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABContactAdd"
187 #define MSN_CONTACT_LIVE_PENDING_XML \
188 "<Contact xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
190 "<contactType>LivePending</contactType>"\
191 "<passportName>%s</passportName>"\
192 "<isMessengerUser>true</isMessengerUser>"\
196 #define MSN_CONTACT_XML \
197 "<Contact xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
199 "<passportName>%s</passportName>"\
200 "<isSmtp>false</isSmtp>"\
201 "<isMessengerUser>true</isMessengerUser>"\
205 #define MSN_CONTACT_DISPLAYNAME_XML \
206 "<Contact xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
208 "<displayName>%s</displayName>"\
209 "<passportName>%s</passportName>"\
210 "<isMessengerUser>true</isMessengerUser>"\
214 #define MSN_CONTACT_ID_XML \
216 "<contactId>%s</contactId>"\
219 #define MSN_CONTACT_EMAIL_XML \
224 "<contactEmailType>%s</contactEmailType>"\
226 "<isMessengerEnabled>true</isMessengerEnabled>"\
227 "<Capability>%d</Capability>"\
228 "<MessengerEnabledExternally>false</MessengerEnabledExternally>"\
229 "<propertiesChanged/>"\
235 #define MSN_CONTACT_INVITE_MESSAGE_XML \
236 "<MessengerMemberInfo>"\
237 "<PendingAnnotations>"\
239 "<Name>MSN.IM.InviteMessage</Name>"\
242 "</PendingAnnotations>"\
243 "<DisplayName>%s</DisplayName>"\
244 "</MessengerMemberInfo>"
246 #define MSN_ADD_CONTACT_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
247 "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
248 " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
249 " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
250 " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
252 "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
253 "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
254 "<IsMigration>false</IsMigration>"\
255 "<PartnerScenario>ContactSave</PartnerScenario>"\
256 "</ABApplicationHeader>"\
257 "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
258 "<ManagedGroupRequest>false</ManagedGroupRequest>"\
259 "<TicketToken>EMPTY</TicketToken>"\
263 "<ABContactAdd xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
264 "<abId>00000000-0000-0000-0000-000000000000</abId>"\
265 "<contacts>%s</contacts>"\
267 "<EnableAllowListManagement>true</EnableAllowListManagement>"\
273 /* Add a contact to a group */
274 #define MSN_ADD_CONTACT_GROUP_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABGroupContactAdd"
275 #define MSN_ADD_CONTACT_GROUP_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
276 "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
277 " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
278 " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
279 " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
281 "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
282 "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
283 "<IsMigration>false</IsMigration>"\
284 "<PartnerScenario>ContactSave</PartnerScenario>"\
285 "</ABApplicationHeader>"\
286 "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
287 "<ManagedGroupRequest>false</ManagedGroupRequest>"\
288 "<TicketToken>EMPTY</TicketToken>"\
292 "<ABGroupContactAdd xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
293 "<abId>00000000-0000-0000-0000-000000000000</abId>"\
299 "<contacts>%s</contacts>"\
300 "<groupContactAddOptions>"\
301 "<fGenerateMissingQuickName>true</fGenerateMissingQuickName>"\
302 "<EnableAllowListManagement>true</EnableAllowListManagement>"\
303 "</groupContactAddOptions>"\
305 "</ABGroupContactAdd>"\
309 /* Delete a contact from the Contact List */
310 #define MSN_CONTACT_DEL_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABContactDelete"
311 #define MSN_DEL_CONTACT_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
313 " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
314 " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
315 " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
316 " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
318 "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
319 "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
320 "<IsMigration>false</IsMigration>"\
321 "<PartnerScenario>Timer</PartnerScenario>"\
322 "</ABApplicationHeader>"\
323 "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
324 "<ManagedGroupRequest>false</ManagedGroupRequest>"\
325 "<TicketToken>EMPTY</TicketToken>"\
329 "<ABContactDelete xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
330 "<abId>00000000-0000-0000-0000-000000000000</abId>"\
331 "<contacts>%s</contacts>"\
332 "</ABContactDelete>"\
336 /* Remove a contact from a group */
337 #define MSN_CONTACT_DEL_GROUP_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABGroupContactDelete"
338 #define MSN_CONTACT_DEL_GROUP_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
340 " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
341 " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
342 " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
343 " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
345 "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
346 "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
347 "<IsMigration>false</IsMigration>"\
348 "<PartnerScenario>Timer</PartnerScenario>"\
349 "</ABApplicationHeader>"\
350 "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
351 "<ManagedGroupRequest>false</ManagedGroupRequest>"\
352 "<TicketToken>EMPTY</TicketToken>"\
356 "<ABGroupContactDelete xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
357 "<abId>00000000-0000-0000-0000-000000000000</abId>"\
358 "<contacts>%s</contacts>"\
364 "</ABGroupContactDelete>"\
369 /* Update Contact Information */
370 #define MSN_CONTACT_UPDATE_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABContactUpdate"
371 #define MSN_CONTACT_UPDATE_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
373 " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
374 " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
375 " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
376 " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
378 "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
379 "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
380 "<IsMigration>false</IsMigration>"\
381 "<PartnerScenario>Timer</PartnerScenario>"\
382 "</ABApplicationHeader>"\
383 "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
384 "<ManagedGroupRequest>false</ManagedGroupRequest>"\
385 "<TicketToken>EMPTY</TicketToken>"\
389 "<ABContactUpdate xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
390 "<abId>00000000-0000-0000-0000-000000000000</abId>"\
392 "<Contact xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
396 "</ABContactUpdate>"\
400 /*******************************************************
401 * Add/Delete contact from lists SOAP actions
402 *******************************************************/
404 /* block means delete from allow list and add contact to block list */
405 #define MSN_SHARE_POST_URL "/abservice/SharingService.asmx"
407 #define MSN_ADD_MEMBER_TO_LIST_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/AddMember"
408 #define MSN_DELETE_MEMBER_FROM_LIST_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/DeleteMember"
410 #define MSN_MEMBER_PASSPORT_XML \
411 "<Member xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"%s\">"\
413 "<State>Accepted</State>"\
417 #define MSN_MEMBER_MEMBERSHIPID_XML \
418 "<Member xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"%s\">"\
420 "<MembershipId>%u</MembershipId>"\
421 "<State>Accepted</State>"\
424 /* first delete contact from allow list */
426 #define MSN_CONTACT_DELETE_FROM_LIST_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
428 " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
429 " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
430 " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
431 " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
433 "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
434 "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
435 "<IsMigration>false</IsMigration>"\
436 "<PartnerScenario>%s</PartnerScenario>"\
437 "</ABApplicationHeader>"\
438 "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
439 "<ManagedGroupRequest>false</ManagedGroupRequest>"\
440 "<TicketToken>EMPTY</TicketToken>"\
444 "<DeleteMember xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
447 "<Type>Messenger</Type>"\
448 "<ForeignId></ForeignId>"\
452 "<MemberRole>%s</MemberRole>"\
462 #define MSN_CONTACT_ADD_TO_LIST_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
464 " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
465 " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
466 " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
467 " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
469 "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
470 "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
471 "<IsMigration>false</IsMigration>"\
472 "<PartnerScenario>%s</PartnerScenario>"\
473 "</ABApplicationHeader>"\
474 "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
475 "<ManagedGroupRequest>false</ManagedGroupRequest>"\
476 "<TicketToken>EMPTY</TicketToken>"\
480 "<AddMember xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
483 "<Type>Messenger</Type>"\
484 "<ForeignId></ForeignId>"\
488 "<MemberRole>%s</MemberRole>"\
500 /*******************************************************
501 * Group management SOAP actions
502 *******************************************************/
505 #define MSN_GROUP_ADD_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABGroupAdd"
506 #define MSN_GROUP_ADD_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
508 " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
509 " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
510 " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
511 " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
513 "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
514 "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
515 "<IsMigration>false</IsMigration>"\
516 "<PartnerScenario>GroupSave</PartnerScenario>"\
517 "</ABApplicationHeader>"\
518 "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
519 "<ManagedGroupRequest>false</ManagedGroupRequest>"\
520 "<TicketToken>EMPTY</TicketToken>"\
524 "<ABGroupAdd xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
525 "<abId>00000000-0000-0000-0000-000000000000</abId>"\
527 "<fRenameOnMsgrConflict>false</fRenameOnMsgrConflict>"\
528 "</groupAddOptions>"\
532 "<groupType>C8529CE2-6EAD-434d-881F-341E17DB3FF8</groupType>"\
533 "<fMessenger>false</fMessenger>"\
536 "<Name>MSN.IM.Display</Name>"\
547 #define MSN_GROUP_DEL_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABGroupDelete"
548 #define MSN_GROUP_DEL_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
550 " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
551 " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
552 " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
553 " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
555 "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
556 "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
557 "<IsMigration>false</IsMigration>"\
558 "<PartnerScenario>Timer</PartnerScenario>"\
559 "</ABApplicationHeader>"\
560 "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
561 "<ManagedGroupRequest>false</ManagedGroupRequest>"\
562 "<TicketToken>EMPTY</TicketToken>"\
566 "<ABGroupDelete xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
567 "<abId>00000000-0000-0000-0000-000000000000</abId>"\
577 /* change a group's name */
578 #define MSN_GROUP_RENAME_SOAP_ACTION "http://www.msn.com/webservices/AddressBook/ABGroupUpdate"
579 #define MSN_GROUP_RENAME_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
581 " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\""\
582 " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
583 " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
584 " xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\">"\
586 "<ABApplicationHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
587 "<ApplicationId>" MSN_APPLICATION_ID "</ApplicationId>"\
588 "<IsMigration>false</IsMigration>"\
589 "<PartnerScenario>Timer</PartnerScenario>"\
590 "</ABApplicationHeader>"\
591 "<ABAuthHeader xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
592 "<ManagedGroupRequest>false</ManagedGroupRequest>"\
593 "<TicketToken>EMPTY</TicketToken>"\
597 "<ABGroupUpdate xmlns=\"http://www.msn.com/webservices/AddressBook\">"\
598 "<abId>00000000-0000-0000-0000-000000000000</abId>"\
601 "<groupId>%s</groupId>"\
605 "<propertiesChanged>GroupName </propertiesChanged>"\
614 MSN_ADD_BUDDY = 0x01,
615 MSN_MOVE_BUDDY = 0x02,
616 MSN_ACCEPTED_BUDDY = 0x04,
617 MSN_DENIED_BUDDY = 0x08,
618 MSN_ADD_GROUP = 0x10,
619 MSN_DEL_GROUP = 0x20,
620 MSN_RENAME_GROUP = 0x40,
621 MSN_UPDATE_INFO = 0x80
631 } MsnSoapPartnerScenario;
633 typedef struct _MsnCallbackState MsnCallbackState;
635 struct _MsnCallbackState
639 gchar * old_group_name;
640 gchar * new_group_name;
643 MsnCallbackAction action;
647 const gchar *post_action;
648 const gchar *post_url;
650 /* For msn_get_contact_list only */
651 MsnSoapPartnerScenario partner_scenario;
656 MSN_UPDATE_DISPLAY, /* Real display name */
657 MSN_UPDATE_ALIAS, /* Aliased display name */
659 } MsnContactUpdateType;
661 /************************************************
663 ************************************************/
664 MsnCallbackState * msn_callback_state_new(MsnSession *session);
665 MsnCallbackState * msn_callback_state_dup(MsnCallbackState *state);
666 void msn_callback_state_free(MsnCallbackState *state);
667 void msn_callback_state_set_who(MsnCallbackState *state, const gchar *who);
668 void msn_callback_state_set_uid(MsnCallbackState *state, const gchar *uid);
669 void msn_callback_state_set_old_group_name(MsnCallbackState *state,
670 const gchar *old_group_name);
671 void msn_callback_state_set_new_group_name(MsnCallbackState *state,
672 const gchar *new_group_name);
673 void msn_callback_state_set_guid(MsnCallbackState *state, const gchar *guid);
674 void msn_callback_state_set_list_id(MsnCallbackState *state, MsnListId list_id);
675 void msn_callback_state_set_action(MsnCallbackState *state,
676 MsnCallbackAction action);
678 void msn_contact_connect(MsnSession *session);
679 void msn_get_contact_list(MsnSession *session,
680 const MsnSoapPartnerScenario partner_scenario,
682 void msn_get_address_book(MsnSession *session,
683 const MsnSoapPartnerScenario partner_scenario,
684 const char * update, const char * gupdate);
686 /* contact SOAP operations */
687 void msn_update_contact(MsnSession *session, const char *passport, MsnContactUpdateType type, const char* value);
689 void msn_add_contact(MsnSession *session, MsnCallbackState *state,
690 const char *passport);
691 void msn_delete_contact(MsnSession *session, MsnUser *user);
693 void msn_add_contact_to_group(MsnSession *session, MsnCallbackState *state,
694 const char *passport, const char *groupId);
695 void msn_del_contact_from_group(MsnSession *session, const char *passport,
696 const char *group_name);
697 /* group operations */
698 void msn_add_group(MsnSession *session, MsnCallbackState *state,
699 const char* group_name);
700 void msn_del_group(MsnSession *session, const gchar *group_name);
701 void msn_contact_rename_group(MsnSession *session, const char *old_group_name,
702 const char *new_group_name);
704 /* lists operations */
705 void msn_add_contact_to_list(MsnSession *session, MsnCallbackState *state,
706 const gchar *passport, const MsnListId list);
707 void msn_del_contact_from_list(MsnSession *session, MsnCallbackState *state,
708 const gchar *passport, const MsnListId list);
710 #endif /* _MSN_CONTACT_H_ */