What's new?
This release greatly expands ICQ support to most of the Windows ICQ lineup from the late 1990s through 2005, plus popular third-party clients.
✨ Features
- Legacy ICQ protocol (pre-OSCAR): Connect vintage UDP-based clients including ICQ 98x, ICQ 99x, and Groupware. The server listens on UDP port 4000 by default (
ICQ_LEGACY_ENABLED=true). Protocol versions V2–V5 are supported out of the box; V1 (ICQ 1.02 Beta, 1996) is available experimentally. @VasylSamoilov - OSCAR-based ICQ clients: Full setup support for ICQ 2001x, ICQ 2002x, ICQ 2003x, ICQ 4, and ICQ 5 — in addition to the existing ICQ 2000b support. @mk6i
- Cross-protocol messaging: AIM and ICQ users can authorize and exchange instant messages. @mk6i
- Third-party clients: Improved compatibility with Jimm and QIP. @mk6i
See the ICQ Client Setup Guide for client installation and configuration instructions.
🐛 Bug Fixes
- Fixed regression that broke chat departure notifications.
🙏 Shout outs
- @VasylSamoilov for contributing the legacy ICQ implementation.
- @DmytroHorbachov for reporting Jimm bugs and helping test fixes.
Changelog
- 8c0fab9 update ICQ client setup documentation
- 2bfb409 fix missing chat departure regression
- 1c66c67 forward offline aim messages to icq clients
- 05ea138 icqlegacy: fix presence at login
- 794feed icqlegacy: unit test v1-v4 handlers
- bfd460f icqlegacy: unit test v5_handler.go
- cc1665c record "you were added notifications" for legacy icq clients
- 1be4363 RespondAuthorizeToHost: set UIN for legacy buddy-added ICBM
- 189bbb3 fix offline message delivery in ICQlite
- e9a997e de-dupe icq "you-were-added" notifications
- 6ba0866 correct feedbag extended info field
- 25cb1a3 fix ICQ 5 user info request error 117
- a01f295 fix missing ICQ 5 authorization message
- 858d316 stop sending presence to users you have not yet authorized
- 4fd8e48 fix crash that occurs when adding users in icqlite
- 4be51e1 fix hanging search results in ICQ 5
- 0b58564 fix blank IMs in ICQlite (v4+v5)
- d39e218 Add tooling section for JetBrains
- 17fd76b fix ICQ 5 presence not firing at login
- 531fbb2 thread ICQ SNAC request IDs and fix white-pages search replies
- 9e2b640 drop signon TLVs, fixes jim login
- 872c406 gracefully unmarshal Jimm LocateSetInfo SNAC
- d49e1bf upgrade to go 1.26.2
- bd3a8ad fix all golangci-lint reports
- 2904e4d search by all TLV combos in FindByWhitePages2
- b5fdb7e icq: SetFullInfo, wire quirks, originally-from columns
- 5bf363b implement auth flow btwn aim and icq
- 2f1deec remove setter/nil checks
- b300a34 consolidate icq authorization logic
- 613e734 icqlegacy: remove redundant offline message sending
- ef26496 so far
- 02f9f6d icqlegacy: hook into ICBM service for message passing
- fbf0276 implement SNAC(0x13,0x14) FEEDBAG__PRE_AUTHORIZE_BUDDY with authorization checks
- 267b09e wire up auth flows b/t feedbag and non-feedbag clients
- 77bd55d icq: authRequired is true when 0
- 1813e0f icq: authRequired is true when 0
- 1d3db40 re-gen config
- 2b0f5d2 Merge pull request #180 from VasylSamoilov/main
- 730f5a6 fix: regenerate mocks and update tests for ICQ legacy interface changes
- d5ada5e Merge pull request #171 from VasylSamoilov/main
- 6272542 feat: ICQ legacy protocol support (V2-V5)
- 0e3ec50 ICQ legacy protocol support (V2-V5)
- 4389689 feedbag_list: delete group items with group
- 7bd4043 feedbag bug: deleting 1 group deletes all groups
- 1bf3e69 export feedbag list type
- f396468 icq: require authorization by default
- 14a30ab fix webapi startup NPEs
- 5518762 Update README with Pidgin IM image and caption
