Frameworks/libpurple.framework/Versions/0.6.2/Headers/msn.h
author Zachary West <zacw@adium.im>
Fri Aug 21 13:25:11 2009 -0700 (2009-08-21)
changeset 2592 e8d15275025e
parent 2535 Frameworks/libpurple.framework/Versions/0.6.0/Headers/msn.h@39c3c161de14
permissions -rw-r--r--
im.pidgin.adium.1-4 at 267c6165e02e34318a1823960bd04c0639952f73
Evan@653
     1
/**
Evan@653
     2
 * @file msn.h The MSN protocol plugin
Evan@653
     3
 *
Evan@653
     4
 * purple
Evan@653
     5
 *
Evan@653
     6
 * Purple is the legal property of its developers, whose names are too numerous
Evan@653
     7
 * to list here.  Please refer to the COPYRIGHT file distributed with this
Evan@653
     8
 * source distribution.
Evan@653
     9
 *
Evan@653
    10
 * This program is free software; you can redistribute it and/or modify
Evan@653
    11
 * it under the terms of the GNU General Public License as published by
Evan@653
    12
 * the Free Software Foundation; either version 2 of the License, or
Evan@653
    13
 * (at your option) any later version.
Evan@653
    14
 *
Evan@653
    15
 * This program is distributed in the hope that it will be useful,
Evan@653
    16
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Evan@653
    17
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Evan@653
    18
 * GNU General Public License for more details.
Evan@653
    19
 *
Evan@653
    20
 * You should have received a copy of the GNU General Public License
Evan@653
    21
 * along with this program; if not, write to the Free Software
Evan@653
    22
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
Evan@653
    23
 */
Evan@653
    24
#ifndef _MSN_H_
Evan@653
    25
#define _MSN_H_
Evan@653
    26
Evan@653
    27
#include "internal.h"
Evan@653
    28
Evan@653
    29
#include "account.h"
Evan@653
    30
#include "accountopt.h"
Evan@653
    31
#include "blist.h"
Evan@653
    32
#include "connection.h"
Evan@653
    33
#include "conversation.h"
Evan@653
    34
#include "debug.h"
Evan@653
    35
#include "cipher.h"
Evan@653
    36
#include "notify.h"
Evan@653
    37
#include "privacy.h"
Evan@653
    38
#include "proxy.h"
Evan@653
    39
#include "prpl.h"
Evan@653
    40
#include "request.h"
Evan@653
    41
#include "servconn.h"
Evan@653
    42
#include "sslconn.h"
Evan@653
    43
#include "util.h"
Evan@653
    44
Evan@653
    45
#include "ft.h"
Evan@653
    46
Evan@653
    47
#include "msg.h"
Evan@653
    48
Evan@653
    49
#define MSN_BUF_LEN 8192
Evan@653
    50
Evan@653
    51
/* Windows Live Messenger Server*/
Evan@653
    52
#define MSN_SERVER "messenger.hotmail.com"
Evan@653
    53
#define MSN_HTTPCONN_SERVER "gateway.messenger.hotmail.com"
Evan@653
    54
#define MSN_PORT 1863
Evan@653
    55
#define WLM_PROT_VER		15
Evan@653
    56
Evan@653
    57
#define WLM_MAX_PROTOCOL	15
Evan@653
    58
#define WLM_MIN_PROTOCOL	15
Evan@653
    59
Evan@653
    60
#define MSN_TYPING_RECV_TIMEOUT 6
Evan@653
    61
#define MSN_TYPING_SEND_TIMEOUT	4
Evan@653
    62
Evan@653
    63
#define PROFILE_URL "http://spaces.live.com/profile.aspx?mem="
Evan@653
    64
#define PHOTO_URL	" contactparams:photopreauthurl=\""
Evan@653
    65
Evan@653
    66
#define BUDDY_ALIAS_MAXLEN 387
Evan@653
    67
zacw@1759
    68
#define MSN_CAM_GUID "4BD96FC0-AB17-4425-A14A-439185962DC8"
zacw@1759
    69
#define MSN_CAM_REQUEST_GUID "1C9AA97E-9C05-4583-A3BD-908A196F1E92"
Evan@653
    70
#define MSN_FT_GUID "5D3E02AB-6190-11D3-BBBB-00C04F795683"
Evan@653
    71
#define MSN_OBJ_GUID "A4268EEC-FEC5-49E5-95C3-F126696BDBF6"
Evan@653
    72
Evan@653
    73
#define MSN_CLIENTINFO \
Evan@653
    74
	"Client-Name: Purple/" VERSION "\r\n" \
Evan@653
    75
	"Chat-Logging: Y\r\n"
Evan@653
    76
Evan@653
    77
/* Index into attention_types */
Evan@653
    78
#define MSN_NUDGE 0
Evan@653
    79
Evan@653
    80
typedef enum
Evan@653
    81
{
Evan@653
    82
	MSN_LIST_FL_OP = 0x01,
Evan@653
    83
	MSN_LIST_AL_OP = 0x02,
Evan@653
    84
	MSN_LIST_BL_OP = 0x04,
Evan@653
    85
	MSN_LIST_RL_OP = 0x08,
Evan@653
    86
	MSN_LIST_PL_OP = 0x10
Evan@653
    87
Evan@653
    88
} MsnListOp;
Evan@653
    89
#define MSN_LIST_OP_MASK	0x07
Evan@653
    90
Evan@653
    91
typedef enum
Evan@653
    92
{
Evan@653
    93
	MSN_CLIENT_CAP_WIN_MOBILE = 0x000001,
Evan@653
    94
	MSN_CLIENT_CAP_INK_GIF    = 0x000004,
Evan@653
    95
	MSN_CLIENT_CAP_INK_ISF    = 0x000008,
Evan@653
    96
	MSN_CLIENT_CAP_VIDEO_CHAT = 0x000010,
Evan@653
    97
	MSN_CLIENT_CAP_PACKET     = 0x000020,
Evan@653
    98
	MSN_CLIENT_CAP_MSNMOBILE  = 0x000040,
Evan@653
    99
	MSN_CLIENT_CAP_MSNDIRECT  = 0x000080,
Evan@653
   100
	MSN_CLIENT_CAP_WEBMSGR    = 0x000200,
Evan@653
   101
	MSN_CLIENT_CAP_TGW        = 0x000800,
Evan@653
   102
	MSN_CLIENT_CAP_SPACE      = 0x001000,
Evan@653
   103
	MSN_CLIENT_CAP_MCE        = 0x002000,
Evan@653
   104
	MSN_CLIENT_CAP_DIRECTIM   = 0x004000,
Evan@653
   105
	MSN_CLIENT_CAP_WINKS      = 0x008000,
Evan@653
   106
	MSN_CLIENT_CAP_SEARCH     = 0x010000,
Evan@653
   107
	MSN_CLIENT_CAP_BOT        = 0x020000,
Evan@653
   108
	MSN_CLIENT_CAP_VOICEIM    = 0x040000,
Evan@653
   109
	MSN_CLIENT_CAP_SCHANNEL   = 0x080000,
Evan@653
   110
	MSN_CLIENT_CAP_SIP_INVITE = 0x100000,
Evan@653
   111
	MSN_CLIENT_CAP_SDRIVE     = 0x400000
Evan@653
   112
Evan@653
   113
} MsnClientCaps;
Evan@653
   114
Evan@653
   115
typedef enum
Evan@653
   116
{
Evan@653
   117
	MSN_CLIENT_VER_5_0 = 0x00,
Evan@653
   118
	MSN_CLIENT_VER_6_0 = 0x10,	/* MSNC1 */
Evan@653
   119
	MSN_CLIENT_VER_6_1 = 0x20,	/* MSNC2 */
Evan@653
   120
	MSN_CLIENT_VER_6_2 = 0x30,	/* MSNC3 */
Evan@653
   121
	MSN_CLIENT_VER_7_0 = 0x40,	/* MSNC4 */
Evan@653
   122
	MSN_CLIENT_VER_7_5 = 0x50,	/* MSNC5 */
Evan@653
   123
	MSN_CLIENT_VER_8_0 = 0x60,	/* MSNC6 */
Evan@653
   124
	MSN_CLIENT_VER_8_1 = 0x70,	/* MSNC7 */
Evan@653
   125
	MSN_CLIENT_VER_8_5 = 0x80	/* MSNC8 */
Evan@653
   126
Evan@653
   127
} MsnClientVerId;
Evan@653
   128
Evan@653
   129
#define MSN_CLIENT_ID_VERSION      MSN_CLIENT_VER_7_0
zacw@2592
   130
#define MSN_CLIENT_ID_CAPABILITIES (MSN_CLIENT_CAP_PACKET|MSN_CLIENT_CAP_INK_GIF|MSN_CLIENT_CAP_VOICEIM)
Evan@653
   131
Evan@653
   132
#define MSN_CLIENT_ID \
Evan@653
   133
	((MSN_CLIENT_ID_VERSION    << 24) | \
Evan@653
   134
	 (MSN_CLIENT_ID_CAPABILITIES))
Evan@653
   135
Evan@653
   136
void msn_act_id(PurpleConnection *gc, const char *entry);
Evan@653
   137
void msn_send_privacy(PurpleConnection *gc);
Evan@653
   138
void msn_send_im_message(MsnSession *session, MsnMessage *msg);
Evan@653
   139
Evan@653
   140
#endif /* _MSN_H_ */