// ---------------------------------------------------------------------------80 // ICQ plugin for Miranda Instant Messenger // ________________________________________ // // Copyright 2000,2001 Richard Hughes, Roland Rabien, Tristan Van de Vreede // Copyright 2001,2002 Jon Keating, Richard Hughes // Copyright 2002,2003,2004 Martin berg, Sam Kothari, Robert Rainwater // Copyright 2004,2005,2006,2007 Joe Kucera // Copyright 2006,2007,2008 [sss], chaos.persei, [sin], Faith Healer, Theif, nullbie // Copyright 2008 [sss], chaos.persei, nullbie, baloo, jarvis // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // // ----------------------------------------------------------------------------- // // File name : $Source$ // Revision : $Revision: 48 $ // Last change on : $Date: 2007-08-26 16:12:47 +0300 (Вс, 26 авг 2007) $ // Last change by : $Author: sss123next $ // // DESCRIPTION: // // Global constants and default settings are defined here // // ----------------------------------------------------------------------------- // Most of the protocol constants follow the naming conventions of the // Oscar documentation at http://iserverd.khstu.ru/oscar/index.html // BIG THANKS to Alexandr for maintaining this site and to everyone // in the ICQ devel community who have helped to collect the data. #ifndef __ICQ_CONSTANTS_H #define __ICQ_CONSTANTS_H #define DEF_FP1 0x7fffffff // 0x0 asci, 0x7 unicode (??) #define DEF_FP2 ICQ_PLUG_VERSION #define DEF_FP3 0x00000000 /* Some default settings */ #define DEFAULT_SERVER_PORT 5190 #define DEFAULT_SERVER_HOST "login.icq.com" #define DEFAULT_SS_ENABLED 1 #define DEFAULT_SS_ADDSERVER 1 #define DEFAULT_SS_LOAD 0 #define DEFAULT_SS_STORE 1 #define DEFAULT_SS_GROUP "General" #define DEFAULT_SECURE_LOGIN 1 #define DEFAULT_AIM_ENABLED 1 #define DEFAULT_UTF_ENABLED 2 // everything unicode is default #define DEFAULT_ANSI_CODEPAGE CP_ACP #define DEFAULT_DCMSG_ENABLED 1 // passive dc messaging is default #define DEFAULT_TEMPVIS_ENABLED 1 // temporary visible is enabled by default #define DEFAULT_MTN_ENABLED 1 #define DEFAULT_CAPS 0 #define DEFAULT_AVATARS_ENABLED 1 #define DEFAULT_LOAD_AVATARS 1 #define DEFAULT_BIGGER_AVATARS 1 #define DEFAULT_AVATARS_CHECK 1 #define DEFAULT_XSTATUS_ENABLED 1 #define DEFAULT_XSTATUS_AUTO 1 #define DEFAULT_XSTATUS_RESET 0 #define DEFAULT_KILLSPAM_ENABLED 1 #define DEFAULT_SLOWSEND 1 #define DEFAULT_ONLYSERVERACKS 0 // Database setting names #define DBSETTING_CAPABILITIES "caps" #define DBSETTING_XSTATUSID "XStatusId" #define DBSETTING_XSTATUSNAME "XStatusName" #define DBSETTING_XSTATUSMSG "XStatusMsg" // Status FLAGS (used to determine status of other users) #define ICQ_STATUSF_ONLINE 0x0000 #define ICQ_STATUSF_AWAY 0x0001 #define ICQ_STATUSF_DND 0x0002 #define ICQ_STATUSF_NA 0x0004 #define ICQ_STATUSF_OCCUPIED 0x0010 #define ICQ_STATUSF_FFC 0x0020 #define ICQ_STATUSF_INVISIBLE 0x0100 // Status values (used to set own status) #define ICQ_STATUS_ONLINE 0x0000 #define ICQ_STATUS_AWAY 0x0001 #define ICQ_STATUS_NA 0x0005 #define ICQ_STATUS_OCCUPIED 0x0011 #define ICQ_STATUS_DND 0x0013 #define ICQ_STATUS_FFC 0x0020 #define ICQ_STATUS_INVISIBLE 0x0100 #define STATUS_WEBAWARE 0x0001 // Status webaware flag #define STATUS_SHOWIP 0x0002 // Status show ip flag #define STATUS_BIRTHDAY 0x0008 // User birthday flag #define STATUS_WEBFRONT 0x0020 // User active webfront flag #define STATUS_DCDISABLED 0x0100 // Direct connection not supported #define STATUS_DCAUTH 0x1000 // Direct connection upon authorization #define STATUS_DCCONT 0x2000 // DC only with contact users // Typing notification statuses #define MTN_FINISHED 0x0000 #define MTN_TYPED 0x0001 #define MTN_BEGUN 0x0002 #define MTN_WINDOW_CLOSED 0x000F // Ascii Capability IDs #define CAP_RTFMSGS "{97B12751-243C-4334-AD22-D6ABF73F1492}" #define CAP_UTF8MSGS "{0946134E-4C7F-11D1-8222-444553540000}" // Binary Capability IDs #define BINARY_CAP_SIZE 16 //new caps #define CAP_NEWCAP 0x09, 0x46, 0x00, 0x00, 0x4c, 0x7f, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00 #define CAP_SRV_RELAY 0x09, 0x46, 0x13, 0x49, 0x4c, 0x7f, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00 #define CAP_UTF 0x09, 0x46, 0x13, 0x4e, 0x4c, 0x7f, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00 #define CAP_AIM_FILE 0x09, 0x46, 0x13, 0x43, 0x4C, 0x7F, 0x11, 0xD1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00 #define CAP_DIRECT 0x09, 0x46, 0x13, 0x44, 0x4C, 0x7F, 0x11, 0xD1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00 #define CAP_ICQ_DEVIL 0x09, 0x46, 0x13, 0x4C, 0x4C, 0x7F, 0x11, 0xD1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00 //other caps #define CAP_RTF 0x97, 0xb1, 0x27, 0x51, 0x24, 0x3c, 0x43, 0x34, 0xad, 0x22, 0xd6, 0xab, 0xf7, 0x3f, 0x14, 0x92 #define CAP_HTML 0x01, 0x38, 0xca, 0x7b, 0x76, 0x9a, 0x49, 0x15, 0x88, 0xf2, 0x13, 0xfc, 0x00, 0x97, 0x9e, 0xa8 #define CAP_CONTACTS 0x09, 0x46, 0x13, 0x4b, 0x4c, 0x7f, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00 #define CAP_TYPING 0x56, 0x3f, 0xc8, 0x09, 0x0b, 0x6f, 0x41, 0xbd, 0x9f, 0x79, 0x42, 0x26, 0x09, 0xdf, 0xa2, 0xf3 #define CAP_ICQDIRECT 0x09, 0x46, 0x13, 0x44, 0x4c, 0x7f, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00 #define CAP_XTRAZ 0x1A, 0x09, 0x3C, 0x6C, 0xD7, 0xFD, 0x4E, 0xC5, 0x9D, 0x51, 0xA6, 0x47, 0x4E, 0x34, 0xF5, 0xA0 #define CAP_OSCAR_FILE 0x09, 0x46, 0x13, 0x43, 0x4C, 0x7F, 0x11, 0xD1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00 #define CAP_PUSH2TALK 0xE3, 0x62, 0xC1, 0xE9, 0x12, 0x1A, 0x4B, 0x94, 0xA6, 0x26, 0x7A, 0x74, 0xDE, 0x24, 0x27, 0x0D #define CAP_ICQ_LITE 0x17, 0x8C, 0x2D, 0x9B, 0xDA, 0xA5, 0x45, 0xBB, 0x8D, 0xDB, 0xF3, 0xBD, 0xBD, 0x53, 0xA1, 0x0A #define CAP_XTRAZ_CHAT 0x67, 0x36, 0x15, 0x15, 0x61, 0x2D, 0x4C, 0x07, 0x8F, 0x3D, 0xBD, 0xE6, 0x40, 0x8E, 0xA0, 0x41 #define CAP_VOICE_CHAT 0xB9, 0x97, 0x08, 0xB5, 0x3A, 0x92, 0x42, 0x02, 0xB0, 0x69, 0xF1, 0xE7, 0x57, 0xBB, 0x2E, 0x17 // Miranda IM Capability bitmask #define CAPF_SRV_RELAY 0x00000001 #define CAPF_UTF 0x00000002 #define CAPF_TYPING 0x00000004 #define CAPF_XTRAZ 0x00000010 #define CAPF_AIM_FILE 0x00000040 #define CAPF_PUSH2TALK 0x00000080 #define CAPF_ICQ_LITE 0x00000100 #define CAPF_RTF 0x00000200 #define CAPF_HTML 0x00000008 #define CAPF_CONTACTS 0x00004000 #define CAPF_XTRAZ_CHAT 0x00000400 #define CAPF_VOICE_CHAT 0x00000800 #define CAPF_ICQ_DEVIL 0x00001000 #define CAPF_DIRECT 0x00002000 #define CAPF_STATUSMSGEXT 0x01000000 // Message Capability IDs #define MCAP_SRV_RELAY_FMT_s 0x09461349, 0x4c7f11d1, 0x82224445, 0x53540000 #define MCAP_REVERSE_DC_REQ_s 0x09461344, 0x4c7f11d1, 0x82224445, 0x53540000 #define MCAP_FILE_TRANSFER_s 0x09461343, 0x4c7f11d1, 0x82224445, 0x53540000 #define MCAP_CONTACTS_s 0x0946134b, 0x4c7f11d1, 0x82224445, 0x53540000 // Plugin Type GUIDs #define PSIG_MESSAGE_s 0x00000000, 0x00000000, 0x00000000, 0x00000000 #define PSIG_INFO_PLUGIN_s 0xa0e93f37, 0x4fe9d311, 0xbcd20004, 0xac96dd96 #define PSIG_STATUS_PLUGIN_s 0x10cf40d1, 0x4fe9d311, 0xbcd20004, 0xac96dd96 // Plugin Message GUIDs #define PMSG_QUERY_INFO_s 0xF002BF71, 0x4371D311, 0x8DD20010, 0x4B06462E #define PMSG_QUERY_STATUS_s 0x10180670, 0x5471D311, 0x8DD20010, 0x4B06462E #define X_STATUS 0x40000000 #define WAS_FOUND 0x80000000 // Message types #define MTYPE_PLAIN 0x01 // Plain text (simple) message #define MTYPE_CHAT 0x02 // Chat request message #define MTYPE_FILEREQ 0x03 // File request / file ok message #define MTYPE_URL 0x04 // URL message (0xFE formatted) #define MTYPE_AUTHREQ 0x06 // Authorization request message (0xFE formatted) #define MTYPE_AUTHDENY 0x07 // Authorization denied message (0xFE formatted) #define MTYPE_AUTHOK 0x08 // Authorization given message (empty) #define MTYPE_SERVER 0x09 // Message from OSCAR server (0xFE formatted) #define MTYPE_ADDED 0x0C // "You-were-added" message (0xFE formatted) #define MTYPE_WWP 0x0D // Web pager message (0xFE formatted) #define MTYPE_EEXPRESS 0x0E // Email express message (0xFE formatted) #define MTYPE_CONTACTS 0x13 // Contact list message #define MTYPE_PLUGIN 0x1A // Plugin message described by text string #define MTYPE_AUTOONLINE 0xE7 // Auto online message #define MTYPE_AUTOAWAY 0xE8 // Auto away message #define MTYPE_AUTOBUSY 0xE9 // Auto occupied message #define MTYPE_AUTONA 0xEA // Auto not available message #define MTYPE_AUTODND 0xEB // Auto do not disturb message #define MTYPE_AUTOFFC 0xEC // Auto free for chat message // Internal Message types #define MTYPE_UNKNOWN 0x00 // Unknown message #define MTYPE_GREETINGCARD 0x101 // Greeting Card #define MTYPE_REQUESTCONTACTS 0x102 // Request for Contacts #define MTYPE_MESSAGE 0x103 // Message+ #define MTYPE_STATUSMSGEXT 0x104 // StatusMsgExt (2003b) #define MTYPE_SMS_MESSAGE 0x110 // SMS message from Mobile #define MTYPE_SCRIPT_INVITATION 0x201 // Xtraz Invitation #define MTYPE_SCRIPT_DATA 0x202 // Xtraz Message #define MTYPE_SCRIPT_NOTIFY 0x208 // Xtraz Response #define MTYPE_REVERSE_REQUEST 0x401 // Reverse DC request #define MTYPE_TZER_MESSAGE 0x501 // Tzer Message // Message Plugin Type GUIDs #define MGTYPE_MESSAGE_s 0xBE6B7305, 0x0FC2104F, 0xA6DE4DB1, 0xE3564B0E #define MGTYPE_STATUSMSGEXT_s 0x811a18bc, 0x0e6c1847, 0xa5916f18, 0xdcc76f1a #define MGTYPE_FILE_s 0xF02D12D9, 0x3091D311, 0x8DD70010, 0x4B06462E #define MGTYPE_WEBURL_s 0x371C5872, 0xE987D411, 0xA4C100D0, 0xB759B1D9 #define MGTYPE_CONTACTS_s 0x2A0E7D46, 0x7676D411, 0xBCE60004, 0xAC961EA6 #define MGTYPE_GREETING_CARD_s 0x01E53B48, 0x2AE4D111, 0xB6790060, 0x97E1E294 #define MGTYPE_CHAT_s 0xBFF720B2, 0x378ED411, 0xBD280004, 0xAC96D905 #define MGTYPE_SMS_MESSAGE_s 0x0e28f600, 0x11e7d311, 0xbcf30004, 0xac969dc2 #define MGTYPE_XTRAZ_SCRIPT_s 0x3b60b3ef, 0xd82a6c45, 0xa4e09c5a, 0x5e67e865 #define MGTYPE_TZER_MESSAGE_s 0x4fa6f34c, 0x09b7fd48, 0x92087e85, 0x7ae07330 // Message Plugin Sub-Type IDs #define MGTYPE_STANDARD_SEND 0x0000 #define MGTYPE_CONTACTS_REQUEST 0x0002 #define MGTYPE_SCRIPT_INVITATION 0x0001 #define MGTYPE_SCRIPT_DATA 0x0002 #define MGTYPE_SCRIPT_USER_REMOVE 0x0004 #define MGTYPE_SCRIPT_NOTIFY 0x0008 #define MGTYPE_UNDEFINED 0xFFFF /* Channels */ #define ICQ_LOGIN_CHAN 0x01 #define ICQ_DATA_CHAN 0x02 #define ICQ_ERROR_CHAN 0x03 #define ICQ_CLOSE_CHAN 0x04 #define ICQ_PING_CHAN 0x05 /* Families */ #define ICQ_SERVICE_FAMILY 0x0001 #define ICQ_LOCATION_FAMILY 0x0002 #define ICQ_BUDDY_FAMILY 0x0003 #define ICQ_MSG_FAMILY 0x0004 #define ICQ_BOS_FAMILY 0x0009 #define ICQ_LOOKUP_FAMILY 0x000a #define ICQ_STATS_FAMILY 0x000b #define ICQ_AVATAR_FAMILY 0x0010 #define ICQ_LISTS_FAMILY 0x0013 #define ICQ_EXTENSIONS_FAMILY 0x0015 #define ICQ_AUTHORIZATION_FAMILY 0x0017 /* Subtypes for Service Family 0x0001 */ #define ICQ_ERROR 0x0001 #define ICQ_CLIENT_READY 0x0002 #define ICQ_SERVER_READY 0x0003 #define ICQ_CLIENT_NEW_SERVICE 0x0004 #define ICQ_SERVER_REDIRECT_SERVICE 0x0005 #define ICQ_CLIENT_REQ_RATE_INFO 0x0006 #define ICQ_SERVER_RATE_INFO 0x0007 #define ICQ_CLIENT_RATE_ACK 0x0008 #define ICQ_SERVER_RATE_CHANGE 0x000a #define ICQ_SERVER_PAUSE 0x000b #define ICQ_CLIENT_PAUSE_ACK 0x000c #define ICQ_SERVER_RESUME 0x000d #define ICQ_CLIENT_REQINFO 0x000e #define ICQ_SERVER_NAME_INFO 0x000f #define ICQ_SERVER_EVIL_NOTICE 0x0010 #define ICQ_CLIENT_SET_IDLE 0x0011 #define ICQ_SERVER_MIGRATIONREQ 0x0012 #define ICQ_SERVER_MOTD 0x0013 #define ICQ_CLIENT_FAMILIES 0x0017 #define ICQ_SERVER_FAMILIES2 0x0018 #define ICQ_CLIENT_SET_STATUS 0x001e #define ICQ_SERVER_EXTSTATUS 0x0021 /* Subtypes for Location Family 0x0002 */ #define ICQ_LOCATION_CLI_REQ_RIGHTS 0x0002 #define ICQ_LOCATION_RIGHTS_REPLY 0x0003 #define ICQ_LOCATION_SET_USER_INFO 0x0004 #define ICQ_LOCATION_REQ_USER_INFO 0x0005 #define ICQ_LOCATION_USR_INFO_REPLY 0x0006 #define ICQ_LOCATION_QRY_USER_INFO 0x0015 /* Subtypes for Buddy Family 0x0003 */ #define ICQ_USER_CLI_REQBUDDY 0x0002 #define ICQ_USER_SRV_REPLYBUDDY 0x0003 #define ICQ_USER_ADDTOLIST 0x0004 #define ICQ_USER_REMOVEFROMLIST 0x0005 #define ICQ_USER_NOTIFY_REJECTED 0x000a #define ICQ_USER_ONLINE 0x000b #define ICQ_USER_OFFLINE 0x000c /* Subtypes for Message Family 0x0004 */ #define ICQ_MSG_SRV_ERROR 0x0001 #define ICQ_MSG_CLI_SETPARAMS 0x0002 #define ICQ_MSG_CLI_RESETPARAMS 0x0003 #define ICQ_MSG_CLI_REQICBM 0x0004 #define ICQ_MSG_SRV_REPLYICBM 0x0005 #define ICQ_MSG_SRV_SEND 0x0006 #define ICQ_MSG_SRV_RECV 0x0007 #define ICQ_MSG_SRV_MISSED_MESSAGE 0x000A #define ICQ_MSG_RESPONSE 0x000B #define ICQ_MSG_SRV_ACK 0x000C #define ICQ_MSG_CLI_REQ_OFFLINE 0x0010 #define ICQ_MSG_MTN 0x0014 #define ICQ_MSG_SRV_OFFLINE_REPLY 0x0017 /* Subtypes for Privacy Family 0x0009 */ #define ICQ_PRIVACY_REQ_RIGHTS 0x0002 #define ICQ_PRIVACY_RIGHTS_REPLY 0x0003 #define ICQ_CLI_ADDVISIBLE 0x0005 #define ICQ_CLI_REMOVEVISIBLE 0x0006 #define ICQ_CLI_ADDINVISIBLE 0x0007 #define ICQ_CLI_REMOVEINVISIBLE 0x0008 #define ICQ_PRIVACY_SERVICE_ERROR 0x0009 #define ICQ_CLI_ADDTEMPVISIBLE 0x000A #define ICQ_CLI_REMOVETEMPVISIBLE 0x000B /* Subtypes for Lookup Family 0x000a */ #define ICQ_LOOKUP_REQUEST 0x0002 #define ICQ_LOOKUP_EMAIL_REPLY 0x0003 /* Subtypes for Stats Family 0x000b */ #define ICQ_STATS_MINREPORTINTERVAL 0x0002 /* Subtypes for Avatar Family 0x0010 */ #define ICQ_AVATAR_ERROR 0x0001 #define ICQ_AVATAR_UPLOAD_REQUEST 0x0002 #define ICQ_AVATAR_UPLOAD_ACK 0x0003 #define ICQ_AVATAR_GET_REQUEST 0x0006 #define ICQ_AVATAR_GET_REPLY 0x0007 /* Subtypes for Server Lists Family 0x0013 */ #define ICQ_LISTS_ERROR 0x0001 #define ICQ_LISTS_CLI_REQLISTS 0x0002 #define ICQ_LISTS_SRV_REPLYLISTS 0x0003 #define ICQ_LISTS_CLI_REQUEST 0x0004 #define ICQ_LISTS_CLI_CHECK 0x0005 #define ICQ_LISTS_LIST 0x0006 #define ICQ_LISTS_GOTLIST 0x0007 #define ICQ_LISTS_ADDTOLIST 0x0008 #define ICQ_LISTS_UPDATEGROUP 0x0009 #define ICQ_LISTS_REMOVEFROMLIST 0x000A #define ICQ_LISTS_ACK 0x000E #define ICQ_LISTS_UPTODATE 0x000F #define ICQ_LISTS_CLI_MODIFYSTART 0x0011 #define ICQ_LISTS_CLI_MODIFYEND 0x0012 #define ICQ_LISTS_GRANTAUTH 0x0014 #define ICQ_LISTS_AUTHGRANTED 0x0015 #define ICQ_LISTS_REVOKEAUTH 0x0016 #define ICQ_LISTS_REQUESTAUTH 0x0018 #define ICQ_LISTS_AUTHREQUEST 0x0019 #define ICQ_LISTS_CLI_AUTHRESPONSE 0x001A #define ICQ_LISTS_SRV_AUTHRESPONSE 0x001B #define ICQ_LISTS_YOUWEREADDED 0x001C /* Subtypes for ICQ Extensions Family 0x0015 */ #define ICQ_META_ERROR 0x0001 #define ICQ_META_CLI_REQ 0x0002 #define ICQ_META_SRV_REPLY 0x0003 /* Subtypes for Authorization Family 0x0017 */ #define ICQ_SIGNON_ERROR 0x0001 #define ICQ_SIGNON_LOGIN_REQUEST 0x0002 #define ICQ_SIGNON_LOGIN_REPLY 0x0003 #define ICQ_SIGNON_REGISTRATION_REQ 0x0004 #define ICQ_SIGNON_NEW_UIN 0x0005 #define ICQ_SIGNON_AUTH_REQUEST 0x0006 #define ICQ_SIGNON_AUTH_KEY 0x0007 #define ICQ_SIGNON_REQUEST_IMAGE 0x000C #define ICQ_SIGNON_REG_AUTH_IMAGE 0x000D // Class constants #define CLASS_UNCONFIRMED 0x0001 #define CLASS_ADMINISTRATOR 0x0002 #define CLASS_AOL 0x0004 #define CLASS_COMMERCIAL 0x0008 #define CLASS_FREE 0x0010 #define CLASS_AWAY 0x0020 #define CLASS_ICQ 0x0040 #define CLASS_WIRELESS 0x0080 // Reply types for SNAC 15/02 & 15/03 #define CLI_META_INFO_REQ 0x07D0 #define SRV_META_INFO_REPLY 0x07DA // Reply subtypes for SNAC 15/02 & 15/03 #define META_PROCESSING_ERROR 0x0001 // Meta processing error server reply #define META_SMS_DELIVERY_RECEIPT 0x0096 // Server SMS response (delivery receipt) #define META_SET_PASSWORD_ACK 0x00AA // Set user password server ack #define META_UNREGISTER_ACK 0x00B4 // Unregister account server ack #define META_BASIC_USERINFO 0x00C8 // User basic info reply #define META_WORK_USERINFO 0x00D2 // User work info reply #define META_MORE_USERINFO 0x00DC // User more info reply #define META_NOTES_USERINFO 0x00E6 // User notes (about) info reply #define META_EMAIL_USERINFO 0x00EB // User extended email info reply #define META_INTERESTS_USERINFO 0x00F0 // User interests info reply #define META_AFFILATIONS_USERINFO 0x00FA // User past/affilations info reply #define META_SHORT_USERINFO 0x0104 // Short user information reply #define META_HPAGECAT_USERINFO 0x010E // User homepage category information reply #define SRV_USER_FOUND 0x01A4 // Search: user found reply #define SRV_LAST_USER_FOUND 0x01AE // Search: last user found reply #define META_REGISTRATION_STATS_ACK 0x0302 // Registration stats ack #define SRV_RANDOM_FOUND 0x0366 // Random search server reply #define META_SET_PASSWORD_REQ 0x042E // Set user password request #define META_REQUEST_FULL_INFO 0x04B2 // Request full user info #define META_REQUEST_SHORT_INFO 0x04BA // Request short user info #define META_REQUEST_SELF_INFO 0x04D0 // Request full self user info #define META_SEARCH_GENERIC 0x055F // Search user by details (TLV) #define META_SEARCH_UIN 0x0569 // Search user by UIN (TLV) #define META_SEARCH_EMAIL 0x0573 // Search user by E-mail (TLV) #define META_XML_INFO 0x08A2 // Server variable requested via xml #define META_SET_FULLINFO_REQ 0x0C3A // Set full user info request #define META_SET_FULLINFO_ACK 0x0C3F // Server ack for set fullinfo command #define META_SPAM_REPORT_ACK 0x2012 // Server ack for user spam report // TLV types // SECURITY flags #define TLV_AUTH 0x02F8 // uint8 User authorization permissions #define TLV_WEBAWARE 0x030C // uint8 User 'show web status' permissions // SEARCH only TLVs #define TLV_AGERANGE 0x0168 // acombo Age range to search #define TLV_KEYWORDS 0x0226 // sstring Whitepages search keywords string #define TLV_ONLINEONLY 0x0230 // uint8 Search only online users flag #define TLV_UIN 0x0136 // uint32 User uin // common #define TLV_FIRSTNAME 0x0140 // sstring User firstname #define TLV_LASTNAME 0x014A // sstring User lastname #define TLV_NICKNAME 0x0154 // sstring User nickname #define TLV_EMAIL 0x015E // ecombo User email #define TLV_GENDER 0x017C // uint8 User gender #define TLV_MARITAL 0x033E // uint8 User marital status #define TLV_LANGUAGE 0x0186 // uint16 User spoken language #define TLV_CITY 0x0190 // sstring User home city name #define TLV_STATE 0x019A // sstring User home state abbr #define TLV_COUNTRY 0x01A4 // uint16 User home country code #define TLV_COMPANY 0x01AE // sstring User work company name #define TLV_DEPARTMENT 0x01B8 // sstring User work department name #define TLV_POSITION 0x01C2 // sstring User work position (title) #define TLV_OCUPATION 0x01CC // uint16 User work ocupation code #define TLV_PASTINFO 0x01D6 // icombo User affilations node #define TLV_AFFILATIONS 0x01FE // icombo User past info node #define TLV_INTERESTS 0x01EA // icombo User interests node #define TLV_HOMEPAGE 0x0212 // sstring User homepage category/keywords // changeinfo #define TLV_AGE 0x0172 // uint16 User age #define TLV_URL 0x0213 // sstring User homepage url #define TLV_BIRTH 0x023A // bcombo User birthday info (year, month, day) #define TLV_ABOUT 0x0258 // sstring User notes (about) text #define TLV_STREET 0x0262 // sstring User home street address #define TLV_ZIPCODE 0x026D // sstring User home zip code #define TLV_PHONE 0x0276 // sstring User home phone number #define TLV_FAX 0x0280 // sstring User home fax number #define TLV_MOBILE 0x028A // sstring User home cellular phone number #define TLV_WORKSTREET 0x0294 // sstring User work street address #define TLV_WORKCITY 0x029E // sstring User work city name #define TLV_WORKSTATE 0x02A8 // sstring User work state name #define TLV_WORKCOUNTRY 0x02B2 // uint16 User work country code #define TLV_WORKZIPCODE 0x02BD // sstring User work zip code #define TLV_WORKPHONE 0x02C6 // sstring User work phone number #define TLV_WORKFAX 0x02D0 // sstring User work fax number #define TLV_WORKURL 0x02DA // sstring User work webpage url #define TLV_TIMEZONE 0x0316 // uint8 User GMT offset #define TLV_ORGCITY 0x0320 // sstring User originally from city #define TLV_ORGSTATE 0x032A // sstring User originally from state #define TLV_ORGCOUNTRY 0x0334 // uint16 User originally from country (code) #define TLV_ALLOWSPAM 0x0348 // uint8 #define TLV_CODEPAGE 0x0352 // uint16 Codepage used for details /* Direct packet types */ #define PEER_INIT 0xFF #define PEER_INIT_ACK 0x01 #define PEER_MSG_INIT 0x03 #define PEER_MSG 0x02 #define PEER_FILE_INIT 0x00 #define PEER_FILE_INIT_ACK 0x01 #define PEER_FILE_NEXTFILE 0x02 #define PEER_FILE_RESUME 0x03 #define PEER_FILE_STOP 0x04 #define PEER_FILE_SPEED 0x05 #define PEER_FILE_DATA 0x06 /* Direct command types */ #define DIRECT_CANCEL 0x07D0 /* 2000 TCP cancel previous file/chat request */ #define DIRECT_ACK 0x07DA /* 2010 TCP acknowledge message packet */ #define DIRECT_MESSAGE 0x07EE /* 2030 TCP message */ // DC types #define DC_DISABLED 0x0000 // Direct connection disabled / auth required #define DC_HTTPS 0x0001 // Direct connection thru firewall or https proxy #define DC_SOCKS 0x0002 // Direct connection thru socks4/5 proxy server #define DC_NORMAL 0x0004 // Normal direct connection (without proxy/firewall) #define DC_WEB 0x0006 // Web client - no direct connection // Message flags #define MFLAG_NORMAL 0x01 // Normal message #define MFLAG_AUTO 0x03 // Auto-message flag #define MFLAG_MULTI 0x80 // This is multiple recipients message // Some SSI constants #define SSI_ITEM_BUDDY 0x0000 // Buddy record (name: uin for ICQ and screenname for AIM) #define SSI_ITEM_GROUP 0x0001 // Group record #define SSI_ITEM_PERMIT 0x0002 // Permit record ("Allow" list in AIM, and "Visible" list in ICQ) #define SSI_ITEM_DENY 0x0003 // Deny record ("Block" list in AIM, and "Invisible" list in ICQ) #define SSI_ITEM_VISIBILITY 0x0004 // Permit/deny settings or/and bitmask of the AIM classes #define SSI_ITEM_PRESENCE 0x0005 // Presence info (if others can see your idle status, etc) #define SSI_ITEM_UNKNOWN1 0x0009 // Unknown. ICQ2k shortcut bar items ? #define SSI_ITEM_IGNORE 0x000e // Ignore list record. #define SSI_ITEM_LASTUPDATE 0x000f // Item that contain roster update time (name: "LastUpdateDate") #define SSI_ITEM_NONICQ 0x0010 // Non-ICQ contact (to send SMS). Name: 1#EXT, 2#EXT, etc #define SSI_ITEM_UNKNOWN2 0x0011 // Unknown. #define SSI_ITEM_IMPORTTIME 0x0013 // Item that contain roster import time (name: "Import time") #define SSI_ITEM_BUDDYICON 0x0014 // Buddy icon info. (names: from "0" and incrementing by one) #define SSI_TLV_AWAITING_AUTH 0x0066 // Contact not authorized in list #define SSI_TLV_UNKNOWN 0x006D // WTF ? #define SSI_TLV_SUBITEMS 0x00C8 // List of sub-items IDs #define SSI_TLV_VISIBILITY 0x00CA #define SSI_TLV_SHORTCUT 0x00CD #define SSI_TLV_TIMESTAMP 0x00D4 // Import Timestamp #define SSI_TLV_AVATARHASH 0x00D5 #define SSI_TLV_NAME 0x0131 // Custom contact nickname #define SSI_TLV_EMAIL 0x0137 // Custom contact email #define SSI_TLV_PHONE 0x013A // Custom contact SMS number #define SSI_TLV_COMMENT 0x013C // User comment #define MAX_SSI_TLV_NAME_SIZE 0x40 #define MAX_SSI_TLV_COMMENT_SIZE 0x50 // Client ID constants (internal) #define CLID_GENERIC 0x00 // Generic clients (eg. older official clients) #define CLID_ALTERNATIVE 0x01 // Clients not using tick for MsgID (most third-party clients) #define CLID_MIRANDA 0x02 // Hey, that's mate! #define CLID_ICQ6 0x10 // Mark ICQ6 as it has some non obvious limitations! // Internal Constants #define ICQ_PLUG_VERSION 0x80030869 // last icq plus #define ICQ_JOEWHALE_VERSION 0x80030A0A // last Joe@Whale #define ICQ_BM_VERSION 0x81030A09 // last BM #define ICQ_SIN_VERSION 0x80030A1F // last S!N #define ICQ_S7SSS_VERSION 0x80030869 // last S7&SSS #define ICQ_ETERN_VERSION 0x80035825 // last icq eternity #define ICQ_VERSION 8 // Protocol version #define DC_TYPE DC_NORMAL // Used for DC settings #define MAX_CONTACTSSEND 15 #define MAX_MESSAGESNACSIZE 8000 #define CLIENTRATELIMIT 0 #define UPDATE_THRESHOLD 14 // Two weeks #define COOKIE_TIMEOUT 3600 // One hour #define KEEPALIVE_INTERVAL 57000 // One minute #define WEBFRONTPORT 0x50 #define CLIENTFEATURES 0x3 #define URL_FORGOT_PASSWORD "https://www.icq.com/password/" #define URL_REGISTER_UIN "https://www.icq.com/register/" #define FLAP_MARKER 0x2a #define CLIENT_MD5_STRING "AOL Instant Messenger (SM)" #define UNIQUEIDSETTING "UIN" #define UINMAXLEN 11 // DWORD string max len + 1 #define OSCAR_PROXY_HOST "ars.oscar.aol.com" #define OSCAR_PROXY_VERSION 0x044A #define CLIENT_ID_STRING "ICQ Client" // Client identification, mimic ICQ 6 #define CLIENT_ID_CODE 0x010a #define CLIENT_VERSION_MAJOR 0x0006 #define CLIENT_VERSION_MINOR 0x0000 #define CLIENT_VERSION_LESSER 0x0000 #define CLIENT_VERSION_BUILD 0x1797 #define CLIENT_DISTRIBUTION 0x00007535 #define CLIENT_LANGUAGE "en" #define CLIENT_COUNTRY "us" //auth //db event added to NULL or hcontact //blob format is: //ASCIIZ text //DWORD uin //HANDLE hContact #define ICQEVENTTYPE_AUTH_GRANTED 2004 //database event type #define ICQEVENTTYPE_AUTH_DENIED 2005 //database event type #define ICQEVENTTYPE_AUTH_REQUESTED 2006 //database event type #define ICQEVENTTYPE_SELF_REMOVE 2007 //database event type #define ICQEVENTTYPE_FUTURE_AUTH 2008 //database event type #define ICQEVENTTYPE_CLIENT_CHANGE 2009 //database event type #define ICQEVENTTYPE_CHECK_STATUS 2010 //database event type #define ICQEVENTTYPE_IGNORECHECK_STATUS 2011 //database event type #define ICQEVENTTYPE_YOU_ADDED 2012 //database event type #define ICQEVENTTYPE_WAS_FOUND 2013 //db event ) #endif /* __ICQ_CONSTANTS_H */