// UDP commands Server -> Client
const unsigned short ICQ_CMDxRCV_ACK = 0x000A;
const unsigned short ICQ_CMDxRCV_SETxOFFLINE = 0x0028;
const unsigned short ICQ_CMDxRCV_HELLO = 0x005A;
const unsigned short ICQ_CMDxRCV_WRONGxPASSWD = 0x0064;
const unsigned short ICQ_CMDxRCV_USERxONLINE = 0x006E;
const unsigned short ICQ_CMDxRCV_USERxOFFLINE = 0x0078;
const unsigned short ICQ_CMDxRCV_SEARCHxFOUND = 0x008C;
const unsigned short ICQ_CMDxRCV_SEARCHxDONE = 0x00A0;
const unsigned short ICQ_CMDxRCV_UPDATEDxBASIC = 0x00B4;
const unsigned short ICQ_CMDxRCV_UPDATExBASICxFAIL = 0x00BE;
const unsigned short ICQ_CMDxRCV_UPDATEDxDETAIL = 0x00C8;
const unsigned short ICQ_CMDxRCV_UPDATExDETAILxFAIL= 0x00D2;
const unsigned short ICQ_CMDxRCV_SYSxMSGxOFFLINE = 0x00DC;
const unsigned short ICQ_CMDxRCV_SYSxMSGxDONE = 0x00E6;
const unsigned short ICQ_CMDxRCV_ERROR = 0x00F0;
const unsigned short ICQ_CMDxRCV_BUSY = 0x00FA;
const unsigned short ICQ_CMDxRCV_SYSxMSGxONLINE = 0x0104;
const unsigned short ICQ_CMDxRCV_USERxINFO = 0x0118;
const unsigned short ICQ_CMDxRCV_USERxDETAILS = 0x0122;
const unsigned short ICQ_CMDxRCV_USERxINVALIDxUIN = 0x012C;
const unsigned short ICQ_CMDxRCV_USERxSTATUS = 0x01A4;
//const unsigned short ICQ_CMDxRCV_UPDATEDxBASIC = 0x01E0;
//const unsigned short ICQ_CMDxRCV_UPDATExBASICxFAIL = 0x01EA;
const unsigned short ICQ_CMDxRCV_USERxLISTxDONE = 0x021C;
// Client -> Server
const unsigned short ICQ_CMDxSND_ACK = 0x000A;
const unsigned short ICQ_CMDxSND_THRUxSERVER = 0x010E;
const unsigned short ICQ_CMDxSND_PING = 0x042E;
const unsigned short ICQ_CMDxSND_LOGON = 0x03E8;
const unsigned short ICQ_CMDxSND_USERxLIST = 0x0406;
const unsigned short ICQ_CMDxSND_SEARCHxSTART = 0x0424;
const unsigned short ICQ_CMDxSND_LOGOFF = 0x0438;
const unsigned short ICQ_CMDxSND_SYSxMSGxDONExACK = 0x0442;
const unsigned short ICQ_CMDxSND_SYSxMSGxREQ = 0x044C;
const unsigned short ICQ_CMDxSND_AUTHORIZE = 0x0456;
const unsigned short ICQ_CMDxSND_USERxGETINFO = 0x0460;
const unsigned short ICQ_CMDxSND_USERxGETDETAILS = 0x046A;
const unsigned short ICQ_CMDxSND_UPDATExBASIC = 0x04A6;
const unsigned short ICQ_CMDxSND_UPDATExDETAIL = 0x04B0;
const unsigned short ICQ_CMDxSND_SETxSTATUS = 0x04D8;
//const unsigned short ICQ_CMDxSND_UPDATExBASIC = 0x050A;
const unsigned short ICQ_CMDxSND_PING2 = 0x051E;
const unsigned short ICQ_CMDxSND_USERxADD = 0x053C;
const unsigned short ICQ_CMDxSND_VISIBLExLIST = 0x06AE;
const unsigned short ICQ_CMDxSND_INVISIBLExLIST = 0x06A4;
// TCP commands
const unsigned short ICQ_CMDxTCP_START = 0x07EE;
const unsigned short ICQ_CMDxTCP_CANCEL = 0x07D0;
const unsigned short ICQ_CMDxTCP_ACK = 0x07DA;
const unsigned short ICQ_CMDxTCP_READxAWAYxMSG = 0x03E8;
const unsigned short ICQ_CMDxTCP_READxOCCUPIEDxMSG = 0x03E9;
const unsigned short ICQ_CMDxTCP_READxNAxMSG = 0x03EA;
const unsigned short ICQ_CMDxTCP_READxDNDxMSG = 0x03EB;
const unsigned char ICQ_CMDxTCP_HANDSHAKE = 0xFF;
// Sub Commands
const unsigned short ICQ_CMDxSUB_MSG = 0x0001;
const unsigned short ICQ_CMDxSUB_CHAT = 0x0002;
const unsigned short ICQ_CMDxSUB_FILE = 0x0003;
const unsigned short ICQ_CMDxSUB_URL = 0x0004;
const unsigned short ICQ_CMDxSUB_REQxAUTH = 0x0006;
const unsigned short ICQ_CMDxSUB_ADDEDxTOxLIST = 0x000C;
const unsigned short ICQ_CMDxSUB_WEBxPANEL = 0x000D;
const unsigned short ICQ_CMDxSUB_EMAILxPAGER = 0x000E;
const unsigned short ICQ_CMDxSUB_CONTACTxLIST = 0x0013; // not done
const unsigned short ICQ_CMDxSUB_USERxINFO = 0x001A; // not done
const unsigned short ICQ_CMDxSUB_FxMULTIREC = 0x8000; // not done
// Status constants
// Statuses must be checked in the following order:
// DND, Occupied, NA, Away, Online
const unsigned short ICQ_STATUS_OFFLINE = 0xFFFF;
const unsigned short ICQ_STATUS_ONLINE = 0x0000;
const unsigned short ICQ_STATUS_AWAY = 0x0001;
const unsigned short ICQ_STATUS_DND = 0x0002;
const unsigned short ICQ_STATUS_NA = 0x0004;
const unsigned short ICQ_STATUS_OCCUPIED = 0x0010;
const unsigned short ICQ_STATUS_FREEFORCHAT = 0x0020;
// TCP status for ack packets
const unsigned short ICQ_TCPxACK_ONLINE = 0x0000;
const unsigned short ICQ_TCPxACK_REFUSE = 0x0001;
const unsigned short ICQ_TCPxACK_AWAY = 0x0004;
const unsigned short ICQ_TCPxACK_OCCUPIED = 0x0009;
const unsigned short ICQ_TCPxACK_DND = 0x000A;
const unsigned short ICQ_TCPxACK_NA = 0x000E;
// TCP message type (composed of (status | ..._Fx...)
const unsigned short ICQ_TCPxMSG_AUTOxREPLY = 0x0000;
const unsigned short ICQ_TCPxMSG_NORMAL = 0x0010;
const unsigned short ICQ_TCPxMSG_LIST = 0x0020; // not done
const unsigned short ICQ_TCPxMSG_URGENT = 0x0040; // not done
const unsigned short ICQ_TCPxMSG_FxONLINE = 0x0000;
const unsigned short ICQ_TCPxMSG_FxINVISIBLE = 0x0080;
const unsigned short ICQ_TCPxMSG_FxAWAY = 0x0100;
const unsigned short ICQ_TCPxMSG_FxOCCUPIED = 0x0200;
const unsigned short ICQ_TCPxMSG_FxNA = 0x0800;
const unsigned short ICQ_TCPxMSG_FxDND = 0x1000;
const unsigned long ICQ_STATUS_FxFLAGS = 0xFFFF0000;
const unsigned long ICQ_STATUS_FxPRIVATE = 0x00000100;
const unsigned long ICQ_STATUS_FxWEBxPRESENCE = 0x00010000; // not done
const unsigned long ICQ_STATUS_FxHIDExIP = 0x00020000; // not done
const unsigned long ICQ_STATUS_FxBIRTHDAY = 0x00080000; // not done
// miscellaneous constants (version and default settings)
const unsigned short int ICQ_VERSION = 0x0002;
const unsigned short int ICQ_VERSION_TCP = 0x0003;
const unsigned short MAX_MESSAGE_SIZE = 450;
const unsigned short TIME_NOW = 0;
const unsigned short PING_FREQUENCY = 120;
const unsigned short DEFAULT_SERVER_PORT = 4000;
const unsigned short MAX_SERVER_RETRIES = 3;
const unsigned short MAX_WAIT_ACK = 16;
const unsigned short USER_HASH_SIZE = 127;
const unsigned long LOCALHOST = 0x0100007F;
#endif
[ ВЕРНУТЬСЯ К ОГЛАВЛЕНИЮ ]
|