ICQ protocol plugin for Miranda IM (Joe) ________________________________________ About _____ This Miranda IM plugin makes it possible to connect to the ICQ instant messenger network and communicate with other ICQ users. Known Problems ______________ - In Invisible mode, when other side is not in visible list messages are sometimes received twice from some clients (it is a problem of that clients, they do send them twice) - When synchronising server-list, users get added with await auth flag or receive added message. The way which ICQ servers handle authorizations, we cannot do it better - when uploading contacts to server account has to be a new one, then contacts can be added and uploaded without auth... If the account is an old one they cannot be added without auth if they require one. So they are added with flag awaiting auth. With the new Manage server list contacts added contacts should never receive auth requests, but if you have an old account they can receive added notification. - Some wicked firewall software can cause HTML tags (e.g. ) to be added to incoming messages. - With HTTP Proxy Mode in Connection settings, neither Avatars nor File Transfer can work. This is partly a limitation of current Miranda's network module implementation. But File Transfer cannot work with HTTP Proxy, that is a protocol limitation. TO-DO List __________ 0.6 Multi-user chat Mid-NetLib module for HTTP gateway (for Avatars to work) [icq_net] 0.5 Full support for sub-groups in Manage server-list dialog Simple sub-groups support (optional) Changes _______ 0.5 Development Bugfixes: Fixed receiving of multi-part messages (only first part was received) Fixed processing of UTF-8 encoded status messages from QIP Fixed AIM away message handling (caused online status to be seen as away in some clients) New Features Account management (requires Miranda IM 0.8 and newer) New user details protocol support Added support for status notes & moods (introduced by ICQ6) Improvements: URL events are now received as normal messages Use new offline messages protocol (supports unicode) Ability to send/receive contacts to/from ICQ6 and AIM Server-list support now groups requests - much more faster & reliable Improved ChangeInfo module compatibility with screen readers Client detection improvements Avatars are now retrieved even for offline contacts 0.3.9.5 Bugfixes: Fixed connection problems with many contacts in server-list Do not lose server-list contacts due to too long nicknames/comments Improvements: Reinvented known spam bot blocking 0.3.9.4 Improvements: Added ability to handle malformed UCS-2 encoded offline messages Fixed possible local buffer overflow 0.3.9.3 Bugfixes: Fixed problem with utf-8 message API and some message plugins (weird chars) Fixed double Avatar pages in User Details for newer Miranda IM 0.3.9.2 Bugfixes: Fixed possible memory corruption caused by malformed langpack Added support for new utf-8 message API (when available) Fixed possible rare problems with Folders plug-in support Other minor fixes merged from trunk (0.3.10.x Development) 0.3.9.1 Bugfixes: Fixes several minor problems Improvements: Oscar File Transfers now fully handle directory transfers 0.3.9 Bugfixes: Fixed peer-to-peer session cookie checking (was working only due to coincidence) Fixed SMS message handling, made message parsing more consistent Applied fix for re-requesting authorization (thx Bio) Fixed handling of message acks & status msg replies from ICQ 6 Fixed handling of malformed messages acks Minor fixes for Popup plugin support Minor protocol related tweaks Fixed possible lags caused by typing notifications (on slow connections) Fixed message handling (fixes bug used for stealth invisibility detection) Several fixes to Rate Level 2 handling - more propper handling of message responses New Features: Oscar File Transfers - like icq5 (including: transfer thru server, resume) Improvements: Client detection improvements Level 1 Rate management (global) - should solve problems with many contacts in list Support for Custom Profile Folders plug-in - configurable avatars cache folder Ability to send long offline messages (up to 4096 characters) Messsage Error handling is now complete (no more disconnections on long msgs) Support for Aim contacts enhanced Better support for Miranda Ignore module 0.3.7.5 Bugfixes: Fixed possible crash in avatar queue Fixed special character conversion in Custom Status messages Minor changes to client detection 0.3.7.4 Bugfixes: Some small fixes to Custom Status API Fixed possible buffer overrun problem in status change packet handling Some avatar related fixes Improvements: Added avatar validity checking 0.3.7.3 Bugfixes: Fixed HTTP/HTTPS proxy support (removed useless gateway option), long messages are now sent properly Improved status change handling (can handle broken packets) 0.3.7.2 Bugfixes: Fixes possible buffer overflow with contact status change Fixed migration was not working at all (should not disconnect so often on server's upgrading) Fixed offline greeting cards were not processed properly Fixed small protocol glitch with reverse peer-to-peer connection 0.3.7.1 Bugfixes: Fixed possible hang on exit Fixed avatars were not working when server port set to 0 Made message parser more strict (fixes bug allowing stealth invisible client detection) Fixed Popup's unicode support cannot be used in ANSI mode even if available Improvements: Added new session password API - allowing plugins like Secure Login to work better 0.3.7 Bugfixes: Our own contact in list now correctly handles events Proxy Gateway mode is working again File receiving from Trillian clients work again Incorporated some bugfixes from ISee (thx Bio) Message errors are now really displayed Fixed memory leak in avatar code File transfers with GnomeICU works now Fixed changing password in ICQ Details will not save it to DB if not there Fixed PING channel handling (caused connection drop) Fixed bug in changeinfo with translated listbox values (thx Bio) Fixed error handling in avatar code for uploading avatar Fixed bug in Manage-Server list dialog, caused hang Fixed occasional losing of messages (message parsing was incomplete) Server-list management now stores all info - solves problems Fixed unknown errors during login were not reported sometimes New Features: Messaging support enhanced (P2P messaging supported) Direct Connection support rewritten (with P2P messaging and reverse file-transfers) Temporary Visible List support New Features page in options to configure extra features Custom statuses just like icq5 - needs clist_mw derivative (thx Big Muscle) New custom status icons (thx Angeli-ka) Enhanced Unicode & Ansi charsets support (each contact can have its own codepage) AIM cross-compatability (add/remove, search by mail, status, messaging, away messages) Secure MD5 login authentification Revoke authorization (Advanced Feature - see further) - removes you from contact's server-list Improvements: Advanced search now can use newer method (thx Bio) Better protocol error handling Slightly better avatar handling Detects some spam bots & ability to block known spam bots Merged with ChangeInfo (thx Bio) Added possibility to remember password for session Added possibility to retrieve away message from libgaim clients Added status to UserInfo page Small improvements to client detection Uses newer capabilities format (cuts incoming traffic) Display error messages using PopUp Plugin Support for Iconlib Plugin Support for unicode database module (clist data) Level 2 Rate management for Status & Xtraz replies, Xtraz requests (useful with many contacts in list) Full unicode/ansi support (2in1) Support for Updater Plugin Added support for Flash Avatars Service Plugin Added ability to upload own flash avatar - XML file (thx Big Muscle) 0.3.5.3 Bugfixes: Fixed losing of almost all messages (protocol change) 0.3.5.2 Bugfixes: Error checking on offline messages was not working Now correctly handles "import time" item (should solve some auth issues) 0.3.5.1 Bugfixes: Renaming of server groups was not working properly - caused errors Avatar could not be deleted (the delete button did not work) File Transfers were not working properly in some cases (wrong cookie handling) Avatar formats were not recognized correctly Method of determining target dir in file receive was not solid enough Manage server-list dialog leaked memory Synchronize visibility items was not working properly Our avatar image was not linked to our ContactPhoto Added workaround for DB Blob caching issues Fixed occasional crash on login (missing TLV validity checks) Fixed slow update of nicks when users imported from server-list Fixed auto info update mechanism, do not progress too fast, do not drop processing Fixed empty groups are always hidden in Manage Server List, cannot be used either Fixed occasional crash on avatar retrieval - limit size of image to the size of packet If our rate is high, ignore user requests for status msgs & user details (prevents disconnection) Added temporary solution for roughly translated ICQ 2003b russian Manage server-list dialog could display other contacts and could crash Basic search could search for bad uin - garbage can be in the string Added workaround for select() malfunction - caused high CPU load Improvements: If Update details from server is on, user groups are also updated Changed System Uptime to Member since in my details Auth system recognizes & sends UTF-8 messages Miranda version signature improved (preparing for old signature removal in the future) Added better error detection for offline msgs receival process Made avatar handling more resilient to server errors 0.3.5 Bugfixes: Server-list operations is now scheduled correctly Newly added contact with privacy setting is not hidden anymore Fixed unicode message receiving from Icq2Go! (messages were corrupted) Fixed Grant authorization - not showed correctly and crashing randomly Move to group was not working properly On accept/decline filetransfer miranda was sometimes disconnected Group with subgroups was deleted if empty, that messed up subgroups Newly added contacts from server sometimes missed their group Offline messages are no longer received older than existing ones Now will not try to add contacts to server, which are not ours Divided server ids to groups - caused strange behaviour if id and group id were same Other small fixes New features: Added avatar tab to user-details dialog to show avatar even without mToolTip Linking avatar to mToolTip is now optional My user-details now show more informations & added idle since to ICQ tab Added support for uploading your own avatar image Improvements: Rewritten Manage Server List dialog - now works perfectly (without sub-groups support) Added partial support for subgroups (supported: rename, move, parial: add) Added optional linking to mToolTip, link only if no image set Added workaround for QNext client (it is not capable of type2 msgs) Added option to turn off HTTP gateway on HTTP proxy 0.3.4.2 (not published) Bugfixes: Fixed authorization reply Fixed contact transfer ack Now parses URL send ack correctly, no more timeout Now sending ack on contacts receive Now correctly add contact without auth if they does not require it Fixed crash on receiving long message through P2P (very old bug) Many other fixes (see CVS changelog for details) New features: Added full unicode message support (requires SRMM Unicode) Added support for sending and receiving Idle time. Added reliable client identification (if not identified, gives appropriate ICQ client) Added support for avatar images (downloading only). Added Grant authorization option (send & recognize) Improvements: Server-side list support rewritten, now uses acking, partly supports groups (without sub-groups for now). Most cookies standardised to imitate icq5 behaviour Basic search now automatically removes garbage from text, e.g. it can search by 123-456-789 0.3.3.1 Bugfixes: Could crash when receiving unicode messages. 0.3.3 Bugfixes: Failed to send or receive files from ICQ 2003b. Fixed a number of smaller memory leaks. Contact e-mail info was not displayed correctly. Failed to retrieve user details during certain circumstances. URL messages could disappear when sent through a Direct Connection. Nick name was not deleted from server list when local nick name was deleted. Server side contacts could reappear after being deleted if they were on the visible/invisible lists. Changing status while connecting had no effect. A bunch of other fixes that are too boring to list here, have a look at the CVS changelog if you want the big list. New features: Added support for sending and receiving Typing Notifications. Now accepts messages formatted in unicode (note: this wont solve the problem with displaying messages with multiple charsets). Improvements: Uses plugin DLL name in various menus to make it easier to have several ICQ plugins loaded. More robust packet parsing reduces the risk of any future stability problems. 0.3.2 Bugfixes: Prevent your status messages being read when you are invisible. Small memory leak when sending an SMS. Fixed a dumb bug that caused random disconnections from the ICQ server. Cleaned up the code for searches and user info updates, should work better now. AIM users in your server contact list would get added locally with uin 0. New features: Added "missed message" notification. Improvements: Added better error messages for message send failures. Messages now default to the most reliable delivery method available for a given contact. 0.3.1 Bugfixes: Fixed crash when incoming file transfer was cancelled before the transfer started Failed to receive SMS messages sent while offline Fixed some problems with accepting file transfers from Mirabilis clients Increased thread safety to reduce some reported connection/disconnection problems Fixed compability problems with sending messages to some jabber clients Fixed some message compability problems with Trillian Corrected some ack sending Added a lot of safety checks to increase general stability Plugin didnt load unless winsocks2 was installed New features: Removed restrictions on UIN length for better compability with iserverd The password can now be left empty in options, it will be asked for during login Server port can now be left empty in options, a random port will be selected during login Show logged on since and system uptime info in ICQ tab Improvements: Reduced file size Message sending now uses a more reliable delivery method Support and bug reporting _________________________ We cannot give support on e-mail or ICQ. Please visit the Miranda IM help page at http://www.miranda-im.org/help/ if you need help with this plugin. If the help page does answer your question, visit the Miranda support forum at: http://forums.miranda-im.org/ and we will try to assist you. If you want to report a bug, please do so in the official bugtracker at: http://bugs.miranda-im.org/ Contact _______ Current maintainer is Joe @ Whale, jokusoftware at miranda-im.org Advanced Features _________________ There are some features that are not widely used so there is no UI for them, if you want to use them you need to do manual setup using DBE++. Database items (usually at Contact\ICQ): (BYTE)UnicodeSend = 0 - to Disable unicode support (useful as a workaround for Trillian's bug) (WORD)CodePage - codepage for plain text encoding/decoding to/from unicode (WORD)InfoCodePage - codepage for interpreting user details Database items for Main Contact (usually at Settings\ICQ): (DWORD)KeepAliveInterval - Period in which Keep-Alive packets are send if enabled - default is one minute (BYTE)PrivacyItems = 1 - adds more privacy tools to contact menu (e.g. Revoke Authorization) Credits and Thanks __________________ Thanks to Angeli-Ka for nice custom status icons. License and Copyright _____________________ Copyright (C) 2000-2010 Joe Kucera, Martin Öberg, Richard Hughes, Jon Keating This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.