Introduction
Many of us have been using irssi with screen for a while. It’s a great way to connect into your IRC from anywhere (if the machine is Internet accessible, since you need to be able to SSH in before resuming the screen session).
irssi-proxy is an irssi module that allows you to share your irssi “session” with any number of connecting clients. This comes in very handy for devices such as smartphones. The client retrieves the channel lists from the server and you’re ready to chat as that user.
One major advantage here is that these clients do not need to also run irssi. You can connect from Colloquy or Rooms or xChat or any other IRC client you choose.
So if your username is <bob> in irssi, your username is also <bob> when you connect from your smartphone using “Rooms” or “Colloquy”. When you disconnect the client from the proxy, nothing is announced in channel.
The one major issue with this configuration is that connecting clients do not get a copy of the backlog. This means when you connect to your irssi proxy from your phone, the phone will have all of the channels, but you can not scroll back and see what was said 5 minutes ago. You have to wait for someone to talk and you will see it. There is a alpha or beta quality irssi script available which allows clients to grab the backlog from the main irssi session. I have not tested that as of yet.
Sample Code
Note: Any time below that you see [brackets] in the code sections, those sections must be replaced with your own values. You can’t just copy and paste them out of here and expect them to work.
Choose an irssi instance to become the irssi-proxy server. This machine must be Internet accessible (incoming connections), and have a port open for you to connect into. You may need to reconfigure firewall rules to accomplish this. That is up to you.
On the irssi you want to become an irssi-proxy (server):
List the servers in your irssi with the command:
/server list
See if your IRC server is on the list. If so, write down the short network name that you see next to the DNS name.
If your server is not on the list, add the server to your list of servers in irssi. The [netname] below you will need to use later. The netname is a short name that refers to an IRC server and you will need to use it a command later so remember which name you pick here. [server-port] is usually 6667 for most irc servers:
/server add -auto [netname] [server] [server-port]
You can do a /server list again if you want to verify that your server is on the list now.
Load the irssi proxy module:
/load proxy
Set the password that the irssi-proxy uses for incoming connections:
/set irssiproxy_password [password]
Choose a port (I like to choose high ones) to accept incoming connections to your irssi-proxy. Here is where you specify the same [netname] that you picked above. [proxy-port] is going to be a number (of your choosing) that will be listening on this server for incoming connections.
/set irssiproxy_ports [netname]=[proxy-port]
Once you issue that command, your server is now listening on that port for incoming connections!
Connect a IRC client to irssi-proxy
Each IRC client is a little different, but the gist of it is this: Connect to your irssi-proxy IP address (or DNS name), at the irssi-proxy port, with the password. The client should connect, give you the same name as the irssi-proxy, and load all the channels that your irssi-proxy has, automatically.
The command to connect irssi to the irssi-proxy client is here (do not do this from the irssi-proxy server):
/server [irssi-proxy-ip-or-name] [proxy-port] [password]
And there you have it. I hope this information is helpful to someone else!
Here is a link that I got a lot of great information from:
http://pthree.org/2007/01/06/irssi-proxy/
Leave a Reply