Getting a decent IRC experience on WP7 (How To)

I am an avid IRC user and using it on my mobile phone is very important to me. The IRC situation on WP7 used to be horrible and is not that great even now, after the Mango update brought socket support. I have found a solution for me personally to get a decent IRC experience on windows phone and after hearing Chris Ziegler complain about it on the Mobile Podcast, i thought i'd share it with others who might have an interest in using this internet stone-age protocol on their fancy new phones.

Now this method is really not great, it's not rock solid and it's pretty complicated to set up. I'd still like a proper IRC client on my phone better, but it also has its advantages, namely battery and resource savings.

What you will need to do is run something called a Bouncer on a linux (or other OS, probably) server. This bouncer connects to the IRC server for you so you can stay in your channels while you are not actually connected. You then use your IRC client to connect to this bouncer instead of the server.

The reason this solves the mobile problem is that a.) this bouncer can send push notifications to your phone when someone mentions you or sends you a direct message and b.) you can get something called a buffer scrollback. This means when you connect to the bouncer it will feed you the last lines posted on your channels. So the fact that your phone dropped the connection as soon as you switched to another app doesn't matter. You will not miss anything.

So here goes the How To:

1. Install znc on your Server. On Debian / Ubuntu this is done with:

apt-get install znc

you will probably also need the znc-dev package to compile the module we will need later:

apt-get install znc-dev

2. Get the znc-push module. You will need to get this module to send push notification on your phone. The problem is that the WP7 support has not been merged into the main branch, but there was a bugfix that is not in the version that supports WP7. So i merged the two and put it here for you. Download this file and copy it to ~/.znc/modules (~/ is your home directory).

3. Compile the znc-push module. Go to ~/.znc/modules and run the following command to compile the module:

znc-buildmod push_toast.cpp

Let's hope this does not return any errors. If it does, let me know in the comments.

4. Configure ZNC. ZNC is configured using a file found in "~/.znc/configs/znc.conf". Open this file and put in your IRC settings. Here is an example configuration:

Listener4  = 2435
<User username>
Pass = ThePasswordYouWillUseToConnectToTheBouncer
Admin = true
Nick = nickname
AltNick = alternativenickname
Ident = NickServIdentifyPassword
RealName = Doesn't Matter
Buffer = 400
KeepBuffer = true
ChanModes = +stn

Server = irc.yourircnetwork.net 6667
<Chan #yourchannel>
</Chan>
<Chan #yoursecondchannel>
</Chan>
</User>

"Listener4" configures the port that your bouncer will run on. You can pick whatever you like, You will have to forward this port through your firewall. "Buffer" configures the number of lines the buffer will feed back to you when you connect.

5. Run ZNC.

znc

znc should launch and fork into the background. You will need to run this command every time you restart your sever.

7. Connect to the Bouncer. I think IRC7 is the only usable IRC client on WP7 download it from the marketplace and connect to your bouncer using these Settings:

Server: yourpersonalserver.com or the IP adress of your server
Port: The port you configured as "listener4"
Username: whatever you put as username here "<User username>"
Password: whatever you put after "Pass ="

8. Download toasty from the Marketplace, open it and note down your Device ID. This will be a long string of numbers and letters.

9. Load and configure the znc-push module. Go to your IRC client and connect to the bouncer. To load the module do:

/msg *status loadmod push_toast

then configure the module with:

/msg *push_toast set service toasty
/msg *push set secret toasty_device_id

You should be done now. Mentions and Private Messages should now trigger a Push Notifications to your phone and you will stay connected to the channels even when you close IRC7. Sadly, the Push Notifications can not open IRC7 directly. I hope windows phone will add url handlers for apps in the future to make this possible.

I'm sure i totally messed up some part of this How To so please let me know if i did.