AImIRC v1.22b, by ToidyMan (jason@itbandits.com)
Find me on irc.dal.net



Introduction
Setting up
Connecting to AIM
Buddy List Setup
Permit List Setup
Ignore List setup
Chatting with AIM users/AIM chat rooms
About PortBounce.mrc and info for scripters


Introduction



Thank you for downloading AImIRC. The purpose of this script is to give at least a basic communication path between mIRC and the AIM servers. This script uses the freely available and documented TOC protocol. Because of this, it is more limited than the normal AIM client, however, since AOL makes TOC freely available and accessible, there are no problems with AOL breaking the script in any way. What makes this script even more unique is the fact that as far as mIRC is concerned, the data coming from the AIM server is just normal IRC data. To accomplish this, there is a helper script, PortBounce.mrc. More info about this script is in the Scripters section of this document. Note: PortBounce and therefore AImIRC currently do not work through proxy servers. If you use an IRC bouncer, it should work unaffected. Hopefully I'll get proxy support working soon.
Top


Setup



NOTE: mIRC 5.9 or later is required for proper operation.

Setup is quite straightforward. Simply unzip all the files (make sure to use directories, so the script knows where to find this help document. After you have unzipped all the files, load mIRC and type /load -rs path_to_scripts\portbounce.mrc (eg, /load -rs c:\AImIRC\portbounce.mrc) to load the PortBounce script. You will get an initialization warning when this script starts. It is simply the script setting mIRC's settings to work with PortBounce. Click yes, and in the status window you should see:

PortBounce v0.1 loaded and listening on port 10080.
Firewall settings changed to match PortBounce Settings.


After this script is loaded, type /load -rs path_to_scripts\aim.mrc (eg, /load -rs c:\AImIRC\aim.mrc) to load the AIM script.
Once both scripts are loaded, you will need to disconnect and reconnect to your IRC server if you are connected. If you right click in the status window, you should notice a menu titled "AOL Instant messenger."
Top


Connecting to AIM



You can connect to AIM using two different methods. The first is to right click in the status menu, choose AOL Instant Messenger, and then Connect. The second is by typing /aimsignon. Either one will bring up the AIM Signon screen:

Sign on window


Here, you fill in your AIM Username and Password. Passwords are not permanently saved, only usernames. If you select the "Save Username" box, you can select your username from the dropdown box the next time you wish to sign on.
Top


Buddy List setup



After you've connected to AIM for the first time, you can configure your buddy list. To access buddy list configuration, right click in the status window, choose the AOL Instant messenger menu, and select Configuration, or type /aimconfig. This should bring up the following screen:

Buddy List Window


Here, you can add or remove a buddy. Changes do not take effect until you hit OK.
You can also create groups. To add a group, use +GroupName. Users MUST belong in a group if I understand the AIM TOC protocol correctly. You can move users up and down and even between groups with the up/down buttons on the side.

An important note: If you've not used AIM before, or use an old version that does not store your buddy list on the server, you will need to add a group before you do anything. Most people will use Buddies as the group name. This is because users must belong in a group.


Permit List Setup



The Permit list basically functions the same as the buddy list window. Using Permit list tells AIM to only allow people in this list to contact you. The following is an image of the ignore list window:

Permit List Window

Top


Deny List Setup



The ignore list is basically like the Permit list, only somewhat in reverse. You access it the same way, and basic function is the same. The following is an image of the ignore list window:

Ignore List Window

Top


Chatting with AIM users/AIM Chat rooms

Chatting on AIM with this script becomes very much like chatting on IRC. The only difference is a couple of added commands, and a bit of a changed syntax. For example, to message an AIM user, you use /msg <aimuser>*aim msg here. For instance, to send me a message, you'd use /msg ToidyMan*aim hello. (By the way, this is just an example. I'd rather not have people reading this file messaging me all the time <g>)

If you wish to join an AIM chat room, you need to use /aimjoin roomname. This will also give the appearance of a normal IRC chat channel. The channel will be named #<aim room name>*aim. For instance, if you type /aimjoin AImIRCTest, then in mIRC the channel would appear as #AImIRCTest*AIM. After you are in an AIM chat room (either by joining it or accepting an invitation) you can invite other AIM users by using /aiminvite channelname InviteNick [Invite Message]. The ChannelName is the actual mIRC channel. In the example above, to invite me to the AImIRCTest chat room, you'd use /aiminvite #AImIRCTest*aim ToidyMan Come join me for a chat. Once in the Channel/room, you chat like you normally would.
Top


Information for scripters and advanced users



The PortBounce script works by acting as a proxy. It sits in front of the connection between mIRC and the IRC server. This is why currently the script does not work with users who use a proxy server. I have to re-implement socks 4/5 and https proxy support. The PortBounce script sets mIRC to use a https CONNECT proxy, set to 127.0.0.1 on port 10080. The port is currently hard-coded in the script. When I include proxy support, I will make it configurable. The reason I did it this way instead of using custom @windows is that by "proxying" the AIM data along with the IRC data, scripts can react to AIM events like they would normal events. Got a script that listens for private messages? It'll respond to AIM "Private messages" as well. If a message comes from an AIM user, it will have the full userhost form: <aimusername>*aim!aim.user@aol.instant.messenger. For instance, a message from me would be ToidyMan*aim!AIM.USER@aol.instant.messenger. Because AIM allows spaces in usernames and IRC doesn't, there is a little trickery involved. Spaces (ASCII Character 32) are replaced with ASCII character 160, which looks like a space when displayed.
AIM sends messages with html, so that is removed with the following alias:

alias RemoveHTML {

  var %Msg = $1-
  var %expr = /<.*?>/g
  var %tmp
  discard $regsub(%Msg,%expr,$null,%tmp)
  return %Tmp
}

Discard is simply an alias that doesn't do or return anything to handle cases where I want the effect of an identifier but don't need the return value, such as the case above.

If you want to see debugging stuff while the script is running, open AImIRC.ini, and add the following text:
[Advanced]
Debug=Yes


This will cause debugging information to dump into the status window. Be aware, this can generate a lot of text in your status window. Bugs are inevitable. If you find some, report them to me at the email address given above
Top