Miscellaneous OSCAR protocol information   

 1.    Message types list (ICQ only messages)
 2.    Message flags list (ICQ only messages)
 3.    User classes bitmasks
 4.    User status bitmasks
 5.    Direct connection types list
 6.    Direct connection protocol version
 7.    Random chat groups list
 8.    Known CLSID (capabilities) list with descriptions
 9.    Known TLVs used in SNAC(15,xx) tlv-based requests
 10.    Marital status codes list

 Message types and flags 
       Message types. Each OSCAR message has type. It can be just plain message, url message, contact list, wwp, email express or another. Only one byte used for message type. Here is the list of known message types:

  0x01   MTYPE_PLAIN     Plain text (simple) message
  0x02   MTYPE_CHAT     Chat request message
  0x03   MTYPE_FILEREQ     File request / file ok message
  0x04   MTYPE_URL     URL message (0xFE formatted)
  0x06   MTYPE_AUTHREQ     Authorization request message (0xFE formatted)
  0x07   MTYPE_AUTHDENY     Authorization denied message (0xFE formatted)
  0x08   MTYPE_AUTHOK     Authorization given message (empty)
  0x09   MTYPE_SERVER     Message from OSCAR server (0xFE formatted)
  0x0C   MTYPE_ADDED     "You-were-added" message (0xFE formatted)
  0x0D   MTYPE_WWP     Web pager message (0xFE formatted)
  0x0E   MTYPE_EEXPRESS     Email express message (0xFE formatted)
  0x13   MTYPE_CONTACTS     Contact list message
  0x1A   MTYPE_PLUGIN     Plugin message described by text string
  0xE8   MTYPE_AUTOAWAY     Auto away message
  0xE9   MTYPE_AUTOBUSY     Auto occupied message
  0xEA   MTYPE_AUTONA     Auto not available message
  0xEB   MTYPE_AUTODND     Auto do not disturb message
  0xEC   MTYPE_AUTOFFC     Auto free for chat message

     Message flags. Message flag used to indicate additional message properties. like auto message, multiple recipients message, etc. Message flag field occupy 1 byte. Here is the list of known message flag codes:

  0x01   MFLAG_NORMAL     Normal message
  0x03   MFLAG_AUTO     Auto-message flag
  0x80   MFLG_MULTI     This is multiple recipients message

 User classes 
       AOL users are divided into several classes. User class field is a 2 byte bitmask. For example ICQ non-commercial account with away status has user-class=0x0070 (CLASS_FREE | CLASS_AWAY | CLASS_ICQ = 0x0070). Here is the list of known bit values in user class bitmask:

  0x0001   CLASS_UNCONFIRMED     AOL unconfirmed user flag
  0x0002   CLASS_ADMINISTRATOR     AOL administrator flag
  0x0004   CLASS_AOL     AOL staff user flag
  0x0008   CLASS_COMMERCIAL     AOL commercial account flag
  0x0010   CLASS_FREE     ICQ non-commercial account flag
  0x0020   CLASS_AWAY     Away status flag
  0x0040   CLASS_ICQ     ICQ user sign
  0x0080   CLASS_WIRELESS     AOL wireless user
  0x0100   CLASS_UNKNOWN100     Unknown bit
  0x0200   CLASS_UNKNOWN200     Unknown bit
  0x0400   CLASS_UNKNOWN400     Unknown bit
  0x0800   CLASS_UNKNOWN800     Unknown bit

 User status 
       ICQ service presence notifications use user status field which consist of two parts. First is a various flags (birthday flag, webaware flag, etc). Second is a user status (online, away, busy, etc) flags. Each part is a two bytes long. Here is the list of masks for both parts:

  0x0001   STATUS_WEBAWARE     Status webaware flag
  0x0002   STATUS_SHOWIP     Status show ip flag
  0x0008   STATUS_BIRTHDAY     User birthday flag
  0x0020   STATUS_WEBFRONT     User active webfront flag
  0x0100   STATUS_DCDISABLED     Direct connection not supported
  0x1000   STATUS_DCAUTH     Direct connection upon authorization
  0x2000   STATUS_DCCONT     DC only with contact users

  0x0000   STATUS_ONLINE     Status is online
  0x0001   STATUS_AWAY     Status is away
  0x0002   STATUS_DND     Status is no not disturb (DND)
  0x0004   STATUS_NA     Status is not available (N/A)
  0x0010   STATUS_OCCUPIED     Status is occupied (BISY)
  0x0020   STATUS_FREE4CHAT     Status is free for chat
  0x0100   STATUS_INVISIBLE     Status is invisible

  Direct connection type  
       ICQ clients can send messages and files using peer-to-peer connection called "direct connection" (DC). Each ICQ client may have different internet connection: direct, proxy, firewall or other and to establish DC one client should know connection type of another client. This connection type also used by direct connections and called "DC type". Here is the list of values:

  0x0000   DC_DISABLED     Direct connection disabled / auth required
  0x0001   DC_HTTPS     Direct connection thru firewall or https proxy
  0x0002   DC_SOCKS     Direct connection thru socks4/5 proxy server
  0x0004   DC_NORMAL     Normal direct connection (without proxy/firewall)
  0x0006   DC_WEB     Web client - no direct connection

  Direct connection protocol version  
       ICQ clients can send messages and files using peer-to-peer connection called "direct connection" (DC). Here is the list of direct connection protocol versions:

  0x0004   DCP_ICQ98     ICQ98
  0x0006   DCP_ICQ99     ICQ99
  0x0007   DCP_ICQ2000     ICQ2000
  0x0008   DCP_ICQ2001     ICQ2001
  0x0009   DCP_ICQLITE     ICQ Lite
  0x000A   DCP_ICQ2003B     ICQ2003B

  Random chat groups  
       ICQ service has ability to search a random user in specific group and each ICQ client may choose group where another client can find it. Here is the list of groups and their codes:

  0x0001   RND_GENERAL     General chat group
  0x0002   RND_ROMANCE     Romance random chat group
  0x0003   RND_GAMES     Games random chat group
  0x0004   RND_STUDENTS     Students random chat group
  0x0006   RND_20SOMETHING     20 something random chat group
  0x0007   RND_30SOMETHING     30 something random chat group
  0x0008   RND_40SOMETHING     40 something random chat group
  0x0009   RND_50PLUS     50+ random chat group
  0x000A   RND_SWOMEN     Seeking women random chat group
  0x000B   RND_SMAN     Seeking man random chat group

  Motd types list  
       ICQ/AIM services use special SNAC(01,13) for motd (message of the day) notices during login. Here is the list of known motd types:

  0x0001   MTD_MDT_UPGRAGE     Mandatory upgrade needed notice
  0x0002   MTD_ADV_UPGRAGE     Advisable upgrade notice
  0x0003   MTD_SYS_BULLETIN     AIM/ICQ service system announcements
  0x0004   MTD_NORMAL     Standart notice
  0x0006   MTD_NEWS     Some news from AOL service

  Marital status code list  
       There was some new fields added to ICQ client data. One of them is marital status field. Here is the marital status code list:

  0x0000 (00)   MARITAL_NONE     Marital status not specified
  0x000A (10)   MARITAL_SINGLE     User is single
  0x000B (11)   MARITAL_LONGRS     User is in a long-term relationship
  0x000C (12)   MARITAL_ENGAGED     User is engaged
  0x0014 (20)   MARITAL_MARRIED     User is married
  0x001E (30)   MARITAL_DIVORCED     User is divorced
  0x001F (31)   MARITAL_SEPARATED     User is separated
  0x0028 (40)   MARITAL_WIDOWED     User is widowed

  Main | Basic | Login | Snaclist | Sequences | Misc | Changes | Credits | Terms