OSCAR uses UUIDs in several places to express what kind of capabilities a client has and what features it would like the server to support. The nice thing about UUIDs is there does not have to be a central registry since they are unique when created. There are many websites and tools out there that will create a UUID. UUIDs are also sometimes known as GUIDs.
UUIDs are transmitted as 16 bytes of binary data; however in documents they are written down in string form like 09460000-4C7F-11D1-8222-444553540000.
At some point it was decided that full UUIDs were too verbose for common capabilities, so AIM uses both full UUIDs and what are called "short UUIDs" or "Short Caps". A "Short Cap" is really a UUID of the form 0946XXYY-4C7F-11D1-8222-444553540000 where XXYY is the short cap. A client receives short caps if it asserts the short cap capability. If a client does not assert the short caps UUID, it will get most caps in long form. Some APIs only take UUIDs In those cases the long form of a short cap should be sent.
Client and library developers should feel free to create valid new UUIDs, just do not create new "Short Caps". If developers would like to publish their UUIDs and what they mean, we will be happy to document them here.
Name
|
UUID
|
Notes
|
SHORT_CAPS
|
09460000-4C7F-11D1-8222-444553540000
|
Client support short caps
|
SECURE_IM
|
09460001-4C7F-11D1-8222-444553540000
|
Client supports SECURE_IM
|
XHTML_IM
|
09460002-4C7F-11D1-8222-444553540000
|
Client supports XHTML profile and ims instead of AOLRTF
|
RTCVIDEO
|
09460101-4C7F-11D1-8222-444553540000
|
Client supports SIP/RTP video
|
HAS_CAMERA
|
09460102-4C7F-11D1-8222-444553540000
|
Client has a camera
|
HAS_MICROPHONE
|
09460103-4C7F-11D1-8222-444553540000
|
Client has a microphone
|
RTCAUDIO
|
09460104-4C7F-11D1-8222-444553540000
|
Client supports RTCAUDIO
|
HOST_STATUS_TEXT_AWARE
|
0946010A-4C7F-11D1-8222-444553540000
|
Client supports new status message features
|
RTIM
|
0946010B-4C7F-11D1-8222-444553540000
|
Client support "see as I type" IMs
|
SMART_CAPS
|
094601FF-4C7F-11D1-8222-444553540000
|
Client only asserts caps for services it is participating in
|
FILE_TRANSFER
|
09461343-4C7F-11D1-8222-444553540000
|
File transfer
|
DIRECT_ICBM
|
09461345-4C7F-11D1-8222-444553540000
|
P2p ims
|
FILE_SHARING
|
09461348-4C7F-11D1-8222-444553540000
|
File sharing
|
SUPPORT_ICQ
|
0946134D-4C7F-11D1-8222-444553540000
|
Client supports talking to ICQ users
|
From Aleksandr Shutko: Capabilities
|
Capability is a 16-byte array that represent specific ability of IM client
(AIM or ICQ). For example there is RTF-capability meaning that client supports
RTF messages. Each client has its own capability list and it use
|SNAC(02,04) to send this list to server.
All native clients was built using COM technology. So capability is a CLSID -
ID of client COM object that handle specific client ability (RTF-messages,
buddy icons, chat, crypting, games). Here is the list of known CLSIDs:
|
(AIM) |
{09461341-4C7F-11D1-8222-444553540000} |
|
Client supports voice chat. Currently used only by AIM service and AIM clients.
|
|
|
|
|
|
(AIM) |
{09461342-4C7F-11D1-8222-444553540000} |
|
Client supports direct play service. This capability currently used by AIM service and AIM clients.
|
|
|
|
|
|
(AIM) |
{09461343-4C7F-11D1-8222-444553540000} |
|
Client supports file transfer (can send files). Currently used only by
AIM service and AIM clients.
|
|
|
|
|
|
(ICQ) |
{09461344-4C7F-11D1-8222-444553540000} |
|
Something called "route finder". Currently used
only by ICQ2K clients.
|
|
|
|
|
|
(AIM) |
{09461345-4C7F-11D1-8222-444553540000} |
|
Client supports DirectIM/IMImage. This capability currently used by AIM service and AIM clients.
|
|
|
|
|
|
(AIM) |
{09461346-4C7F-11D1-8222-444553540000} |
|
Client supports avatar service. This capability currently used by AIM service and AIM clients.
|
|
|
|
|
|
(AIM) |
{09461347-4C7F-11D1-8222-444553540000} |
|
Client supports stocks (add-ins). This capability currently used by AIM service and AIM clients.
|
|
|
|
|
|
(AIM) |
{09461347-4C7F-11D1-8222-444553540000} |
|
Client supports stocks (add-ins). This capability currently used by AIM service and AIM clients.
|
|
|
|
|
|
(AIM) |
{09461348-4C7F-11D1-8222-444553540000} |
|
Client supports filetransfers (can receive files). This capability currently used by AIM service and AIM clients.
|
|
|
|
|
|
(ICQ) |
{09461349-4C7F-11D1-8222-444553540000} |
|
Client supports channel 2 extended, TLV(0x2711) based messages. Currently used
only by ICQ clients. ICQ clients and clones use this GUID as message format
sign. Trillian client use another GUID in channel 2 messages to implement
its own message format (trillian doesn't use TLV(x2711) in SecureIM
channel 2 messages!).
|
|
|
|
|
|
(AIM) |
{0946134A-4C7F-11D1-8222-444553540000} |
|
Client supports games. This capability currently used by AIM service and AIM clients.
|
|
|
|
|
|
(AIM) |
{0946134A-4C7F-11D1-2282-444553540000} |
|
Indeed, there are two of games caps. The previous appears to be correct,
but in some versions of winaim, this one is set. Either they forgot to fix
endianness, or they made a typo. It really doesn't matter which because the
meaning of them is the same.
|
|
|
|
|
|
(AIM) |
{0946134B-4C7F-11D1-8222-444553540000} |
|
Client supports buddy lists transfer. This capability currently used by AIM service and AIM clients.
|
|
|
|
|
|
(AIM) |
{0946134D-4C7F-11D1-8222-444553540000} |
|
Setting this lets AIM users receive messages from ICQ users, and ICQ users receive
messages from AIM users. It also lets ICQ users show up in buddy lists for AIM
users, and AIM users show up in buddy lists for ICQ users. And ICQ
privacy/invisibility acts like AIM privacy, in that if you add a user to your deny
list, you will not be able to see them as online (previous you could still see them,
but they couldn't see you.
|
|
|
|
|
|
(AIM) |
{0946134E-4C7F-11D1-8222-444553540000} |
|
Client supports UTF-8 messages. This capability currently used by AIM service and AIM clients.
|
|
|
|
|
|
(ICQ) |
{97B12751-243C-4334-AD22-D6ABF73F1492} |
|
Client supports RTF messages. This capability currently used by ICQ service and ICQ clients.
|
|
|
|
|
|
(ICQ) |
{A0E93F37-4C7F-11D1-8222-444553540000} |
|
Unknown capability This capability currently used only by ICQ2001/ICQ2002 clients.
|
|
|
|
|
|
(ICQ) |
{10CF40D1-4C7F-11D1-8222-444553540000} |
|
Unknown capability This capability currently used only by ICQ2002 client.
|
|
|
|
|
|
(ICQ) |
{2E7A6475-FADF-4DC8-886F-EA3595FDB6DF} |
|
Unknown capability This capability currently used only by ICQ2001 client.
|
|
|
|
|
|
(ICQ) |
{563FC809-0B6f-41BD-9F79-422609DFA2F3} |
|
Unknown capability This capability currently used only by ICQLite/ICQ2Go clients.
|
|
|
|
|
|
(AIM) |
{748F2420-6287-11D1-8222-444553540000} |
|
Client supports chat service. This capability currently used by AIM service and AIM clients.
|
|
|
|
|
|
(ICQ) |
{F2E7C7F4-FEAD-4DFB-B235-36798BDF0000} |
|
Client supports trillian SecureIM channel-2 messages. This capability currently used by Trillian clients.
|
|
|
|
|
|
(ICQ) |
{97B12751-243C-4334-AD22-D6ABF73F14xx} |
|
This is not cpability at all. This GUID used by SIM/Kopete clients to detect same
clients version.
|
|
|
|
|
|
|
|
|
|
From Aleksandr Shutko: Changes in new AIM clients
Changes discovered in new AIM clients by John Roark |
|
|
|
|
|
I have been investigating the latest versions of AIM (5.2.3277) and
found that capability CLSIDs are not passed with BUDDY__ARRIVED
anymore... That is TLV(0x000D) still comes with SNAC(03,0B) but it only
contains CLSIDs not of the form {0946xxxx-4C7F-11D1-8222-444553540000}
like the chat CLSID {748F2420-6287-11D1-8222-444553540000}. instead
SNAC(03,0B) contains a new TLV of type 0x0019 that contains a list of
two byte CLSID diffs for example the following CLSIDs:
0946134A 4C7F 11D1 8222 444553540000
0946134B 4C7F 11D1 8222 444553540000
0946134D 4C7F 11D1 8222 444553540000
09461341 4C7F 11D1 8222 444553540000
09460000 4C7F 11D1 8222 444553540000
09461343 4C7F 11D1 8222 444553540000
094601FF 4C7F 11D1 8222 444553540000
09460001 4C7F 11D1 8222 444553540000 <-- new CLSID for encryption
09461345 4C7F 11D1 8222 444553540000
09461346 4C7F 11D1 8222 444553540000
09461347 4C7F 11D1 8222 444553540000
Is now represented as just:
134A
134B
134D
1341
0000
1343
01FF
0001 -- encryption
1345
1346
1347
I can confirm this for ICQ (currently ICQ2003b & ICQLite4.1). This is not
replacement for 0x0D tlv, but just the effective try to reduce traffic from ICQ servers.
You can found TLV(0x0D) & TLV(0x19) in single packet.
| |
|
|
|
|
Changes discovered in new AIM clients by John Roark
I have been investigating the latest versions of AIM (5.2.3277) and
found that capability CLSIDs are not passed with BUDDY__ARRIVED
anymore... That is TLV(0x000D) still comes with SNAC(03,0B) but it only
contains CLSIDs not of the form {0946xxxx-4C7F-11D1-8222-444553540000}
like the chat CLSID {748F2420-6287-11D1-8222-444553540000}. instead
SNAC(03,0B) contains a new TLV of type 0x0019 that contains a list of
two byte CLSID diffs for example the following CLSIDs:
0946134A 4C7F 11D1 8222 444553540000
0946134B 4C7F 11D1 8222 444553540000
0946134D 4C7F 11D1 8222 444553540000
09461341 4C7F 11D1 8222 444553540000
09460000 4C7F 11D1 8222 444553540000
09461343 4C7F 11D1 8222 444553540000
094601FF 4C7F 11D1 8222 444553540000
09460001 4C7F 11D1 8222 444553540000 <-- new CLSID for encryption
09461345 4C7F 11D1 8222 444553540000
09461346 4C7F 11D1 8222 444553540000
09461347 4C7F 11D1 8222 444553540000
Is now represented as just:
134A
134B
134D
1341
0000
1343
01FF
0001 -- encryption
1345
1346
1347
I can confirm this for ICQ (currently ICQ2003b & ICQLite4.1). This is not
replacement for 0x0D tlv, but just the effective try to reduce traffic from ICQ servers.
You can found TLV(0x0D) & TLV(0x19) in single packet.