AIM/Oscar Protocol Specification: Family 0x0013, Structure of an Item
This is the generic structure of an "item" stored on the server.
|2 bytes||Length L1 of the following name|
|L1 bytes||Name (can be buddy name, group name, permit buddy name, deny buddy name, or empty)|
|2 bytes||Group ID#. The buddy list contains a "master group" which contains all other groups. This group has a group ID# of 0x0000.|
|2 bytes||Buddy ID#. For groups, the buddy ID# is 0x0000.|
|2 bytes||Type of item flag. This describes the type of item.
- 0x0000 - Buddies
- 0x0001 - Groups
- 0x0002 - Permit buddies (called the "Allow" list in AIM, and the "Visible" list in ICQ)
- 0x0003 - Deny buddies (called the "Block" list in AIM, and the "Invisible" list in ICQ). In ICQ you can still see the status of the other person when they are in your invisible list, but they can not see you
- 0x0004 - The permit/deny setting (TLV type 0x00ca), the bitmask of the class of AIM users who can see you (subtype 0x00cb)
- 0x0005 - Presence info (if others can see your idle status, etc.)
- 0x0009 - Maybe some preferences? Like "require authorization"? Name is "ICQTIC," additional data is a TLV of type 0x00cd containing "3672,0,2,1" (ICQ only)
- 0x000e - Ignore list (this might be ICQ only, I'm not sure). You will not get status updates or anything else from people in this list
- 0x000f - Unknown. Had the name "LastUpdateDate" Was modified when I changed my ICQ authorization setting. Contained a TLV of type 0x0145, length 4, data 0x41 f6 10 61. Possibly a timestamp?
- 0x0014 - Buddy icon info. These have names starting from "0" and incrementing by one each time.
- 0x0015 - List of "Recent Buddies." The TLV list contains a type 0x00c8 TLV containing buddy ID#s of screen names that were added automatically by the server because the "use recent buddies group" option was enabled.
- 0x015c - ICQ status note
|2 bytes||Length L2 of the following additional data
|L2 bytes||Additional data. Made up of a series of TLVs. Buddies can store a "buddy comment" for each buddy in a 0x013c TLV. Groups should store the buddy ID#s of all buddies in the group in a 0x00c8 TLV. See the TLV index for more detailed information.|