iChat IRC transport with OpenFire and Kraken
Long have I wanted the all-in-one functionality of Adium with the AV chat capabilities of iChat. I really wanted to use iChat for all my messaging needs. I have finally achieved my goal using Openfire, a free XMPP server, and the Kraken plug-in that provides the tranports for other instant messaging services. In my case, I am interested specifically in IRC, but I got my little-used MSN account working also for test purposes. Kraken provides many different tranports.
I should clarify my goal a bit. I only care about AV capabilities for protocols that iChat officially supports so I have not tested anything beyond text chatting with MSN. I only use IRC for text chat anyway, no DCC or file transfers.
What do you need? You need to install the Openfire server and the Kraken plug-in. The Current versions when I did this were Openfire 3.6.4 and Kraken 1.1.3.beta2. Openfire had a binary download for OS X Snow Leopard, but I had to build Kraken from source. Click on this direct link for the resulting binary file.
I followed the steps below to get my setup working. My system is a 2008 Aluminum Macbook with 4GB RAM, 2.4 GHz Core 2 Duo running Snow Leopard 10.6.4.
- Download and install Openfire from their website. Open the disk image and run the installer.
- Open System Preferences and navigate to the Openfire preference pane. System Preferences may need to restart.
- Ensure that Openfire is running and check to box to automatically start it at log on.
- Click the button the open the Admin Console. A web browser will open to the setup page.
- Choose your language.
- Set the domain to be localhost. This greatly simplifies adding contacts later.
- Choose the embedded database if you are running Openfire just for your own use.
- Ensure Default is selected for the user/group profile storage.
- Enter a valid e-mail address and a password for the admin user. You will need to know the password later, so WRITE IT DOWN OR REMEMBER IT.
- When setup is done, you need to return to System Preferences and stop the Openfire server. After it is done, start it again. This writes the log on information to the appropriate file and allows you to log in to the admin console. If you skip this step, you will not be able to log on to the admin console.
- Log in to the admin console using user admin and the password you supplied during setup.
- To prevent others from logging onto your personal jabber server, some settings need to be changed. The admin console has two levels of tabs. Navigate to the Server tab at the top and then the Server Settings tab on the next row of tabs. Under Registration & Login, select "Inband Account Registration" and disable "Anonymous Login". Click "Save Settings".
- Create a user for your jabber server. This user is not the same as your existing user name for MSN, IRC or whatever. It used to connect to Openfire. It can be anything you want. In the top row, choose Users/Groups and then the secondary Users tab. Click on "Create a new user" on the left. Only username (JID) and password are mandatory. Enter whatever you want for both of these and remember what you entered. Click "Create User".
- At this point, Openfire is configured but has no transports for other I.M. services. Copy the kraken.jar to the Openfire plugins directory. On my machine, it is located at /usr/local/openfire/plugins .
- In the terminal, issue the following commands to navigate to the plugins directory and change the ownership of kraken.jar to match the rest of the openfire files there:
- sudo -i
- cd /usr/local/openfire/plugins
- chown openfire kraken.jar
- exit
- Now that the Kraken plugin is installed, open the Openfire admin console again.
- If you click on the Plugins tab on the top line, you should see that the Kraken plugin is installed. If so, continue. If not, ensure that the correct kraken.jar file is in the right location and has the right permissions. I did not need to restart Openfire after installing the plugin.
- Click on the Server tab and then the secondary Gatways tab.
- Put a checkmark next the services you wish to enable. I picked MSN and IRC.
- To configure IRC, click on the options link and enter the correct server and port information. In the Host field, it should look like ircserver.domain.com. The port field takes just the port number. Note that for me, only plain, non-ssl ports work for IRC.
- Click on the Permissions link and select Manual registrations only.
- Click "Save Changes".
- You can use the Tests link to ensure connectivity between the server and Openfire.
- I did not need to change any options for the MSN transport. It worked with the default settings. I did change the permissions to Manual registrations only.
- Once the services are configured, click on the Registrations link in the left panel.
- Click on "Add a registration".
- This is where you will configure your MSN or IRC usernames to connect to those services. In the first user (JID) field, you put the username you selected for Openfire. Then select the service you want to connect to in the "gateway" combo box. Enter your MSN or IRC (as appropriate) username in the next field along with its associated password. Enter an appropriate nickname for your user on that service.
- Click the "Add" button. You can refresh the page to see that your registration was added, or you can add all your registrations and then refresh the page to see them all at the end.
- Now you are ready to add your account to iChat and log in to Openfire. Open iChat and set up a new jabber account.
- Choose "jabber" for the account type. Account Name should be jid@localhost where jid is the user name for Openfire you selected before. The password is the password for that user name.
- Connect to the account. You will get a certificate error. You can click "Show Certificate" and then click "Always trust localhost when connection to localhost" so that you don't get the error when iChat starts.
- Once you account is connected, your MSN contacts (if you set it up) will show up in your contact list. You can join a room on the irc server you set up by clicking on the File menu in iChat and choosing "Go to Chat Room...".
- The account should be jid@localhost and the room name should be of the form #channel@conference.irc.localhost
- You can click the + at the bottom of the window to add it to the list of rooms and the optionally choose to Autojoin the room when iChat starts.
- Click Go and you should be connected to the irc room.
That is it. It takes a few minutes, but it works pretty well for basic chatting in IRC. Apparently, the only slash command that is supported is /me . The rest of them just get posted in the room. I hope this helps you. Now I can do all my communications from one interface and keep my AV capabilities.
Comments