1.1.2 callback methods

These methods will be called when the server sends packets of various flavours. They will actually be called inside calls to Main or TCPMain, and exceptions rasied in a callback will work their way back out of this call. Any return value is ignored.

Logged ()
Called when a login to the server has been successful. This is a good time to send the contact and visible lists over to the server.

Disconnected ()
The connection to the server has been lost.

RecvMessage (uin,(hour,minute,day,month,year),message)
Called when user uin sends you a message.

RecvURL (uin,(hour,minute,day,month,year),url,descr)
Called when user uin sends you a URL.

RecvWebPager ((hour,minute,day,month,year),nick,email,message)
Called when a web pager message is recieved.

RecvMailExpress ((hour,minute,day,month,year),nick,email,message)
Presumably called when a ``MailExpress'' is received. Don't know what one of those is, but I'm sure they're very exciting.

RecvChatReq (uin,(hour,minute,day,month,year),descr,seq)
Called when user uin requests a chat with you - save seq for calls to AcceptChatRequest or RefuseChatRequest as appropriate.

RecvFileReq (uin,(hour,minute,day,month,year),descr,filename,filesize,seq)
Called when user uin wants to send filename to you - save seq for calls to AccpetFileRequest or RefuseFileRequest as appropriate.

RecvAdded (uin,(hour,minute,day,month,year),nick,first,last,email)
Called when user uin adds you to their contact list.

RecvAuthReq (uin,(hour,minute,day,month,year),nick,first,last,email,reason)
User uin wants to add you to their contact list - will you let them?

UserFound (uin,nick,first,last,email,auth)
Called in repsonse to a call to SendSearchUINReq and SendSearchReq - you will get a call for each matching user.

SearchDone ()
Called when the server has run out of users matching the criteria to a call to SendSearchUINReq and SendInfoReq - or if the request matched ``too many'' users.

UserOnline (uin,status,ip,port,real_ip,tcp_flag)
Called when a user on your contact list becomes visible to you.

UserOffline (uin)
Called when a user on your contact list ceases to be visible to you.

UserStatusUpdate (uin,status)
Called when a user on your contact list changes status (duh!). XXX Describe how to interpret status XXX.

InfoReply (uin,nick,first,last,email,auth)
Called in repsonse to a call to SendInfoReq.

ExtInfoReply (uin,city,country_code,country_stat,state,age,gender,phone,hp,about)
Called in repsonse to a call to SendExtInfoReq.

WrongPassword ()
Called when the server refuses your login because of a wrong password.

InvalidUIN ()
Called when the server refuses your login because of an invalid uin.

Log (time,level,str)
Called when icqlib thinks something's worth logging - cf. the as-yet non-existent Get/SetLogLevel module level functions...

SrvAck (seq)
The server has acknowledged you! How nice!

RequestNotify (id,result,data)
id is a sequence number that will have been returned by some ICQLink method; result is one of the ICQLIB.ICQ_NOTIFY_* constants, and data usually seems to be the empty string.

NewUIN (uin)
I don't understand new user voodoo.

SetTimeout (interval)
icqlib will call this callback when the client app should begin a timeout timer. The client app should call HandleTimeout when the timeout has elapsed.

MetaUserFound (...)
Argh! Too many arguments! Can't be bothered!

MetaUserInfo (...)
Argh! Too many arguments! Can't be bothered!

MetaUserWork (...)
Argh! Too many arguments! Can't be bothered!

MetaUserMore (...)
Argh! Too many arguments! Can't be bothered!

MetaUserAbout (...)
Argh! Too many arguments! Can't be bothered!

MetaUserInterests (...)
Argh! Too many arguments! Can't be bothered!

MetaUserAffiliations (...)
Argh! Too many arguments! Can't be bothered!

MetaUserHomePageCategory (...)
Argh! Too many arguments! Can't be bothered!