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
     1 /**
     2  * @file msn.h The MSN protocol plugin
     3  *
     4  * purple
     5  *
     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
     8  * source distribution.
     9  *
    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.
    14  *
    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.
    19  *
    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
    23  */
    24 #ifndef _MSN_H_
    25 #define _MSN_H_
    26 
    27 #include "internal.h"
    28 
    29 #include "account.h"
    30 #include "accountopt.h"
    31 #include "blist.h"
    32 #include "connection.h"
    33 #include "conversation.h"
    34 #include "debug.h"
    35 #include "cipher.h"
    36 #include "notify.h"
    37 #include "privacy.h"
    38 #include "proxy.h"
    39 #include "prpl.h"
    40 #include "request.h"
    41 #include "servconn.h"
    42 #include "sslconn.h"
    43 #include "util.h"
    44 
    45 #include "ft.h"
    46 
    47 #include "msg.h"
    48 
    49 #define MSN_BUF_LEN 8192
    50 
    51 /* Windows Live Messenger Server*/
    52 #define MSN_SERVER "messenger.hotmail.com"
    53 #define MSN_HTTPCONN_SERVER "gateway.messenger.hotmail.com"
    54 #define MSN_PORT 1863
    55 #define WLM_PROT_VER		15
    56 
    57 #define WLM_MAX_PROTOCOL	15
    58 #define WLM_MIN_PROTOCOL	15
    59 
    60 #define MSN_TYPING_RECV_TIMEOUT 6
    61 #define MSN_TYPING_SEND_TIMEOUT	4
    62 
    63 #define PROFILE_URL "http://spaces.live.com/profile.aspx?mem="
    64 #define PHOTO_URL	" contactparams:photopreauthurl=\""
    65 
    66 #define BUDDY_ALIAS_MAXLEN 387
    67 
    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"
    72 
    73 #define MSN_CLIENTINFO \
    74 	"Client-Name: Purple/" VERSION "\r\n" \
    75 	"Chat-Logging: Y\r\n"
    76 
    77 /* Index into attention_types */
    78 #define MSN_NUDGE 0
    79 
    80 typedef enum
    81 {
    82 	MSN_LIST_FL_OP = 0x01,
    83 	MSN_LIST_AL_OP = 0x02,
    84 	MSN_LIST_BL_OP = 0x04,
    85 	MSN_LIST_RL_OP = 0x08,
    86 	MSN_LIST_PL_OP = 0x10
    87 
    88 } MsnListOp;
    89 #define MSN_LIST_OP_MASK	0x07
    90 
    91 typedef enum
    92 {
    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
   112 
   113 } MsnClientCaps;
   114 
   115 typedef enum
   116 {
   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 */
   126 
   127 } MsnClientVerId;
   128 
   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)
   131 
   132 #define MSN_CLIENT_ID \
   133 	((MSN_CLIENT_ID_VERSION    << 24) | \
   134 	 (MSN_CLIENT_ID_CAPABILITIES))
   135 
   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);
   139 
   140 #endif /* _MSN_H_ */