AIM/Oscar Protocol Specification: Section 6: Gathering Member Information



6.0 Gathering Member Information

Although not really very useful, several nuggets of information can be obtained about other AIM and AOL users through the OSCAR BOS.

The lifetime of the information AIM BOS can provide you with is extremely limited. Basically, you can only access a user's information while they are online. The AIM servers do not store any information about users if they are not logged onto the service. Please be aware of this.

6.1 Gathering the Basics

Information that is very simple to gather includes:

  • Member Class
  • Warning Level
  • Idle Time
  • Time of Signon
  • Date when Member began their AOL/AIM account

These five things can be obtained simply by adding that screen name to your buddy list and waiting until they come online. The "oncoming buddy" command documented above provides the transport for this information. If you want information about a user and don't want to add them to your buddy list, please see the next subsection.

6.2 Getting a Personal Profile

There's a specific command that the client issues to the server in order to request all available information about a user. This is the "Request Member Information" command and is documented in the following table. This is fairly self-explanatory command.

Fig 6.2.1 Request Member Information Command
PositionLengthData
1Word0x0002
3Word0x0005
5Word0x0000
7DWordRequest ID
11Word Requested Information *
13ByteSN Length
14ASCII StringScreen Name (not terminated)

After the client sends that, the server sends back either the "User Information Response" command, or the "Invalid User Information Request". The latter almost always means that the user you requested information for is not logged on.

* Note that you can request one of two things here (as far as we know right now) -- 0x0001 will return the users profile, and 0x0003 will return the users away message (if any). What you actually get in both cases is either the 0x0001 and 0x0002 TLVs (that are set when you send up your profile/away message) or the 0x0003 and 0x0004 TLVs. Check the 0x0002/0x0004 SNAC for more information on this.

** Something else to note: it appears that requesting a datum of 0x0005 will not return the users capability block. I've also attempted to send up a TLV with type 0x0007 to the server during the login process, but requesting it back through this mechanism didn't yield any results, although AIM took the 0x0007 TLV ok.

Fig 6.2.2 User Information Response Command

This table has been moved to here.

Fig 6.2.3 Invald User Information Request Command
PositionLengthData
1Word0x0002
3Word0x0001
5DWordID of the Request that failed
9Word0x0004

Request IDs: You must pick a request ID to send up in the reqest so that you can identify the response to the request later. Normally, the request response will not contain any of the information from the origial request and therefore will be useless if you don't know what it's in response to! They're kind of like sequence numbers, but they're not as strict. Reqest IDs are always 32-bit DWords.

6.3 Finding People

The OSCAR BOS (basic services) allows a few rudimentrary methods of locating other AIM and AOL users.

6.3.1 Finding by EMail Address

A "find SN by email address" request is facilitated by the "Request Screen Name by Address" command in next table.

Fig 6.3.1.1 Request Screen Name by Address
PositionLengthData
1Word0x000a
3Word0x0002
5Word0x0000
7DWordRequest ID
11ASCII StringEmail Address (unterminated)

Please notice the lack of a length byte/word prefixed to the email address. It's kind of strange for this derivation in behavior, but AOL can do what they want.

The server's response to that is the "Search by Address Response" command, explaned in the next table. Please note that there may be several screen names per email address.

Fig 6.3.1.2 Search by Address Response
PositionLengthData
1Word0x000a
3Word0x0003
5Word0x0000
7DWordRequest ID
11*Word0x0001
13*WordSN Length
15*ASCII StringSN (unterminated)
* Field repeats for every listed screen name.

And if no screen names are found, we get the "Search by Address Response Fail" command below.

Fig 6.3.1.3 Search by Address Fail
PositionLengthData
1Word0x000a
3Word0x0001
5Word0x0000
7DWordRequest ID
11Word0x0014

6.3.2 Finding by Name

It would appear that AIM no longer has the feature of being able to find by name. That now takes you to the address: http://www.aol.com/netfind/whitepages.html. I sure thought it used to do this....

 


Adam Fritzler
Scott Werndorfer
Last modified: Wed Jun 21 19:15:03 EST 2000