DJabberd Integration with AIM and MSN

Martin Atkins mart at degeneration.co.uk
Tue Aug 14 20:26:48 UTC 2007


Erik Osterman wrote:
> I am curious if anyone has successfully integrated DJabberd with these 
> external networks. I have found no information other than "it should be 
> possible" and that many of AOL's public gateways are blocked.
> 
> We've setup DJabberd on our corporate network, written a few plugins for 
> authorization and delivery, but now we need to allow outside vendors to 
> message our employees. How should we approach this?
> 

I'm successfully running pyAIMt, pyMSNt and pyICQt with my DJabberd 
instance right now. My config looks something like this:

<VHost mydomain.com>
   S2S enable
   RequireSSL no

   <Plugin DJabberd::Authen::HTDigest>
      Realm mydomain.com
      HtDigest /etc/djabberd/djabberd.users
   </Plugin>

   <Subdomain aim>
      <Plugin DJabberd::Component::External>
          ListenPort 25757
          Secret myaimsecret
      </Plugin>
   </Subdomain>
   <Subdomain msn>
      <Plugin DJabberd::Component::External>
          ListenPort 25758
          Secret mymsnsecret
      </Plugin>
   </Subdomain>
   <Subdomain icq>
      <Plugin DJabberd::Component::External>
          ListenPort 25759
          Secret myicqsecret
      </Plugin>
   </Subdomain>

   ChildService msn.mydomain.com MSN Messenger Transport
   ChildService aim.mydomain.com AIM Transport
   ChildService icq.mydomain.com ICQ Transport

   <Plugin DJabberd::PresenceChecker::Local />
   <Plugin DJabberd::Delivery::Local />
   <Plugin DJabberd::Delivery::S2S   />

   <Plugin DJabberd::RosterStorage::SQLite>
      Database /etc/djabberd/roster.sqlite
   </Plugin>

</VHost>

You then just need to configure each transport to match the secret and 
port configured in DJabberd. Of course, each of your employees will need 
to set up an account with each additional network they need to use. Most 
Jabber clients make it really easy to register with the above 
transports, automatically detecting them using service discovery. 
(That's what the ChildService lines do above.)

It'd be really neat if someone were to write some in-process transports 
for these networks, integrating with the Danga::Socket event loop, but 
thus far I've not heard of such a thing being in progress.





More information about the Djabberd mailing list