[ejabberd] How to get AIM gateway working?

Sander Devrieze s.devrieze at pandora.be
Mon Oct 11 22:46:26 MSD 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Op maandag 11 oktober 2004 14:51, schreef dragon_sphere at vdsworld.com:
<snip>
>   I took a look at the page you mentioned.  I had already read that page.
> This link does not seem to be specific to EJabberd nor is it setup
> instructions for making the AIM transport work under EJabberd.  Again I
> do not know how to program in Erlang so I would not be able to convert
> the AIM Transport from C to Erlang??

You need Jabberd 1.4.x for the old AIM-transport:
1) compile Jabberd
2) copy the resulting .so files to the libs-dir (I think xdb_file.so suffices)
3) configure the AIM-transport to run as a separate service (this is always 
prefered): see example config file included with AIM-transport
4) include the xdb- and logs-sections like described in the ejabberd Guide 
(and also in the example config file of AIM-transport I think).
5) add a line for AIM-transport in the listen section of your ejabberd config.
6) triple-check if the password of the transport config and ejabberd config 
match.
7) optional: create a nice init-script for AIM-transport

You also can consider to use the experimental pyAIM-t which do not depends on 
Jabberd1.4.x at all but uses Twisted-python and which supports xml:lang for 
user interaction.

> Besides EJabberd boasts that it 
> will work as a Gateway for AIM, ICQ, Yahoo, MSN, plus others that I am
> not familiar with.

It works here very well: ejabberd (it's with a small letter) even hides the 
transport in the discovery list when it goes offline (crashed, 
maintainance,...) and automatically display it again when it's back online).

> So what I asked is how exactly to make this work.  I 
> need step by step instructions for this.  Also the documentation is very
> lacking.

If you compare it with a half year ago you'll see it improved a lot:
http://jabberstudio.org/cgi-bin/viewcvs.cgi/ejabberd/doc/guide.html?r1=1.23&r2=1.24 ...

> I guess that is why I normally do not use Open Source 
> software.  Usually Open Source software makes claims that it cannot keep
> and/or if it can actually do something it claims then only the person
> that wrote it really knows how to make it work and they do not share the
> information with others.

I know how it works and I never sended code-patches (only translation and 
docs ;) ) to the ejabberd-project, so ;)

> What good is open source if the documentation 
> is so lacking that the end user cannot figure out how to use it.

I think it is not ejabberd that is lacking documentation, but the (nearly 
dead) transports do.

> I 
> don't want to re-program, modify, or learn the language the software was
> written in I just want to use it.  I have read the manual and I have
> followed the destructions but it seems to be missing several steps to
> use the software to it's full potential.

The steps you are missing are the docs included with AIM-transport; they don't 
belong in the ejabberd Guide.

This is how my master.xml (I call it that way) looks like:

<!-- aim-t master.xml of l4l.be by Sander Devrieze <s.devrieze at pandora.be> -->

<jabber>

  <!--
     You need to add elogger and rlogger entries here when using ejabberd.
     In this case the transport will do the logging.
  -->

  <log id='elogger'>
    <host/>
    <logtype/>
    <format>%d: [%t] (%h): %s</format>
    <file>/opt/ejabberd/var/log/jabber/error/aim-t.log</file>
  </log>

  <log id='rlogger'>
    <host/>
    <logtype>record</logtype>
    <format>%d %h %s</format>
    <file>/opt/ejabberd/var/log/jabber/record/aim-t.log</file>
  </log>

  <!--
     Some Jabber server implementations do not provide
     XDB services (for example jabberd 2.0 and ejabberd).
     xdb_file.so is loaded in to handle all XDB requests.
  -->

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

  <!--
     localhost is your jabber host.
     Replace "localhost" by the full host name of your server
     and have all host names here resolveable via DNS if you
     want the transport to be available to the public.
  -->

  <service id='aim.l4l.be'>
    <!-- aim-t configuration -->
    <aim-t xmlns='jabber:config:aim-t'>
      <jabberd:include>./vCard.xml</jabberd:include>
      <charset>cp1252</charset>
    </aim-t>
    <!-- aim-t module -->
    <load>
      <aim_transport>/opt/ejabberd/usr/lib/jabber/aim-t.so</aim_transport>
    </load>
  </service>

  <!--
     The settings here have to match the setting you made
     in your main Jabber server's configuration file.
     Replace localhost with your main jabber server host name.
  -->

  <service id="icq.l4l.be-linker">
    <uplink/>
    <connect>
      <ip>127.0.0.1</ip>
      <port>5233</port>
      <jabberd:include>./secret.xml</jabberd:include>
    </connect>
  </service>

  <pidfile>/opt/ejabberd/var/run/jabber/aim-t.pid</pidfile>

</jabber>

Remark that I splitted the AIM-transport config file in three files:
~/etc/jabber/aim-t/master.xml
~/etc/jabber/aim-t/secret.xml
~/etc/jabber/aim-t/vCard.xml

- -- 
Mvg, Sander Devrieze.

xmpp:sander at l4l.be -- ( http://jabber.l4l.be/ )
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFBatUHK+G8aHNHCSMRAnyxAKDaBXeaXnv7jtpYrJdJYpPEaxWT1wCfSocZ
p17opojQLaMMbUaGza/MwtM=
=9b1k
-----END PGP SIGNATURE-----


More information about the ejabberd mailing list