2 * @file msn.h The MSN protocol plugin
6 * Purple is the legal property of its developers, whose names are too numerous
7 * to list here. Please refer to the COPYRIGHT file distributed with this
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
30 #include "accountopt.h"
32 #include "connection.h"
33 #include "conversation.h"
49 #define MSN_BUF_LEN 8192
51 /* Windows Live Messenger Server*/
52 #define MSN_SERVER "messenger.hotmail.com"
53 #define MSN_HTTPCONN_SERVER "gateway.messenger.hotmail.com"
55 #define WLM_PROT_VER 15
57 #define WLM_MAX_PROTOCOL 15
58 #define WLM_MIN_PROTOCOL 15
60 #define MSN_TYPING_RECV_TIMEOUT 6
61 #define MSN_TYPING_SEND_TIMEOUT 4
63 #define PROFILE_URL "http://spaces.live.com/profile.aspx?mem="
64 #define PHOTO_URL " contactparams:photopreauthurl=\""
66 #define BUDDY_ALIAS_MAXLEN 387
68 #define MSN_CAM_GUID "4BD96FC0-AB17-4425-A14A-439185962DC8"
69 #define MSN_CAM_REQUEST_GUID "1C9AA97E-9C05-4583-A3BD-908A196F1E92"
70 #define MSN_FT_GUID "5D3E02AB-6190-11D3-BBBB-00C04F795683"
71 #define MSN_OBJ_GUID "A4268EEC-FEC5-49E5-95C3-F126696BDBF6"
73 #define MSN_CLIENTINFO \
74 "Client-Name: Purple/" VERSION "\r\n" \
77 /* Index into attention_types */
82 MSN_LIST_FL_OP = 0x01,
83 MSN_LIST_AL_OP = 0x02,
84 MSN_LIST_BL_OP = 0x04,
85 MSN_LIST_RL_OP = 0x08,
89 #define MSN_LIST_OP_MASK 0x07
93 MSN_CLIENT_CAP_WIN_MOBILE = 0x000001,
94 MSN_CLIENT_CAP_INK_GIF = 0x000004,
95 MSN_CLIENT_CAP_INK_ISF = 0x000008,
96 MSN_CLIENT_CAP_VIDEO_CHAT = 0x000010,
97 MSN_CLIENT_CAP_PACKET = 0x000020,
98 MSN_CLIENT_CAP_MSNMOBILE = 0x000040,
99 MSN_CLIENT_CAP_MSNDIRECT = 0x000080,
100 MSN_CLIENT_CAP_WEBMSGR = 0x000200,
101 MSN_CLIENT_CAP_TGW = 0x000800,
102 MSN_CLIENT_CAP_SPACE = 0x001000,
103 MSN_CLIENT_CAP_MCE = 0x002000,
104 MSN_CLIENT_CAP_DIRECTIM = 0x004000,
105 MSN_CLIENT_CAP_WINKS = 0x008000,
106 MSN_CLIENT_CAP_SEARCH = 0x010000,
107 MSN_CLIENT_CAP_BOT = 0x020000,
108 MSN_CLIENT_CAP_VOICEIM = 0x040000,
109 MSN_CLIENT_CAP_SCHANNEL = 0x080000,
110 MSN_CLIENT_CAP_SIP_INVITE = 0x100000,
111 MSN_CLIENT_CAP_SDRIVE = 0x400000
117 MSN_CLIENT_VER_5_0 = 0x00,
118 MSN_CLIENT_VER_6_0 = 0x10, /* MSNC1 */
119 MSN_CLIENT_VER_6_1 = 0x20, /* MSNC2 */
120 MSN_CLIENT_VER_6_2 = 0x30, /* MSNC3 */
121 MSN_CLIENT_VER_7_0 = 0x40, /* MSNC4 */
122 MSN_CLIENT_VER_7_5 = 0x50, /* MSNC5 */
123 MSN_CLIENT_VER_8_0 = 0x60, /* MSNC6 */
124 MSN_CLIENT_VER_8_1 = 0x70, /* MSNC7 */
125 MSN_CLIENT_VER_8_5 = 0x80 /* MSNC8 */
129 #define MSN_CLIENT_ID_VERSION MSN_CLIENT_VER_7_0
130 #define MSN_CLIENT_ID_CAPABILITIES (MSN_CLIENT_CAP_PACKET|MSN_CLIENT_CAP_INK_GIF|MSN_CLIENT_CAP_VOICEIM)
132 #define MSN_CLIENT_ID \
133 ((MSN_CLIENT_ID_VERSION << 24) | \
134 (MSN_CLIENT_ID_CAPABILITIES))
136 void msn_act_id(PurpleConnection *gc, const char *entry);
137 void msn_send_privacy(PurpleConnection *gc);
138 void msn_send_im_message(MsnSession *session, MsnMessage *msg);