ICBIRC(8)

NAME
icbirc - proxy IRC client and ICB server

SYNOPSIS
icbirc [-d] [-l listen-address] [-p listen-port] [-s server-name] [-P server-port]

DESCRIPTION
icbirc is a proxy that allows to connect an IRC client to an ICB server. The proxy accepts client connections, connects to the server, and forwards data between those two connections.

Commands from the IRC client are translated to ICB commands and forwarded to the ICB server. Messages from the ICB server are translated to IRC messages and forwarded to the IRC client.

The options are as follows:

-d  Do not daemonize (detach from controlling terminal) and produce debugging output on stdout/stderr.

-l listen-address
    Bind to the specified address when listening for client connections. If not specified, connections to any address are accepted.

-p listen-port
    Bind to the specified port when listening for client connections. Defaults to 6667 when not specified.

-s server-name
    Hostname or numerical address of the ICB server to connect to.

-P server-port
    Port of the ICB server to connect to. Defaults to 7326 when not specified.

Example:

    $ icbirc -s default.icb.net

IRC (Internet Relay Chat) and ICB (Internet Citizen's Band) are two separate chat protocols. ICB is an older and simpler protocol, basically a subset of IRC. The two most significant differences (from the client's perspective) are:

An ICB client can only join a single channel (called group). Joining a second channel automatically parts the first channel.

An ICB channel can only have a single operator (called moderator). Giving operator status to a second client automatically removes operator status from the first client.

SUPPORTED COMMANDS
icbirc supports the following IRC commands:

PASS
    Set the default group, used during login.

NICK
    Set or change nickname.

USER
    Supply additional user information (like ident), used during login.

LIST
    List all groups.

WHOIS
    Shows information about a user.

WHO Lists matching users. Arguments starting with '#' are interpreted as channel names (listing all users in the specified channel), anything else is used for a simple string search within users' 'nick!ident@host'.

JOIN
    Join a group.

PRIVMSG
    Send an open or personal message.

NOTICE
    Same as PRIVMSG.

TOPIC
    Set group topic.

KICK nick
    Boot nick from group.

MODE +o nick
    Pass moderation to nick.

QUIT
    Close client and server connection, wait for next client connection.

Additionally, the command RAWICB can be used to send custom ICB commands. The proxy automatically prefixes the correct command length and replaces commas with ICB argument separators. For example:

RAWICB hm,nick,msg
    Send msg to nick.

SEE ALSO
Internet Relay Chat Protocol, RFC 1459. Internet Relay Chat: Client Protocol, RFC 2812. Internet Relay Chat: Channel Management, RFC 2811. ICB Protocol, ftp://ftp.icb.net/pub/icb/src/icbd/Protocol.html. The History of ICB, http://www.icb.net/history.html. General guide to Netiquette on ICB, http://www.icb.net/_jrudd/icb/netiquette.html.

HISTORY
The first version of icbirc was written in 2003.

AUTHORS
Daniel Hartmeier <daniel@benzedrine.cx>

CAVEATS
ICB is not IRC. Depending on the ICB community on a particular server, netiquette rules vary greatly from common IRC rules (or lack thereof).

Client scripts or other forms of automated client actions might generate noise or violate ICB community policies, and lacking support for some commands might confuse the script. Clients should be properly configured and tested on a dedicated server before connecting to a public server.

In particular, WHOIS and WHO filtering is done on the proxy. Each such request causes the proxy to fetch the entire user list from the ICB server (there are no ICB commands that take filters), hence automatic WHOIS requests from the IRC client can cause unwanted load on the ICB server (turn off 'WHOIS on JOIN' in the IRC client, if enabled).

BUGS
On ICB, a moderator (channel operator) can leave the group (channel) and rejoin later, preserving his status, as compared to IRC, where the channel would be left operator-less in this case. The proxy does not currently detect the operator status on rejoin in this case, and the IRC client will (temporarily) show the channel op-less.

IPv6 is not supported yet.