Jabber dumba$$like
InNeedOfRefactor: rest needs fixing up
Note: the DNS names below are fictional, make sure you check what your Jabber server uses.
ICQ and AIM actually use the same protocol, so the AIM-t transport can be used for ICQ as well. However, the JIT transport handles ICQ messaging and ICQ-SMS a lot better than the AIM-t transport.
If your Jabber server uses the AIM-t transport, you should subscribe to the icq.jabber.example.net agent, using your ICQ username and password, and then you can add contacts of the form icqid@icq.jabber.example.net. You can send SMS messages by sending something like the following to any ICQ recipient on your roster: SEND-SMS:+cellphonenumber:<message>
If your Jabber server uses the JIT transport, then use that instead. It's a lot nicer, supports user searching correctly, handles SMS better, and so on. Fill in your ICQ account details, and it will automatically pull down your server-stored ICQ contact list and add them to your Jabber roster. It maps UINs to JIDs of the form UIN@jit.jabber.example.net for ICQ, or phonenumber@sms.jabber.example.net for SMS.
2 pages link to JabberTransport: