Protocols/OSCAR/Foodgroups/OSERVICE/Datatypes/USERINFO
OSCAR Protocol |
Introduction • Terms • Clients |
Basic |
Datatypes • FLAP • SNAC • TLV |
UUIDs • Errors • Tool IDs |
Host Interaction |
Rate Limits • Migration • Messages |
Other Services |
ADMIN • ADVERT • ALERT |
BART • BOS • BUCP • CHAT |
CHAT_NAV |
Tutorials |
Sign On • BART • Rendezvous |
ICBM • Locate • Buddies |
Foodgroups |
OSERVICE (0x0001) |
LOCATE (0x0002) |
BUDDY (0x0003) |
ICBM (0x0004) |
ADVERT (0x0005) |
INVITE (0x0006) |
ADMIN (0x0007) |
POPUP (0x0008) |
PD (0x0009) |
USER_LOOKUP (0x000A) |
STATS (0x000B) |
TRANSLATE (0x000C) |
CHAT_NAV (0x000D) |
CHAT (0x000E) |
ODIR (0x000F) |
BART (0x0010) |
FEEDBAG (0x0013) |
ICQ (0x0015) |
BUCP (0x0017) |
ALERT (0x0018) |
PLUGIN (0x0022) |
UNNAMED_FG_24 (0x0024) |
MDIR (0x0025) |
ARS (0x044A) |
Due to the common nature and detailed information for the USERINFO datatype, it was separated here. It largely is in use within the OSERVICE foodgroup.
Usages
Protocols/OSCAR/SNAC/OSERVICE_USER_INFO_QUERY
Protocols/OSCAR/SNAC/OSERVICE_USER_INFO_UPDATE
Protocols/OSCAR/SNAC/OSERVICE_SET_USERINFO_FIELDS
Datatype: OSERVICE__USERINFO
Common data structure that contains a user's username and information about their session.
Name | Type | Notes |
---|---|---|
displayId | string08 | Formated username |
evil | uint16 (word) | Warning level of user |
userAttributes | tlvBlock | [Class: OSERVICE__USER_INFO_TAGS] TLV Block of user attributes |
Class: OSERVICE__USER_FLAGS
Bits specifying a user's characteristics; For compatibility reasons the lower 2 bytes of USER_FLAGS are sent in the USER_FLAGS tag, while the upper bytes are sent in the USER_FLAGS2 tag.
To form the full user flags the client needs to combine USER_FLAGS and USER_FLAGS2 shifted to the left 2 bytes. USER_FLAGS is always a uint16 (word), which USER_FLAGS2 can be any size. Another way to express the math: userFlags = USER_FLAG | (USER_FLAGS2 << 0x10)
Name | Value | Notes |
---|---|---|
OSERVICE__USER_FLAG_DAMNED_TRANSIENT | 0x0001 | Unconfirmed account |
OSERVICE__USER_FLAG_ADMINISTRATOR | 0x0002 | NINA Administrator |
OSERVICE__USER_FLAG_AOL | 0x0004 | User is on an AOL client |
OSERVICE__USER_FLAG_OSCAR_PAY | 0x0008 | NINA commercial account |
OSERVICE__USER_FLAG_OSCAR_FREE | 0x0010 | NINA free account, typically AIM |
OSERVICE__USER_FLAG_UNAVAILABLE | 0x0020 | User is away |
OSERVICE__USER_FLAG_ICQ | 0x0040 | ICQ user; AIM bit will also be set |
OSERVICE__USER_FLAG_WIRELESS | 0x0080 | On a mobile device |
OSERVICE__USER_FLAG_INTERNAL | 0x0100 | Account for internal use |
OSERVICE__USER_FLAG_FISH | 0x0200 | Using IM Forwarding |
OSERVICE__USER_FLAG_BOT | 0x0400 | Bot user |
OSERVICE__USER_FLAG_BEAST | 0x0800 | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_FLAG_ONE_WAY_WIRELESS | 0x1000 | One way wireless device |
OSERVICE__USER_FLAG_OFFICIAL | 0x2000 | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_FLAG_BUDDY_MATCH_DIRECT | 0x10000 | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_FLAG_BUDDY_MATCH_INDIRECT | 0x20000 | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_FLAG_NO_KNOCK_KNOCK | 0x00040000 | Do not display the "not on your Buddy List" knock-knock as the server took care of it or the sender is trusted |
FORWARD_MOBILE | 0x00080000 | If no active instances forward to mobile |
From Aleksandr Shutko: User classes
|
Class: OSERVICE__USER_STATUS
XX
TLV Class: OSERVICE__USER_INFO_TAGS
These tags contain information about users and their server state.
Name | Tag | Type | Notes |
---|---|---|---|
OSERVICE__USER_INFO_USER_FLAGS | 0x01 | uint16 (word) | [Class: OSERVICE__USER_FLAGS] Flags that represent the user's state |
OSERVICE__USER_INFO_CREATE_TOD | 0x02 | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_SIGNON_TOD | 0x03 | t70 | Signon time |
OSERVICE__USER_INFO_IDLE_TIME | 0x04 | uint16 (word) | Idle time in minutes |
OSERVICE__USER_INFO_MEMBER_SINCE | 0x05 | t70 | Approximation of NINA membership |
OSERVICE__USER_INFO_STATUS | 0x06 | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_CLIENTTYPE | 0x08 | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_REALIPADDRESS | 0x0A | uint32 (dword) | Network byte order IPv4 address |
OSERVICE__USER_INFO_REALIPV6ADDRESS | 0x6A | string | String of IPv6 address |
OSERVICE__USER_INFO_ICQINFO | 0x0C | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_OSCAR_CAPS | 0x0D | Array of UUID | Client capabilities - if not present use the previous values received; if present but empty, clear previous values |
OSERVICE__USER_INFO_AOL_CAPS | 0x0E | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_OSCAR_OT | 0x0F | uint32 (dword) | Online time in seconds, if user is using OSCAR |
OSERVICE__USER_INFO_AOL_OT | 0x10 | uint32 (dword) | Online time in seconds, if user is using P3 |
OSERVICE__USER_INFO_ICQ_BROAD_BLOB | 0x11 | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_ICQ_BROAD_TYPE | 0x12 | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_INSTANCES | 0x13 | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_MY_INSTANCE_NUM | 0x14 | uint8 (byte) | Set in first user info. Identifies the instance number of this client |
OSERVICE__USER_INFO_MY_PARENTAL_CONTROLS | 0x15 | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_MY_ZIP | 0x16 | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_MY_BOT_INFO | 0x17 | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_ALIAS | 0x18 | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_SHORT_OSCAR_CAPS | 0x19 | Array of uint16 (word) | Short form of capabilities |
OSERVICE__USER_INFO_SHORT_AOL_CAPS | 0x1A | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_ENCRYPTION_CERT_MD5 | 0x1B | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_BART_INFO | 0x1D | Array of BART__ID | Expressions |
OSERVICE__USER_INFO_MY_SUBSCRIPTIONS | 0x1E | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_USER_FLAGS2 | 0x1F | Array of uint8 (byte) | [Class: OSERVICE__USER_FLAGS] Upper bytes of user flags, can be any size. userFlags = USER_FLAG | (USER_FLAGS2 << 16) |
OSERVICE__USER_INFO_UNKNOWN_22 | 0x22 | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_BUDDY_FEED_TIME | 0x23 | t70 | Last Buddy Feed update time |
OSERVICE__USER_INFO_SIG_TIME | 0x26 | t70 | Time that the profile was set |
OSERVICE__USER_INFO_AWAY_TIME | 0x27 | t70 | Time that away was set |
OSERVICE__USER_INFO_PRIMARY_INSTANCE | 0x28 | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_UNKNOWN_29_TIME | 0x29 | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_GEO_COUNTRY | 0x2A | string | Two character country code. Sent from host to client if country is known |
OSERVICE__USER_INFO_BUDDY_UPDATE_INDC_URL | 0x2B | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_UNKNOWN_2C | 0x2C | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_UNKNOWN_2D | 0x2D | ? | NOT CURRENTLY DOCUMENTED |
OSERVICE__USER_INFO_UNKNOWN_2F | 0x2F | ? | NOT CURRENTLY DOCUMENTED |