IRC-Transport allows Jabber users to communicate with IRC
servers and IRC users, by bridging the gap between the two networks

--------------------
PLEASE NOTE BEFORE USING
--------------------
This version of IRC transport is a 0.1 beta version.  it will connect to irc servers and allow you to talk to them, but it is still
in heavy development.  several things are different from the other irc-transport versions including:

Private messaging does not yet function
Transport registration/notify will not be supported
groupchat 1.0 and 1.1 will not be supported in favor of the 2.0 iq:conferenec/iq:browse protocol
you will be able to log into and create password protected groups now (although this may not work yet)
There still may be some other bugs I haven't caught yet.

In testing, it has been fairly stable, although some functionality may not be there yet.
As indicated by the version number, this transport requires jabberd version 1.4 several functions
used, including MIO, MTQ, and xhash functions were not available in previous jabber server versions

That said, Enjoy!

---------------------
To compile IRC-Transport
---------------------
$> cd irc-transport
$> ./configure [--with-jabberd=/path/to/jabber2]
$> make

---------------------
Using IRC-Transport
---------------------

You may run irc-transport in one of two ways.. First, you can link it directly into your main jabberd by putting an entry into your
jabber.xml (or other) config file like this:

        <service id="irc.myserver.com">
            <load><irc_transport>/path/to/irc_transport.so</irc_transport></load>
        </service>

note that the compiled irc_transport.so will be in the src/ directory under where you compiled irc-transport.

You will also need to have an <xdb/> section in your config file somewhere:

        <xdb id="xdb">
            <host/>
            <load><xdb_file>./xdb_file/xdb_file.so</xdb_file></load>
            <xdb_file xmlns="jabber:config:xdb_file">
            <spool><jabberd:cmdline flag='s'>./spool</jabberd:cmdline></spool>
            </xdb_file>
        </xdb>

This is because irc-transport uses XDB to store it's user specific data, such as login passwords, or rosters


    You will also need to add to the <browse/> section (listed above) to the jsm config section, under <browse/>.

      <browse>

        <!-- other services go here -->

        <service type="irc" jid="irc.myserver.com" name="IRC Transport">
          <ns>jabber:iq:gateway</ns>
          <ns>jabber:iq:register</ns>
        </service>

      </browse>

Another way to run irc-transport is from a second jabberd.  This is favorable when you are using a version that may be prone to crashes...
put in a "linker" section in your main jabberd, such as:

    <service id="jabberd_linker">
        <accept>
            <ip>12.34.56.78</ip>
            <port>9876</port>
            <secret>j4bb3rd_l1nk3r</secret>
        </accept>
        <host>irc.myserver.com</host>
    </service>

and then in your irc jabberd config, put in a matching linker service:

    <service id="jabberd_linker">
        <connect>
            <ip>12.34.56.78</ip>
            <port>9876</port>
            <secret>j4bb3rd_l1nk3r</secret>
        </connect>
        <uplink/>
    </service>

along with the service tag for irc-transport...

few things to note here... the id, ip, port, and secret MUST match EXACTLY in each linker section...

the <uplink/> flag causes every undeliverable packet to be sent to the other jabberd (the main jabberd)

so make sure that any <host/> section that you put into the main jabberd's linker section is defined in the irc jabberd config file
(the id attribute IS a defined hostname)  if you do not have it defined in that section, packets to that
host will bounce between jabberds infinitly, and slow down or crash your server.

Good Luck!

