Protocols/OSCAR: Difference between revisions
No edit summary |
m (Fixed email addresses) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
OSCAR stands for "Open System for Communication in Realtime", and while originally and ironically was not open, today it is. At one time used by AOL's AIM and ICQ products, and later discontinued, it now has had a rebirth of sorts here. We not only will fully document the protocol, but will maintain and update it. | OSCAR stands for "Open System for Communication in Realtime", and while originally and ironically was not open, today it is. At one time used by AOL's AIM and ICQ products, and later discontinued, it now has had a rebirth of sorts here. We not only will fully document the protocol, but will maintain and update it. | ||
If you want to contribute, you can request an account by sending an email to [mailto:accounts@wiki.nina. | If you want to contribute, you can request an account by sending an email to [mailto:accounts@wiki.nina.chat accounts@wiki.nina.chat] with desired username and also a few words on what you have to contribute (for spam control). You should also check the [[Needed]], which is a list of things we are looking for. | ||
If you want to contribute something anonymously or without registering, send it to [mailto:contribute@wiki.nina. | If you want to contribute something anonymously or without registering, send it to [mailto:contribute@wiki.nina.chat contribute@wiki.nina.chat]. If anonymity is desired, state so, and your name/email will not be mentioned. | ||
You can also [[Donate|donate]] to help with this AIM/AOL revival, because it is a full time job at this point. | |||
== Introduction == | == Introduction == | ||
Line 189: | Line 191: | ||
{{Protocols/OSCAR/Foodgroups/UNNAMED_FG_24/SNACs}} | {{Protocols/OSCAR/Foodgroups/UNNAMED_FG_24/SNACs}} | ||
=== | === MDIR (0x0025) === | ||
{{Protocols/OSCAR/Foodgroups/ | {{Protocols/OSCAR/Foodgroups/MDIR/Description}} | ||
<br>[[Protocols/OSCAR/SNAC_25|Read More]] | <br>[[Protocols/OSCAR/SNAC_25|Read More]] | ||
{{Protocols/OSCAR/Foodgroups/ | {{Protocols/OSCAR/Foodgroups/MDIR/SNACs}} | ||
<!-- Hidden until we can be sure this is worth implementing | <!-- Hidden until we can be sure this is worth implementing | ||
Line 205: | Line 207: | ||
<br>[[Protocols/OSCAR/SNAC_44A|Read More]] | <br>[[Protocols/OSCAR/SNAC_44A|Read More]] | ||
{{Protocols/OSCAR/Foodgroups/ARS/SNACs}} | {{Protocols/OSCAR/Foodgroups/ARS/SNACs}} | ||
[[Category:Not_Currently_Documented]] |
Latest revision as of 11:02, 18 March 2022
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) |
OSCAR stands for "Open System for Communication in Realtime", and while originally and ironically was not open, today it is. At one time used by AOL's AIM and ICQ products, and later discontinued, it now has had a rebirth of sorts here. We not only will fully document the protocol, but will maintain and update it.
If you want to contribute, you can request an account by sending an email to accounts@wiki.nina.chat with desired username and also a few words on what you have to contribute (for spam control). You should also check the Needed, which is a list of things we are looking for.
If you want to contribute something anonymously or without registering, send it to contribute@wiki.nina.chat. If anonymity is desired, state so, and your name/email will not be mentioned.
You can also donate to help with this AIM/AOL revival, because it is a full time job at this point.
Introduction
The OSCAR protocol is a binary protocol and is transmitted in network byte order unless otherwise noted. The application protocol stack consists of TCP for networking, a FLAP layer providing framing, and SNACs representing the OSCAR protocol messages. SNACs are broken into foodgroups (get it?) and subgroups which represent commands and services.
Many of the server connections support TLS between the FLAP and TCP layer if single hop encryption is desired. In most cases, the binary data stream is formed by appending the elements in order with no extra padding.
Sometimes within the ICQ community it's called "protocol v7/8/9" but this is inaccurate. Additionally the newer web-based API has been called ICQ v10 by a few. These version numbers are not accurate and typically come from the rendezvous/direct connection protocol version numbers.
Connecting
Depending on whether or not SSL/TLS is being used, and version of the protocol, different authentication servers may be used. The authentication server also acts as a load balancer and will return a BOSS server to connect to when authentication is successful.
Hostname | Port | Protocol | Note |
---|---|---|---|
login.oscar.nina.bz | 5190 | OSCAR | OSCAR over FLAP |
kdc.uas.nina.bz | 443 | OSCAR | OSCAR over TLS |
api.screenname.nina.bz | 443 | OSCAR or WIM | HTTP-based clientLogin |
There are several servers that make up the AIM backend complex. api.screenname.aol.com -- The api.screenname servers provide all the authentication web services, also knows as AOL Open Auth. The first step to an AIM session is using clientLogin to authenticate the user. api.oscar.aol.com -- The api.oscar servers provide access to all the AIM web services. For OpenAIM it provides a service discovery mechanism for a client to find the correct BOSS server to which it should connect. It also provides a redirect service for the start page and expressions page.
A single user can use multiple clients at the same time on the same or different devices. When building a client, or library, care should be taken to deal with a single user being online multiple times. In general, all IMs and Buddy notifications will be sent to all instances, although there are some IM routing rules that come into effect when users are away or idle.
Clients
You can find a full list of available OSCAR clients here.
Foodgroups
OSERVICE (0x0001)
The OSERVICE foodgroup contains basic operations and data types that are common across many of the foodgroups and even different servers. It is also used for service requests when the client needs to connect to a second server to perform some other action.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | OSERVICE__ERR |
This is the error SNAC for the OSERVICE foodgroup. | ||
0x0002 | Client | OSERVICE__CLIENT_ONLINE |
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. | ||
0x0003 | Host | OSERVICE__HOST_ONLINE |
This is the very first SNAC sent from the host to the client after the FLAP signon frames are sent. It contains an array of all of the foodgroups the service supports. | ||
0x0004 | Client | OSERVICE__SERVICE_REQUEST |
This SNAC requests that the specified service (foodgroup) be provided to it in a way further specified by qualifying parameters. | ||
0x0005 | Host | OSERVICE__SERVICE_RESPONSE |
This SNAC contains information about connecting to the new server. It is the response from the server to a service request. | ||
0x0006 | Client | OSERVICE__RATE_PARAMS_QUERY |
This SNAC is sent by the client to query for the current rate limit parameters. | ||
0x0007 | Host | OSERVICE__RATE_PARAMS_REPLY |
Contains response to the OSERVICE__RATE_PARAMS_QUERY. | ||
0x0008 | Client | OSERVICE__RATE_PARAMS_SUB_ADD |
Subscribe to any rate parameter changes among the specified class IDs. If there was no prior subscription for a given class ID, an immediate notification will be queued. | ||
0x0009 | Client | OSERVICE__RATE_DEL_PARAM_SUB |
Cancels any rate parameter subscriptions for the specified class IDs. | ||
0x000A | Host | OSERVICE__RATE_PARAM_CHANGE |
This contains an array of class rate parameters that have changed since last query or notification. | ||
0x000B | Host | OSERVICE__PAUSE_REQ |
This is sent by the server when it needs to migrate the client. | ||
0x000C | Client | OSERVICE__PAUSE_ACK |
This is sent by the client to acknowledge the receipt and processing of a OSERVICE__PAUSE_REQ SNAC request. | ||
0x000D | Host | OSERVICE__RESUME |
In certain situations the server may abort a migration after having told the client to PAUSE. | ||
0x000E | Client | OSERVICE__USER_INFO_QUERY |
This is a query to find out one's current info. The server will send a OSERVICE__USER_INFO_UPDATE. | ||
0x000F | Host | OSERVICE__USER_INFO_UPDATE |
This SNAC is sent by the server whenever significant parts of a user's info change. | ||
0x0010 | Host | OSERVICE__EVIL_NOTIFICATION |
This is a notice that the user's evil level has changed. | ||
0x0011 | Client | OSERVICE__IDLE_NOTIFICATION |
This SNAC is sent by the client to inform the server of the user's idle state. | ||
0x0012 | Host | OSERVICE__MIGRATE_GROUPS |
This SNAC commands the client to reconnect to the server specified by the included OSERVICE__TLV_TAGS_RECONNECT_HERE TLV. | ||
0x0013 | Host | OSERVICE__MOTD |
Message of the day (MOTD). Often contains upgrade information for clients as well as notices about clients. | ||
0x0014 | Client | OSERVICE__SET_PRIVACY_FLAGS |
Set privacy flags. | ||
0x0015 | Host | OSERVICE__WELL_KNOWN_URLS |
Service related URLs for the client to use or provide to the user. | ||
0x0016 | Client | OSERVICE__NOOP |
Legacy SNAC keepalive, replaced in large part with FLAP level keepalive. | ||
0x0017 | Client | OSERVICE__CLIENT_VERSIONS |
Sent after OSERVICE__HOST_ONLINE, it contains the client's foodgroup version list so the host knows what functionality the client is capable of. | ||
0x0018 | Host | OSERVICE__HOST_VERSIONS |
The host responds to OSERVICE__CLIENT_VERSIONS with its foodgroup version list so that the client knows what this host provides and its capabilities. | ||
0x0019 | NCD | OSERVICE__MAX_CONFIG_QUERY |
This is not currently documented. Want to contribute? | ||
0x001A | NCD | OSERVICE__MAX_CONFIG_REPLY |
This is not currently documented. Want to contribute? | ||
0x001B | NCD | OSERVICE__STORE_CONFIG |
This is not currently documented. Want to contribute? | ||
0x001C | NCD | OSERVICE__CONFIG_QUERY |
This is not currently documented. Want to contribute? | ||
0x001D | NCD | OSERVICE__CONFIG_REPLY |
This is not currently documented. Want to contribute? | ||
0x001E | Client | OSERVICE__SET_USERINFO_FIELDS |
This allows the client to set some of the fields in user info that are sent to every client. | ||
0x001F | Host | OSERVICE__PROBE_REQ |
Client verification request. | ||
0x0020 | Client | OSERVICE__PROBE_ACK |
Client verification reply. | ||
0x0021 | Host | OSERVICE__BART_REPLY |
This reply is used to tell the client that a BART item needs to be uploaded or changed. | ||
0x0022 | Client | OSERVICE__BART_QUERY2 |
This query sees if the BART IDs are available; OSERVICE__BART_REPLY2 is sent as a response. | ||
0x0023 | Host | OSERVICE__BART_REPLY2 |
This SNAC is sent on initial login about items in the personality section of the Feedbag. It is also used in response to a OSERVICE__BART_QUERY2. |
LOCATE (0x0002)
The LOCATE foodgroup allows the discovery and setting of personalization features such as signatures and away messages. The signature has been surfaced under many different names in NINA products, such as Profile, Buddy Info, and Get Info.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | LOCATE__ERR |
This is the error SNAC for the LOCATE foodgroup. | ||
0x0002 | Client | LOCATE__RIGHTS_QUERY |
This query is sent to the server by the client to discover what some of its rights are with respect to the PD SNAC group. | ||
0x0003 | Host | LOCATE__RIGHTS_REPLY |
This is the response to the LOCATE__RIGHTS_QUERY SNAC. | ||
0x0004 | Client | LOCATE__SET_INFO |
The client may set SIG, UNAVAILABLE, and CAPABILITIES type and data tags with this SNAC. | ||
0x0005 | Client | LOCATE__USER_INFO_QUERY |
Request user information for profiles, capabilities, away message, and certificates. | ||
0x0006 | Host | LOCATE__USER_INFO_REPLY |
This is the usual response to a LOCATE__USER_INFO_QUERY2 SNAC. | ||
0x0007 | Client | LOCATE__WATCHER_SUB_REQUEST |
Watcher sub request. | ||
0x0008 | Host | LOCATE__WATCHER_NOTIFICATION |
Watcher sub notification. | ||
0x0009 | Client | LOCATE__SET_DIR_INFO |
Set directory info. Host will reply LOCATE__SET_DIR_REPLY. | ||
0x000A | Host | LOCATE__SET_DIR_REPLY |
Reply to LOCATE__SET_DIR_INFO. | ||
0x000B | Client | LOCATE__GET_DIR_INFO |
Get directory information for user. Host should reply with LOCATE__GET_DIR_REPLY. | ||
0x000C | Host | LOCATE__GET_DIR_REPLY |
Host reply to LOCATE__GET_DIR_INFO. | ||
0x000D | NCD | LOCATE__GROUP_CAPABILITY_QUERY |
This is not currently documented. Want to contribute? | ||
0x000E | NCD | LOCATE__GROUP_CAPABILITY_REPLY |
This is not currently documented. Want to contribute? | ||
0x000F | Client | LOCATE__SET_KEYWORD_INFO |
Set profile keywords and interests. Host should reply with LOCATE__SET_KEYWORD_REPLY. | ||
0x0010 | Host | LOCATE__SET_KEYWORD_REPLY |
This is the host reply to LOCATE__SET_KEYWORD_REPLY. | ||
0x0011 | Client | LOCATE__GET_KEYWORD_INFO |
Set profile keywords and interests. Host should reply with LOCATE__SET_KEYWORD_REPLY. | ||
0x0012 | Host | LOCATE__GET_KEYWORD_REPLY |
This is the host reply to LOCATE__SET_KEYWORD_REPLY. | ||
0x0013 | Client | LOCATE__FIND_LIST_BY_EMAIL |
This is a query sent to the server that looks up a list of users by their email address and returns one NickwInfo for each email account queried. | ||
0x0014 | Host | LOCATE__FIND_LIST_REPLY |
This SNAC provides the results of the LOCATE__FIND_LIST_BY_EMAIL. | ||
0x0015 | Client | LOCATE__USER_INFO_QUERY2 |
This SNAC is sent by the client to perform the basic locate query on a user. |
BUDDY (0x0003)
The BUDDY foodgroup is used to send clients notifications about the state of other users in their Buddy List. This can also include information about other users that the client has expressed a temporary interest in. These temporary interests are only valid for the duration of the client's session.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | BUDDY__ERR |
This is the error SNAC for the BUDDY foodgroup. | ||
0x0002 | Client | BUDDY__RIGHTS_QUERY |
This SNAC is optionally sent by the client to discover the client's and user's rights. | ||
0x0003 | Host | BUDDY__RIGHTS_REPLY |
This is the response the host sends to a BUDDY__RIGHTS_QUERY SNAC. | ||
0x0004 | Client | BUDDY__ADD_BUDDIES |
Add buddy or buddies to Buddy List. | ||
0x0005 | Client | BUDDY__DEL_BUDDIES |
Remove buddy or buddies from Buddy List. | ||
0x0006 | Client | BUDDY__WATCHER_LIST_QUERY |
Query for other users who have current user listed. | ||
0x0007 | Host | BUDDY__WATCHER_LIST_RESPONSE |
Response to BUDDY__WATCHER_LIST_QUERY. | ||
0x0008 | Client | BUDDY__WATCHER_SUB_REQUEST |
Watcher sub request. | ||
0x0009 | Host | BUDDY__WATCHER_NOTIFICATION |
Watcher sub notification. | ||
0x000A | Host | BUDDY__REJECT_NOTIFICATION |
This is sent in the event that one or more of the users specified in the user's Buddy List are overloaded with watchers. | ||
0x000B | Host | BUDDY__ARRIVED |
This notification, potentially batched, indicates that one or more users on the client's Buddy List has signed on or updated their information. | ||
0x000C | Host | BUDDY__DEPARTED |
This potentially batched notification indicates that one or more users on the client's Buddy List has signed off. | ||
0x000F | Client | BUDDY__ADD_TEMP_BUDDIES |
This SNAC adds one or more users to the client's temporary Buddy List. | ||
0x0010 | Client | BUDDY__DEL_TEMP_BUDDIES |
This SNAC deletes one or more users from the client's temporary Buddy List. |
ICBM (0x0004)
ICBM, or Inter Client Basic Message, is a foodgroup focused around protocol messages that are sent between users or clients.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | ICBM__ERR |
This is the error SNAC for the ICBM foodgroup. | ||
0x0002 | Client | ICBM__ADD_PARAMETERS |
This SNAC is typically sent prior to sending the OSERVICE__CLIENT_ONLINE so that the host is properly initialized with the clients' preferences. | ||
0x0003 | Client | ICBM__DEL_PARAMETERS |
These are the delete all parameters for a given channel. | ||
0x0004 | Client | ICBM__PARAMETER_QUERY |
This SNAC requests ICBM parameters from the host. | ||
0x0005 | Host | ICBM__PARAMETER_REPLY |
This SNAC is sent by the host in response to a ICBM__PARAMETER_QUERY. | ||
0x0006 | Client | ICBM__CHANNEL_MSG_TOHOST |
This is the basic inter-client message after which the group was named (Inter-Client Basic Messages). | ||
0x0007 | Host | ICBM__CHANNEL_MSG_TOCLIENT |
This is the ICBM__CHANNEL_MSG_TOHOST after it has been reformatted by the host and sent to the destination client. | ||
0x0008 | Client | ICBM__EVIL_REQUEST |
This requests that the specified user is sent an EVIL notification. | ||
0x0009 | Host | ICBM__EVIL_REPLY |
The reply tells the requester, the sender of an ICBM__EVIL_REQUEST SNAC, how much EVIL, if any, was applied to the recipient. | ||
0x000A | Host | ICBM__MISSED_CALLS |
When the host is unable to send one or more messages to the client, the host sends this SNAC to the client to let it know that it missed some messages ("calls"). | ||
0x000B | Any | ICBM__CLIENT_ERR |
This error notice is one of the few SNACs that can be sent to the host and received by a client. | ||
0x000C | Host | ICBM__HOST_ACK |
This SNAC is sent by the host upon receipt of any ICBM__CHANNEL_MSG_TOHOST which includes the optional ICBM__TLV_TAGS_REQUEST_HOST_ACK TLV. | ||
0x000D | NCD | ICBM__SIN_STORED |
This is not currently documented. Want to contribute? | ||
0x000E | NCD | ICBM__SIN_LIST_QUERY |
This is not currently documented. Want to contribute? | ||
0x000F | NCD | ICBM__SIN_LIST_REPLY |
This is not currently documented. Want to contribute? | ||
0x0010 | Client | ICBM__SIN_RETRIEVE |
This requests ICBM__CHANNEL_MSG_TOCLIENT messages be generated for each of the stored ICBMs. Any message retrieved is deleted. | ||
0x0011 | NCD | ICBM__SIN_DELETE |
This is not currently documented. Want to contribute? | ||
0x0012 | NCD | ICBM__NOTIFY_REQUEST |
This is not currently documented. Want to contribute? | ||
0x0013 | NCD | ICBM__NOTIFY_REPLY |
This is not currently documented. Want to contribute? | ||
0x0014 | Any | ICBM__CLIENT_EVENT |
This SNAC is sent as a control message, sent by a client to inform the recipient of an event, or by the host informing of an event. | ||
0x0017 | Host | ICBM__SIN_REPLY |
The host successfully processed the request to retrieve all the offline messages. |
ADVERT (0x0005)
Legacy ad service used for requesting ads for display.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | ADVERT__ERR |
This is the error SNAC for the ADVERT foodgroup. | ||
0x0002 | Client | ADVERT__ADS_QUERY |
Request available advertisements. | ||
0x0003 | Host | ADVERT__ADS_REPLY |
List of ads for display and their corresponding URLs. |
INVITE (0x0006)
This is the foodgroup for inviting users to join NINA.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | INVITE__ERR |
This is the error SNAC for the INVITE foodgroup. | ||
0x0002 | Client | INVITE__REQUEST_QUERY |
This SNAC contains a request to send an invite to join NINA to a given email address. | ||
0x0003 | Host | INVITE__REQUEST_REPLY |
This SNAC is sent in reply to a successful INVITE__REQUEST_QUERY. |
ADMIN (0x0007)
Service for client control of passwords, screen name formatting, email address, and account confirmation.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | ADMIN__ERR |
This is the error SNAC for the ADMIN foodgroup. | ||
0x0002 | Client | ADMIN__INFO_QUERY |
Request account information. Host should reply with ADMIN__INFO_REPLY. | ||
0x0003 | Host | ADMIN__INFO_REPLY |
Reply to ADMIN__INFO_QUERY, may contain either account information or an error code and/or URL on failure. | ||
0x0004 | Client | ADMIN__INFO_CHANGE_REQUEST |
Change information request. Information may include screenname format, password, email address, and so on. Host will reply with ADMIN__INFO_CHANGE_REPLY. | ||
0x0005 | Host | ADMIN__INFO_CHANGE_REPLY |
This is the response for ADMIN__INFO_CHANGE_REQUEST and may either confirm changes or contain an error code and/or URL. | ||
0x0006 | Client | ADMIN__ACCT_CONFIRM_REQUEST |
Request to confirm account via email. | ||
0x0007 | Host | ADMIN__ACCT_CONFIRM_REPLY |
Response to ADMIN__ACCT_CONFIRM_REQUEST, may contain status change, pending email confirmation notice, or error message. | ||
0x0008 | Client | ADMIN__ACCT_DELETE_REQUEST |
Account delete request. Host will reply with ADMIN__ACCT_DELETE_REPLY. | ||
0x0009 | Host | ADMIN__ACCT_DELETE_REPLY |
The account delete reply will either contain confirmation or an error code and/or URL. |
POPUP (0x0008)
Displays popup notifications from service.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | POPUP__ERR |
This is the error SNAC for the POPUP foodgroup. | ||
0x0002 | Host | POPUP__DISPLAY |
Display popup message on client. Older ICQ clients may receive an IM instead. |
PD (0x0009)
The PD foodgroup is used for the control of Permit/Deny settings for the user.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | PD__ERR |
This is the error SNAC for the PD foodgroup. | ||
0x0002 | Client | PD__RIGHTS_QUERY |
This is a query sent to the host by the client to discover what some of its rights are with respect to the PD SNAC group. | ||
0x0003 | Host | PD__RIGHTS_REPLY |
This SNAC is the response to the PD__RIGHTS_QUERY SNAC. | ||
0x0004 | Client | PD__SET_GROUP_PERMIT_MASK |
Set group permission mask. | ||
0x0005 | Client | PD__ADD_PERM_LIST_ENTRIES |
Add user to permission/visible list. Users on this list will be able to see the client, even if it is invisible or has default-deny enabled. | ||
0x0006 | Client | PD__DEL_PERM_LIST_ENTRIES |
Delete user from permission/visible list. | ||
0x0007 | Client | PD__ADD_DENY_LIST_ENTRIES |
Add user to deny/invisible list. Users on this list will not see you online. Note that it can be overridden by PD__ADD_TEMP_PERMIT_LIST_ENTRIES. | ||
0x0008 | Client | PD__DEL_DENY_LIST_ENTRIES |
Delete user from deny/invisible list. | ||
0x0009 | Host | PD__BOS_ERR |
Error notification for permissions on the BOS host. | ||
0x000A | Client | PD__ADD_TEMP_PERMIT_LIST_ENTRIES |
This SNAC adds one or more entries to the temporary permit/visible list. A username in this list will bypass the Feedbag permit/deny lists and always be permitted. | ||
0x000B | Client | PD__DEL_TEMP_PERMIT_LIST_ENTRIES |
This SNAC deletes one or more entries in the temporary permit list. |
USER_LOOKUP (0x000A)
Look up users based on entered profile details, interests, and other user-provided details.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | USER_LOOKUP__ERR |
This is the error SNAC for the USER_LOOKUP foodgroup. | ||
0x0002 | Client | USER_LOOKUP__FIND_BY_EMAIL |
Search for other users by email address. | ||
0x0003 | Host | USER_LOOKUP__FIND_REPLY |
Response to search queries. |
STATS (0x000B)
Client-reported usage stats and other system information such as OS version.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | STATS__ERR |
This is the error SNAC for the STATS foodgroup. | ||
0x0002 | Host | STATS__SET_MIN_REPORT_INTERVAL |
Set client's minimum report interval. | ||
0x0003 | Client | STATS__REPORT_EVENTS |
Client event report. Typically this contains local system information. | ||
0x0004 | Host | STATS__REPORT_ACK |
Host acknowledgement of STATS__REPORT_EVENTS. |
TRANSLATE (0x000C)
Legacy translation service for older AIM clients.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | TRANSLATE__ERR |
This is the error SNAC for the TRANSLATE foodgroup. | ||
0x0002 | Client | TRANSLATE__REQUEST |
Client translate request. | ||
0x0003 | Host | TRANSLATE__REPLY |
Host response to TRANSLATE__REQUEST. |
CHAT_NAV (0x000D)
Chat navigation and invitation service.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | CHAT_NAV__ERR |
This is the error SNAC for the CHAT_NAV foodgroup. | ||
0x0002 | Client | CHAT_NAV__REQUEST_CHAT_RIGHTS |
Request client chat rights and limits. | ||
0x0003 | Client | CHAT_NAV__REQUEST_EXCHANGE_INFO |
Request chat exchange information. | ||
0x0004 | Client | CHAT_NAV__REQUEST_ROOM_INFO |
Request room information. | ||
0x0005 | Client | CHAT_NAV__REQUEST_MORE_ROOM_INFO |
Request extended room information. | ||
0x0006 | Client | CHAT_NAV__REQUEST_OCCUPANT_LIST |
Request occupant list of other users in the chat. | ||
0x0007 | Client | CHAT_NAV__SEARCH_FOR_ROOM |
Search for a specific room in a given public exchange. | ||
0x0008 | Client | CHAT_NAV__CREATE_ROOM |
Create room instance. | ||
0x0009 | Host | CHAT_NAV__NAV_INFO |
Navigation information response for requested information. |
CHAT (0x000E)
Chat service for all messages, joins, departures, room information, etc.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | CHAT__ERR |
This is the error SNAC for the CHAT foodgroup. | ||
0x0002 | Host | CHAT__ROOM_INFO_UPDATE |
Room information update. | ||
0x0003 | Host | CHAT__USERS_JOINED |
User or users join room notification. | ||
0x0004 | Host | CHAT__USERS_LEFT |
User or users left room notification. | ||
0x0005 | Client | CHAT__CHANNEL_MSG_TOHOST |
Channel message from client. | ||
0x0006 | Host | CHAT__CHANNEL_MSG_TOCLIENT |
Channel message to client. | ||
0x0007 | Client | CHAT__EVIL_REQUEST |
Chat evil request. | ||
0x0008 | Host | CHAT__EVIL_REPLY |
Chat evil reply. | ||
0x0009 | Any | CHAT__CLIENT_ERR |
Error from client or host related to chat. | ||
0x000A | Host | CHAT__PAUSE_ROOM_REQ |
Host request to client to pause all SNACs to chat. | ||
0x000B | Client | CHAT__PAUSE_ROOM_ACK |
Client confirmation of CHAT__PAUSE_ROOM_REQ. | ||
0x000C | Host | CHAT__RESUME_ROOM |
Host notification to client to resume SNACs. | ||
0x000D | Client | CHAT__SHOW_MY_ROW |
This is not currently documented. Want to contribute? | ||
0x000E | Client | CHAT__SHOW_ROW_BY_USERNAME |
This is not currently documented. Want to contribute? | ||
0x000F | Client | CHAT__SHOW_ROW_BY_NUMBER |
This is not currently documented. Want to contribute? | ||
0x0010 | Client | CHAT__SHOW_ROW_BY_NAME |
This is not currently documented. Want to contribute? | ||
0x0011 | NCD | CHAT__ROW_INFO |
This is not currently documented. Want to contribute? | ||
0x0012 | Client | CHAT__LIST_ROWS |
This is not currently documented. Want to contribute? | ||
0x0013 | NCD | CHAT__ROW_LIST_INFO |
This is not currently documented. Want to contribute? | ||
0x0014 | NCD | CHAT__MORE_ROWS |
This is not currently documented. | ||
0x0015 | Client | CHAT__MOVE_TO_ROW |
This is not currently documented. | ||
0x0016 | Client | CHAT__TOGGLE_CHAT |
This is not currently documented. | ||
0x0017 | Client | CHAT__SEND_QUESTION |
This is not currently documented. | ||
0x0018 | Client | CHAT__SEND_COMMENT |
This is not currently documented. | ||
0x0019 | Client | CHAT__TALLY_VOTE |
This is not currently documented. | ||
0x001A | Client | CHAT__ACCEPT_BID |
This is not currently documented. | ||
0x001B | Client | CHAT__SEND_INVITE |
This is not currently documented. | ||
0x001C | Client | CHAT__DECLINE_INVITE |
This is not currently documented. | ||
0x001D | Client | CHAT__ACCEPT_INVITE |
This is not currently documented. | ||
0x001E | NCD | CHAT__NOTIFY_MESSAGE |
This is not currently documented. | ||
0x001F | NCD | CHAT__GOTO_ROW |
This is not currently documented. | ||
0x0020 | Host | CHAT__STAGE_USER_JOIN |
This is not currently documented. | ||
0x0021 | Host | CHAT__STAGE_USER_LEFT |
This is not currently documented. | ||
0x0022 | NCD | CHAT__UNNAMED_SNAC_22 |
This is not currently documented. | ||
0x0023 | NCD | CHAT__CLOSE |
This is not currently documented. | ||
0x0024 | Client | CHAT__USER_BAN |
This is not currently documented. | ||
0x0025 | Client | CHAT__USER_UNBAN |
This is not currently documented. | ||
0x0026 | Host | CHAT__JOINED |
This is not currently documented. | ||
0x0027 | NCD | CHAT__UNNAMED_SNAC_27 |
This is not currently documented. | ||
0x0028 | NCD | CHAT__UNNAMED_SNAC_28 |
This is not currently documented. | ||
0x0029 | NCD | CHAT__UNNAMED_SNAC_29 |
This is not currently documented. | ||
0x0030 | Host | CHAT__ROOM_INFO_OWNER |
This is not currently documented. |
ODIR (0x000F)
User directory search, related to the USER_LOOKUP service, but allowing users to provide greater profile detail.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | ODIR__ERR |
This is the error SNAC for the ODIR foodgroup. | ||
0x0002 | Client | ODIR__INFO_QUERY |
Client request to search for user. | ||
0x0003 | Host | ODIR__INFO_REPLY |
Host response to ODIR__INFO_QUERY with list of found users or error code and/or URL. | ||
0x0004 | Client | ODIR__KEYWORD_LIST_QUERY |
Request a list of keywords, or interests, associated with user. | ||
0x0005 | Host | ODIR__KEYWORD_LIST_REPLY |
Host response to ODIR__KEYWORD_LIST_QUERY with list or error code and/or URL. |
BART (0x0010)
The Buddy Art, or BART, server provides access to the client for downloading image, sound, and xml assets for expressions for their buddies and themselves. Examples of BART items include Buddy icons, Buddy arrival sounds, and immersive wallpapers.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | BART__ERR |
This is the error SNAC for the BART foodgroup. | ||
0x0002 | Client | BART__UPLOAD_QUERY |
This SNAC uploads a custom item to the BART host. Only certain types allow custom items. | ||
0x0003 | Host | BART__UPLOAD_REPLY |
These are the results for an item requested with BART__UPLOAD_QUERY. | ||
0x0004 | Client | BART__DOWNLOAD_QUERY |
Legacy request buddy icon from host. | ||
0x0005 | Host | BART__DOWNLOAD_REPLY |
Legacy host response to a buddy icon request. | ||
0x0006 | Client | BART__DOWNLOAD2_QUERY |
This SNAC downloads an asset from the BART host. | ||
0x0007 | Host | BART__DOWNLOAD2_REPLY |
These are the results for an item requested with BART__DOWNLOAD2_QUERY. |
FEEDBAG (0x0013)
A Feedbag is the stored Buddy List and server based preferences for an AIM user. The client has direct access to manipulate the Feedbag in any way it sees fit, including corrupting it. The server has some checks in place to prevent destruction, but a client developer must be careful not to corrupt things.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | FEEDBAG__ERR |
This is the error SNAC for the FEEDBAG foodgroup. | ||
0x0002 | Client | FEEDBAG__RIGHTS_QUERY |
This SNAC issues a query to the host for the client's Feedbag rights and to let the system know what kind of Feedbag support it wants. | ||
0x0003 | Host | FEEDBAG__RIGHTS_REPLY |
This is the response to the FEEDBAG__RIGHTS_QUERY SNAC. | ||
0x0004 | Client | FEEDBAG__QUERY |
This SNAC is sent to query the Feedbag data stored on the host. | ||
0x0005 | Client | FEEDBAG__QUERY_IF_MODIFIED |
Similar to FEEDBAG__QUERY except contains a Unix epoch to check against in order to only send if modified. | ||
0x0006 | Host | FEEDBAG__REPLY |
This is the reply to FEEDBAG_QUERY. | ||
0x0007 | Client | FEEDBAG__USE |
Directs the host to use the specified stored Feedbag information. | ||
0x0008 | Any | FEEDBAG__INSERT_ITEM |
When this SNAC is sent to the host, the client is requesting that one or more new items are added to the Feedbag. | ||
0x0009 | Any | FEEDBAG__UPDATE_ITEM |
When this SNAC is sent to the host, the client is requesting to update one or more items. | ||
0x000A | Any | FEEDBAG__DELETE_ITEM |
When this SNAC is sent to the host, the client is requesting that one or more items be deleted from the Feedbag. | ||
0x000B | NCD | FEEDBAG__INSERT_CLASS |
This is not currently documented. | ||
0x000C | NCD | FEEDBAG__UPDATE_CLASS |
This is not currently documented. | ||
0x000D | NCD | FEEDBAG__DELETE_CLASS |
This is not currently documented. | ||
0x000E | Host | FEEDBAG__STATUS |
These are the results of one of the insert/update/delete item SNACs from above. | ||
0x000F | Host | FEEDBAG__REPLY_NOT_MODIFIED |
Response to client if Feedbag data is unmodified. | ||
0x0010 | NCD | FEEDBAG__DELETE_USER |
This is not currently documented. | ||
0x0011 | NCD | FEEDBAG__START_CLUSTER |
The cluster SNACs bracket a set of transactions that should be handled by clients as a group to avoid "flashing" the user's screen. | ||
0x0012 | NCD | FEEDBAG__END_CLUSTER |
This SNAC ends the data burst started with START_CLUSTER. See FEEDBAG__START_CLUSTER. | ||
0x0013 | Client | FEEDBAG__AUTHORIZE_BUDDY |
Grant authorization to another user. | ||
0x0014 | Client | FEEDBAG__PRE_AUTHORIZE_BUDDY |
Pre-authorize another user. | ||
0x0015 | Host | FEEDBAG__PRE_AUTHORIZED_BUDDY |
Host notification to a user that they have been pre-authorized. | ||
0x0016 | Client | FEEDBAG__REMOVE_ME |
Delete current user from another user's Buddy List. | ||
0x0017 | Client | FEEDBAG__REMOVE_ME2 |
This is not currently documented. | ||
0x0018 | Client | FEEDBAG__REQUEST_AUTHORIZE_TO_HOST |
Send authorization request. | ||
0x0019 | Host | FEEDBAG__REQUEST_AUTHORIZE_TO_CLIENT |
Host notice of authorization request from another user. | ||
0x001A | Client | FEEDBAG__RESPOND_AUTHORIZE_TO_HOST |
Send authorization response to FEEDBAG__REQUEST_AUTHORIZE_TO_CLIENT. | ||
0x001B | Host | FEEDBAG__RESPOND_AUTHORIZE_TO_CLIENT |
Host notice of grant or denial of authorization. | ||
0x001C | Host | FEEDBAG__BUDDY_ADDED |
Host notice that another user has added current user to their Buddy List. | ||
0x001D | NCD | FEEDBAG__REQUEST_AUTHORIZE_TO_BADOG |
This is not currently documented. | ||
0x001E | NCD | FEEDBAG__RESPOND_AUTHORIZE_TO_BADOG |
This is not currently documented. | ||
0x001F | NCD | FEEDBAG__BUDDY_ADDED_TO_BADOG |
This is not currently documented. | ||
0x0021 | Any | FEEDBAG__TEST_SNAC |
This is not currently documented. | ||
0x0022 | NCD | FEEDBAG__FORWARD_MSG |
This is not currently documented. | ||
0x0023 | NCD | FEEDBAG__IS_AUTH_REQUIRED_QUERY |
This is not currently documented. | ||
0x0024 | NCD | FEEDBAG__IS_AUTH_REQUIRED_REPLY |
This is not currently documented. | ||
0x0025 | NCD | FEEDBAG__RECENT_BUDDY_UPDATE |
This is not currently documented. |
ICQ (0x0015)
SNACs for ICQ-specific features, primarily in legacy ICQ clients which use OSCAR.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | ICQ__ERR |
This is the error SNAC for the ICQ foodgroup. | ||
0x0002 | Client | ICQ__DB_QUERY |
Information request used by legacy ICQ clients. | ||
0x0003 | Host | ICQ__DB_REPLY |
Host information response to ICQ__DB_QUERY. |
BUCP (0x0017)
One of the authentication methods for clients, which also provides registration for ICQ clients.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | BUCP__ERR |
This is the error SNAC for the BUCP foodgroup. | ||
0x0002 | Client | BUCP__LOGIN_REQUEST |
Client login request. | ||
0x0003 | Host | BUCP__LOGIN_RESPONSE |
Host login response, will contain reconnect information with login cookie or an error code and/or URL. | ||
0x0004 | Client | BUCP__REGISTER_REQUEST |
Client registration for legacy ICQ clients. | ||
0x0005 | Host | BUCP__REGISTER_RESPONSE |
Host response to BUCP__REGISTER_REQUEST. May contain confirmation of registration or an error code and/or URL. | ||
0x0006 | Client | BUCP__CHALLENGE_REQUEST |
Request challenge for login request. | ||
0x0007 | Host | BUCP__CHALLENGE_RESPONSE |
Response to BUCP__CHALLENGE_REQUEST with challenge. | ||
0x0008 | Client | BUCP__ASASN_REQUEST |
AOL Suggest A Screenname Request, suggests screennames based on other parameters. | ||
0x0009 | Host | BUCP__ASASN_RESPONSE |
Response to BUCP__ASASN_REQUEST with a list of suggestions | ||
0x000A | Host | BUCP__SECURID_REQUEST |
Host SecurID request for client to continue logging in. | ||
0x000B | Client | BUCP__SECURID_RESPONSE |
Client response to BUCP__SECURID_RESPONSE with SecurID code. | ||
0x000C | Client | BUCP__REGISTRATION_IMAGE_REQUEST |
Request registration image, or CAPTCHA | ||
0x000D | Host | BUCP__REGISTRATION_IMAGE_REPLY |
Response to BUCP__REGISTRATION_IMAGE_REQUEST containing image information |
ALERT (0x0018)
Server alerts from subscribed services.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | ALERT__ERR |
This is the error SNAC for the ALERT foodgroup. | ||
0x0002 | NCD | ALERT__SET_ALERT_REQUEST |
This is not currently documented. | ||
0x0003 | NCD | ALERT__SET_ALERT_REPLY |
This is not currently documented. | ||
0x0004 | NCD | ALERT__GET_SUBS_REQUEST |
This is not currently documented. | ||
0x0005 | NCD | ALERT__GET_SUBS_RESPONSE |
This is not currently documented. | ||
0x0006 | Client | ALERT__NOTIFY_CAPABILITIES |
This is not currently documented. | ||
0x0007 | Host | ALERT__NOTIFY |
This is not currently documented. | ||
0x0008 | NCD | ALERT__GET_RULE_REQUEST |
This is not currently documented. | ||
0x0009 | NCD | ALERT__GET_RULE_REPLY |
This is not currently documented. | ||
0x000A | NCD | ALERT__GET_FEED_REQUEST |
This is not currently documented. | ||
0x000B | NCD | ALERT__GET_FEED_REPLY |
This is not currently documented. | ||
0x000D | NCD | ALERT__REFRESH_FEED |
This is not currently documented. | ||
0x000E | NCD | ALERT__EVENT |
This is not currently documented. | ||
0x000F | NCD | ALERT__QOG_SNAC |
This is not currently documented. | ||
0x0010 | NCD | ALERT__REFRESH_FEED_STOCK |
This is not currently documented. | ||
0x0011 | NCD | ALERT__NOTIFY_TRANSPORT |
This is not currently documented. | ||
0x0012 | NCD | ALERT__SET_ALERT_REQUEST_V2 |
This is not currently documented. | ||
0x0013 | NCD | ALERT__SET_ALERT_REPLY_V2 |
This is not currently documented. | ||
0x0014 | NCD | ALERT__TRANSIT_REPLY |
This is not currently documented. | ||
0x0015 | NCD | ALERT__NOTIFY_ACK |
This is not currently documented. | ||
0x0016 | Client | ALERT__NOTIFY_DISPLAY_CAPABILITIES |
This is not currently documented. | ||
0x0017 | NCD | ALERT__USER_ONLINE |
This is not currently documented. |
PLUGIN (0x0022)
This foodgroup provides update and release information for client plugins, provided the client is officially supported.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | PLUGIN__ERR |
This is the error SNAC for the PLUGIN foodgroup. | ||
0x0002 | Client | PLUGIN__UPDATE_QUERY |
Ask host if provided plugins have available updates. | ||
0x0003 | Host | PLUGIN__UPDATE_REPLY |
Host response to PLUGIN__UPDATE_QUERY listing updates, if any, that are available. |
UNNAMED_FG_24 (0x0024)
This service is yet to be fully documented.
Read More
No SNACs yet documented.
MDIR (0x0025)
This service is yet to be fully documented.
Read More
No SNACs yet documented.
ARS (0x044A)
NINA-provided third-party connection for rendezvous/direct connections between clients behind firewalls.
Read More
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | ARS__ERR |
This is the error SNAC for the ARS foodgroup. | ||
0x0002 | Client | ARS__LISTEN_QUERY |
First SNAC sent to host from client when creating an ARS connection. | ||
0x0003 | Host | ARS__LISTEN_REPLY |
Listen acknowledgement. | ||
0x0004 | Client | ARS__CONNECT_REQ |
First SNAC sent to the host when "receiving" a connection over an ARS server. | ||
0x0005 | Host | ARS__CONNECT_ACK |
Indication from host that the ARS initialization process has finished. |