Protocols/OSCAR/Foodgroups/ICQ/Search Sequence

From NINA Wiki
Jump to navigation Jump to search
OSCAR Protocol
UUIDsErrorsTool IDs
Host Interaction
Rate LimitsMigrationMessages
Other Services
Sign OnBARTRendezvous
OSERVICE (0x0001)
LOCATE (0x0002)
BUDDY (0x0003)
ICBM (0x0004)
ADVERT (0x0005)
INVITE (0x0006)
ADMIN (0x0007)
POPUP (0x0008)
PD (0x0009)
STATS (0x000B)
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)

From Aleksandr Shutko: ICQ Search sequences in OSCAR protocol

 OSCAR sequences   

  ICQ search sequences description

     ICQ clients use family 0x15 for search. This family was added by AOL programmers for compatibility with old ICQ server database engine. There is many search types: uin search, details (nick, firstname, lastname, email) search, whitepages search. Currently there is two search formats supported: old-style plain format and new tlv-based format. Both plain and tlv formats support wildcards in search fields, but plain version has separate requests for this future.

     After request were sent server should reply via SNAC(15,03)/07DA/01A4, ..... , SNAC(15,03)/07DA/01A4, SNAC(15,03)/07DA/01AE sequence. It also can send only SNAC(15,03)/07DA/01AE packet when one user found. When search return no users server sends empty SNAC(15,03)/07DA/01AE with result flag != 0x0A

 Typical search sequence
  >>   SNAC(15,02)/07D0/05xx   Client sends search request
  <<   SNAC(15,03)/07DA/01A4   Server sends found user #1 info
  <<   ...   ...
  <<   SNAC(15,03)/07DA/01A4   Server sends found user #N-1 info
  <<   SNAC(15,03)/07DA/01AE   Server sends last user #N found info

  ICQ search plain requests

     These requests named "plain" because they contain plain search strings and numbers. This information is not structured and these fields placed in strict defined order. If string is empty or number=0 it is doesn't used in search.

 Search requests (plain)
  SNAC(15,02)/07D0/051F   Search by uin plain request
  SNAC(15,02)/07D0/0515   Search by details plain request
  SNAC(15,02)/07D0/053D   Search by details plain wildcard request
  SNAC(15,02)/07D0/0529   Search by email plain request
  SNAC(15,02)/07D0/0547   Search by email plain wildcard request
  SNAC(15,02)/07D0/0533   Whitepages search plain request
  SNAC(15,02)/07D0/0551   Whitepages search plain wildcard request

  ICQ search tlv-based requests

     These requests information placed in TLV chains. So it is structured. Client should put only needed fields to these requests. This set doesn't contain search by details request because it was replaced by white pages search.

 Search requests (tlv-based)
  SNAC(15,02)/07D0/0569   Search by uin tlv-based request
  SNAC(15,02)/07D0/0573   Search by email tlv-based request
  SNAC(15,02)/07D0/055F   Whitepages search tlv-based request