Protocols/OSCAR/SNAC/OSERVICE CLIENT ONLINE: Difference between revisions
Line 28: | Line 28: | ||
| Rest of SNAC array of [[Protocols/OSCAR/SNAC/OSERVICE_CLIENT_ONLINE#Datatype:_OSERVICE_CLIENT_VERSIONS|OSERVICE__CLIENT_VERSIONS]] | | Rest of SNAC array of [[Protocols/OSCAR/SNAC/OSERVICE_CLIENT_ONLINE#Datatype:_OSERVICE_CLIENT_VERSIONS|OSERVICE__CLIENT_VERSIONS]] | ||
| All foodgroups the client wants to support | | All foodgroups the client wants to support | ||
|} | |||
{| class="wikitable" | |||
! Field | |||
! Size | |||
! Value | |||
|- | |||
| u08 | |||
| flapHeader.startMarker | |||
| '*' | |||
|- | |||
| u08 | |||
| flapHeader.frameType | |||
| 2 ([Protocols/OSCAR/FLAP#Class:_FLAP_FRAME FLAP__FRAME_TYPE_DATA]) | |||
|- | |||
| u16 | |||
| flapHeader.sequenceNumber | |||
| XX | |||
|- | |||
| u16 | |||
| flapHeader.payloadLength | |||
| YY | |||
|- | |||
| u16 | |||
| snacHeader.foodgroup | |||
| 1 ([Protocols/OSCAR/Foodgroups/OSERVICE OSERVICE]) | |||
|- | |||
| u16 | |||
| snacHeader.type | |||
| 2 ([Protocols/OSCAR/SNAC/OSERVICE_CLIENT_ONLINE OSERVICE__CLIENT_ONLINE]) | |||
|- | |||
| u16 | |||
| snacHeader.flags | |||
| 0 | |||
|- | |||
| u32 | |||
| snacHeader.requestId | |||
| ZZ | |||
|- | |||
| u16 | |||
| groupVersions[0].foodgroup | |||
| 1 ([Protocols/OSCAR/Foodgroups/OSERVICE OSERVICE]) | |||
|- | |||
| u16 | |||
| groupVersions[0].version | |||
| 4 | |||
|- | |||
| u16 | |||
| groupVersions[0].tool_id | |||
| 41 | |||
|- | |||
| u16 | |||
| groupVersions[0].tool_version | |||
| AA | |||
|- | |||
| u16 | |||
| groupVersions[1].foodgroup | |||
| 19 ([Protocols/OSCAR/Foodgroups/FEEDBAG FEEDBAG]) | |||
|- | |||
| u16 | |||
| groupVersions[1].version | |||
| 3 | |||
|- | |||
| u16 | |||
| groupVersions[1].tool_id | |||
| 41 | |||
|- | |||
| u16 | |||
| groupVersions[1].tool_version | |||
| AA | |||
|- | |||
| u16 | |||
| groupVersions[1].foodgroup | |||
| 3 ([Protocols/OSCAR/Foodgroups/BUDDY BUDDY]) | |||
|- | |||
| u16 | |||
| groupVersions[1].version | |||
| 1 | |||
|- | |||
| u16 | |||
| groupVersions[1].tool_id | |||
| 41 | |||
|- | |||
| u16 | |||
| groupVersions[1].tool_version | |||
| AA | |||
|- | |||
| u16 | |||
| groupVersions[1].foodgroup | |||
| 2 ([Protocols/OSCAR/Foodgroups/LOCATE LOCATE]) | |||
|- | |||
| u16 | |||
| groupVersions[1].version | |||
| 1 | |||
|- | |||
| u16 | |||
| groupVersions[1].tool_id | |||
| 41 | |||
|- | |||
| u16 | |||
| groupVersions[1].tool_version | |||
| AA | |||
|- | |||
| u16 | |||
| groupVersions[1].foodgroup | |||
| 6 ([Protocols/OSCAR/Foodgroups/INVITE INVITE]) | |||
|- | |||
| u16 | |||
| groupVersions[1].version | |||
| 1 | |||
|- | |||
| u16 | |||
| groupVersions[1].tool_id | |||
| 41 | |||
|- | |||
| u16 | |||
| groupVersions[1].tool_version | |||
| AA | |||
|- | |||
| u16 | |||
| groupVersions[1].foodgroup | |||
| 4 ([Protocols/OSCAR/Foodgroups/ICBM ICBM]) | |||
|- | |||
| u16 | |||
| groupVersions[1].version | |||
| 1 | |||
|- | |||
| u16 | |||
| groupVersions[1].tool_id | |||
| 41 | |||
|- | |||
| u16 | |||
| groupVersions[1].tool_version | |||
| AA | |||
|} | |} | ||
Revision as of 03:05, 27 March 2020
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) |
ID | Origin | Name | Foodgroup | Service | Status | Version |
---|---|---|---|---|---|---|
0x0001, 0x0002 | Client | OSERVICE__CLIENT_ONLINE | Unspecified | All | Active | 4.0 |
This message is sent by the client once it has initialized the host state (set preferences, Buddy Lists, locate information, capabilities) and is ready to be announced as being online by the host.
SNAC Header
Foodgroup | uint16 (word) | 00 01 |
Subgroup | uint16 (word) | 00 02 |
Flags | uint16 (word) | 00 00 |
Request ID | uint32 (dword) | 00 00 00 00 |
SNAC Data
The client may have used groups not in groupVersions during initialization, but once this SNAC has been received by the server, SNACs in groups not specified in groupVersions will be rejected. Other users will not see this user online until this SNAC is sent.
Name | Type | Notes |
---|---|---|
groupVersions | Rest of SNAC array of OSERVICE__CLIENT_VERSIONS | All foodgroups the client wants to support |
Field | Size | Value |
---|---|---|
u08 | flapHeader.startMarker | '*' |
u08 | flapHeader.frameType | 2 ([Protocols/OSCAR/FLAP#Class:_FLAP_FRAME FLAP__FRAME_TYPE_DATA]) |
u16 | flapHeader.sequenceNumber | XX |
u16 | flapHeader.payloadLength | YY |
u16 | snacHeader.foodgroup | 1 ([Protocols/OSCAR/Foodgroups/OSERVICE OSERVICE]) |
u16 | snacHeader.type | 2 ([Protocols/OSCAR/SNAC/OSERVICE_CLIENT_ONLINE OSERVICE__CLIENT_ONLINE]) |
u16 | snacHeader.flags | 0 |
u32 | snacHeader.requestId | ZZ |
u16 | groupVersions[0].foodgroup | 1 ([Protocols/OSCAR/Foodgroups/OSERVICE OSERVICE]) |
u16 | groupVersions[0].version | 4 |
u16 | groupVersions[0].tool_id | 41 |
u16 | groupVersions[0].tool_version | AA |
u16 | groupVersions[1].foodgroup | 19 ([Protocols/OSCAR/Foodgroups/FEEDBAG FEEDBAG]) |
u16 | groupVersions[1].version | 3 |
u16 | groupVersions[1].tool_id | 41 |
u16 | groupVersions[1].tool_version | AA |
u16 | groupVersions[1].foodgroup | 3 ([Protocols/OSCAR/Foodgroups/BUDDY BUDDY]) |
u16 | groupVersions[1].version | 1 |
u16 | groupVersions[1].tool_id | 41 |
u16 | groupVersions[1].tool_version | AA |
u16 | groupVersions[1].foodgroup | 2 ([Protocols/OSCAR/Foodgroups/LOCATE LOCATE]) |
u16 | groupVersions[1].version | 1 |
u16 | groupVersions[1].tool_id | 41 |
u16 | groupVersions[1].tool_version | AA |
u16 | groupVersions[1].foodgroup | 6 ([Protocols/OSCAR/Foodgroups/INVITE INVITE]) |
u16 | groupVersions[1].version | 1 |
u16 | groupVersions[1].tool_id | 41 |
u16 | groupVersions[1].tool_version | AA |
u16 | groupVersions[1].foodgroup | 4 ([Protocols/OSCAR/Foodgroups/ICBM ICBM]) |
u16 | groupVersions[1].version | 1 |
u16 | groupVersions[1].tool_id | 41 |
u16 | groupVersions[1].tool_version | AA |
Datatype: OSERVICE__CLIENT_VERSIONS
Description of a foodgroup and the version of that foodgroup the client wants to use when communicating with the backend.
Name | Type | Notes |
---|---|---|
foodgroup | uint16 (word) | Foodgroup that the version represents |
version | uint16 (word) | Version of the foodgroup implementation; should be 4 for OSERVICE, 3 for FEEDBAG, 1 for all others |
tool_id | uint16 (word) | Should be 41 for all Open AIM clients |
tool_version | uint16 (word) | Any version number the developer would like, usually the build number |
Example
Here is an example of the raw SNAC data split up to demonstrate the otherwise in-line data.
Foodgroup | Version | Tool ID | Tool version |
---|---|---|---|
0x0001 | 0x0004 | 0x0010 | 0x0801 |
0x0002 | 0x0001 | 0x0110 | 0x0801 |
0x0003 | 0x0001 | 0x0110 | 0x0801 |
0x0004 | 0x0001 | 0x0110 | 0x0801 |
0x0006 | 0x0001 | 0x0110 | 0x0801 |
0x0008 | 0x0001 | 0x0104 | 0x0001 |
0x0009 | 0x0001 | 0x0110 | 0x0801 |
0x000a | 0x0001 | 0x0110 | 0x0801 |
0x000b | 0x0001 | 0x0104 | 0x0001 |
0x0013 | 0x0003 | 0x0110 | 0x0801 |
Client Version Map
A list of clients and their corresponding foodgroups, versions, and tool IDs and tool versions.
OSERVICE SNACs
|