Frameworks/libpurple.framework/Versions/0.6.2/Headers/oim.h
author Zachary West <zacw@adium.im>
Fri Aug 21 13:25:11 2009 -0700 (2009-08-21)
changeset 2592 e8d15275025e
parent 1739 Frameworks/libpurple.framework/Versions/0.6.0/Headers/oim.h@8b0daad9656c
permissions -rw-r--r--
im.pidgin.adium.1-4 at 267c6165e02e34318a1823960bd04c0639952f73
Evan@653
     1
/**
Evan@653
     2
 * @file oim.h			Header file for oim.c
Evan@653
     3
 *	Author
Evan@653
     4
 *		MaYuan<mayuan2006@gmail.com>
Evan@653
     5
 * purple
Evan@653
     6
 *
Evan@653
     7
 * Purple is the legal property of its developers, whose names are too numerous
Evan@653
     8
 * to list here.  Please refer to the COPYRIGHT file distributed with this
Evan@653
     9
 * source distribution.
Evan@653
    10
 *
Evan@653
    11
 * This program is free software; you can redistribute it and/or modify
Evan@653
    12
 * it under the terms of the GNU General Public License as published by
Evan@653
    13
 * the Free Software Foundation; either version 2 of the License, or
Evan@653
    14
 * (at your option) any later version.
Evan@653
    15
 *
Evan@653
    16
 * This program is distributed in the hope that it will be useful,
Evan@653
    17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Evan@653
    18
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Evan@653
    19
 * GNU General Public License for more details.
Evan@653
    20
 *
Evan@653
    21
 * You should have received a copy of the GNU General Public License
Evan@653
    22
 * along with this program; if not, write to the Free Software
Evan@653
    23
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
Evan@653
    24
 */
Evan@653
    25
#ifndef _MSN_OIM_H_
Evan@653
    26
#define _MSN_OIM_H_
Evan@653
    27
Evan@653
    28
/* OIM Retrieval Info */
Evan@653
    29
#define MSN_OIM_RETRIEVE_HOST	"rsi.hotmail.com"
Evan@653
    30
#define MSN_OIM_RETRIEVE_URL	"/rsi/rsi.asmx"
Evan@653
    31
Evan@653
    32
/* OIM GetMetadata SOAP Template */
Evan@653
    33
#define MSN_OIM_GET_METADATA_ACTION "http://www.hotmail.msn.com/ws/2004/09/oim/rsi/GetMetadata"
Evan@653
    34
Evan@653
    35
#define MSN_OIM_GET_METADATA_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
Evan@653
    36
"<soap:Envelope"\
Evan@653
    37
	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
Evan@653
    38
	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
Evan@653
    39
	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
Evan@653
    40
	"<soap:Header>"\
Evan@653
    41
		"<PassportCookie xmlns=\"http://www.hotmail.msn.com/ws/2004/09/oim/rsi\">"\
Evan@653
    42
			"<t>EMPTY</t>"\
Evan@653
    43
			"<p>EMPTY</p>"\
Evan@653
    44
		"</PassportCookie>"\
Evan@653
    45
	"</soap:Header>"\
Evan@653
    46
	"<soap:Body>"\
Evan@653
    47
		"<GetMetadata xmlns=\"http://www.hotmail.msn.com/ws/2004/09/oim/rsi\" />"\
Evan@653
    48
	"</soap:Body>"\
Evan@653
    49
"</soap:Envelope>"
Evan@653
    50
Evan@653
    51
/*OIM GetMessage SOAP Template*/
Evan@653
    52
#define MSN_OIM_GET_SOAP_ACTION	"http://www.hotmail.msn.com/ws/2004/09/oim/rsi/GetMessage"
Evan@653
    53
Evan@653
    54
#define MSN_OIM_GET_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
Evan@653
    55
"<soap:Envelope"\
Evan@653
    56
	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
Evan@653
    57
	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
Evan@653
    58
	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
Evan@653
    59
	"<soap:Header>"\
Evan@653
    60
		"<PassportCookie xmlns=\"http://www.hotmail.msn.com/ws/2004/09/oim/rsi\">"\
Evan@653
    61
			"<t>EMPTY</t>"\
Evan@653
    62
			"<p>EMPTY</p>"\
Evan@653
    63
		"</PassportCookie>"\
Evan@653
    64
	"</soap:Header>"\
Evan@653
    65
	"<soap:Body>"\
Evan@653
    66
		"<GetMessage xmlns=\"http://www.hotmail.msn.com/ws/2004/09/oim/rsi\">"\
Evan@653
    67
			"<messageId>%s</messageId>"\
Evan@653
    68
			"<alsoMarkAsRead>false</alsoMarkAsRead>"\
Evan@653
    69
		"</GetMessage>"\
Evan@653
    70
	"</soap:Body>"\
Evan@653
    71
"</soap:Envelope>"
Evan@653
    72
Evan@653
    73
/*OIM DeleteMessages SOAP Template*/
Evan@653
    74
#define MSN_OIM_DEL_SOAP_ACTION	"http://www.hotmail.msn.com/ws/2004/09/oim/rsi/DeleteMessages"
Evan@653
    75
Evan@653
    76
#define MSN_OIM_DEL_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
Evan@653
    77
"<soap:Envelope"\
Evan@653
    78
	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
Evan@653
    79
	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
Evan@653
    80
	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
Evan@653
    81
	"<soap:Header>"\
Evan@653
    82
		"<PassportCookie xmlns=\"http://www.hotmail.msn.com/ws/2004/09/oim/rsi\">"\
Evan@653
    83
			"<t>EMPTY</t>"\
Evan@653
    84
			"<p>EMPTY</p>"\
Evan@653
    85
		"</PassportCookie>"\
Evan@653
    86
	"</soap:Header>"\
Evan@653
    87
	"<soap:Body>"\
Evan@653
    88
		"<DeleteMessages xmlns=\"http://www.hotmail.msn.com/ws/2004/09/oim/rsi\">"\
Evan@653
    89
			"<messageIds>"\
Evan@653
    90
				"<messageId>%s</messageId>"\
Evan@653
    91
			"</messageIds>"\
Evan@653
    92
		"</DeleteMessages>"\
Evan@653
    93
	"</soap:Body>"\
Evan@653
    94
"</soap:Envelope>"
Evan@653
    95
Evan@653
    96
/*OIM Send SOAP Template*/
Evan@653
    97
#define MSN_OIM_MSG_TEMPLATE "MIME-Version: 1.0\n"\
Evan@653
    98
	"Content-Type: text/plain; charset=UTF-8\n"\
Evan@653
    99
	"Content-Transfer-Encoding: base64\n"\
Evan@653
   100
	"X-OIM-Message-Type: OfflineMessage\n"\
Evan@653
   101
	"X-OIM-Run-Id: {%s}\n"\
Evan@653
   102
	"X-OIM-Sequence-Num: %d\n\n"
Evan@653
   103
Evan@653
   104
#define MSN_OIM_SEND_HOST	"ows.messenger.msn.com"
Evan@653
   105
#define MSN_OIM_SEND_URL	"/OimWS/oim.asmx"
Evan@653
   106
#define MSN_OIM_SEND_SOAP_ACTION	"http://messenger.live.com/ws/2006/09/oim/Store2"
Evan@653
   107
#define MSN_OIM_SEND_TEMPLATE "<?xml version=\"1.0\" encoding=\"utf-8\"?>"\
Evan@653
   108
"<soap:Envelope"\
Evan@653
   109
	" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""\
Evan@653
   110
	" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""\
Evan@653
   111
	" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"\
Evan@653
   112
	"<soap:Header>"\
Evan@653
   113
		"<From"\
Evan@653
   114
			" memberName=\"%s\""\
Evan@653
   115
			" friendlyName=\"%s\""\
Evan@653
   116
			" xml:lang=\"en-US\""\
Evan@653
   117
			" proxy=\"MSNMSGR\""\
Evan@653
   118
			" xmlns=\"http://messenger.msn.com/ws/2004/09/oim/\""\
Evan@653
   119
			" msnpVer=\"MSNP15\""\
Evan@653
   120
			" buildVer=\"8.5.1288\"/>"\
Evan@653
   121
		"<To memberName=\"%s\" xmlns=\"http://messenger.msn.com/ws/2004/09/oim/\"/>"\
Evan@653
   122
		"<Ticket passport=\"EMPTY\" appid=\"%s\" lockkey=\"%s\" xmlns=\"http://messenger.msn.com/ws/2004/09/oim/\"/>"\
Evan@653
   123
		"<Sequence xmlns=\"http://schemas.xmlsoap.org/ws/2003/03/rm\">"\
Evan@653
   124
			"<Identifier xmlns=\"http://schemas.xmlsoap.org/ws/2002/07/utility\">http://messenger.msn.com</Identifier>"\
Evan@653
   125
			"<MessageNumber>%d</MessageNumber>"\
Evan@653
   126
		"</Sequence>"\
Evan@653
   127
	"</soap:Header>"\
Evan@653
   128
	"<soap:Body>"\
Evan@653
   129
		"<MessageType xmlns=\"http://messenger.msn.com/ws/2004/09/oim/\">text</MessageType>"\
Evan@653
   130
		"<Content xmlns=\"http://messenger.msn.com/ws/2004/09/oim/\">%s</Content>"\
Evan@653
   131
	"</soap:Body>"\
Evan@653
   132
"</soap:Envelope>"
Evan@653
   133
Evan@653
   134
typedef struct _MsnOim MsnOim;
Evan@653
   135
Evan@653
   136
struct _MsnOim
Evan@653
   137
{
Evan@653
   138
	MsnSession *session;
Evan@653
   139
Evan@653
   140
	GList * oim_list;
Evan@653
   141
Evan@653
   142
	char *challenge;
Evan@653
   143
	char *run_id;
Evan@653
   144
	gint send_seq;
Evan@653
   145
	GQueue *send_queue;
Evan@653
   146
};
Evan@653
   147
Evan@653
   148
/****************************************************
Evan@653
   149
 * function prototype
Evan@653
   150
 * **************************************************/
Evan@653
   151
MsnOim * msn_oim_new(MsnSession *session);
Evan@653
   152
void msn_oim_destroy(MsnOim *oim);
Evan@653
   153
Evan@653
   154
void msn_parse_oim_msg(MsnOim *oim,const char *xmlmsg);
Evan@653
   155
Evan@653
   156
/*Send OIM Message*/
Evan@653
   157
void msn_oim_prep_send_msg_info(MsnOim *oim, const char *membername,
Evan@653
   158
								const char *friendname, const char *tomember,
Evan@653
   159
								const char * msg);
Evan@653
   160
Evan@653
   161
void msn_oim_send_msg(MsnOim *oim);
Evan@653
   162
Evan@653
   163
#endif/* _MSN_OIM_H_*/