All,

I set up a test server, using jabber-1.4 on a RedHat 7.2 Linux box, using
the Intel RPM.

After doing the edits described in the Server Howto, and starting up the
server, I attempted to logon using a 0.8.1 version of Gabber.

I received the dreaded 'Internal Delivery Error' message.

Why?  Does anybody know?

Attached please find my jabber.xml file, and the jabberd.debug log
file, if they are of any help.

Thanks,

John S.
[EMAIL PROTECTED]
Tue Jan  8 11:04:31 2002  mio.c:558 MIO is starting up
Tue Jan  8 11:04:31 2002  base_accept.c:287 base_accept loading...

Tue Jan  8 11:04:31 2002  base_connect.c:257 base_connect loading...

Tue Jan  8 11:04:31 2002  base_exec.c:366 base_exec loading...

Tue Jan  8 11:04:31 2002  base_file.c:106 base_file loading...
Tue Jan  8 11:04:31 2002  base_format.c:127 base_format loading...
Tue Jan  8 11:04:31 2002  base_to.c:88 base_to loading...
Tue Jan  8 11:04:31 2002  base_stderr.c:74 base_stderr loading...
Tue Jan  8 11:04:31 2002  base_stdout.c:227 base_stdout loading...

Tue Jan  8 11:04:31 2002  base_dynamic.c:186 base_dynamic loading...
Tue Jan  8 11:04:31 2002  load.c:229 dynamic component loader initializing...

Tue Jan  8 11:04:31 2002  load.c:201 dynamic loader processing configuration <load 
main='jsm'>
      <jsm>./jsm/jsm.so</jsm>
      <mod_echo>./jsm/jsm.so</mod_echo>
      <mod_roster>./jsm/jsm.so</mod_roster>
      <mod_time>./jsm/jsm.so</mod_time>
      <mod_vcard>./jsm/jsm.so</mod_vcard>
      <mod_last>./jsm/jsm.so</mod_last>
      <mod_version>./jsm/jsm.so</mod_version>
      <mod_announce>./jsm/jsm.so</mod_announce>
      <mod_agents>./jsm/jsm.so</mod_agents>
      <mod_browse>./jsm/jsm.so</mod_browse>
      <mod_admin>./jsm/jsm.so</mod_admin>
      <mod_filter>./jsm/jsm.so</mod_filter>
      <mod_offline>./jsm/jsm.so</mod_offline>
      <mod_presence>./jsm/jsm.so</mod_presence>
      <mod_auth_plain>./jsm/jsm.so</mod_auth_plain>
      <mod_auth_digest>./jsm/jsm.so</mod_auth_digest>
      <mod_auth_0k>./jsm/jsm.so</mod_auth_0k>
      <mod_log>./jsm/jsm.so</mod_log>
      <mod_register>./jsm/jsm.so</mod_register>
      <mod_xml>./jsm/jsm.so</mod_xml>
    </load>

Tue Jan  8 11:04:31 2002  load.c:201 dynamic loader processing configuration <load>
      <xdb_file>./xdb_file/xdb_file.so</xdb_file>
    </load>

Tue Jan  8 11:04:31 2002  load.c:201 dynamic loader processing configuration <load>
      <pthsock_client>./pthsock/pthsock_client.so</pthsock_client>
    </load>

Tue Jan  8 11:04:31 2002  base_format.c:102 base_format_config validating configuration
Tue Jan  8 11:04:31 2002  base_file.c:69 base_file_config validating configuration
Tue Jan  8 11:04:31 2002  base_format.c:102 base_format_config validating configuration
Tue Jan  8 11:04:31 2002  base_file.c:69 base_file_config validating configuration
Tue Jan  8 11:04:31 2002  load.c:201 dynamic loader processing configuration <load>
      <dnsrv>./dnsrv/dnsrv.so</dnsrv>
    </load>

Tue Jan  8 11:04:31 2002  load.c:201 dynamic loader processing configuration <load>
      <dialback>./dialback/dialback.so</dialback>
    </load>

Tue Jan  8 11:04:31 2002  deliver.c:277 Registering sessions with instance sessions
Tue Jan  8 11:04:31 2002  deliver.c:277 Registering morningstar.nowhere.lie with 
instance sessions
Tue Jan  8 11:04:31 2002  jsm.c:93 jsm initializing for section 'sessions'
Tue Jan  8 11:04:31 2002  deliver.c:235 @-internal processing <xdb type='get' 
to='config@-internal' from='sessions' ns='jabber:config:jsm' id='0'/>
Tue Jan  8 11:04:31 2002  deliver.c:649 delivering to instance 'sessions'
Tue Jan  8 11:04:31 2002  xdb.c:41 xdb_results checking xdb packet <xdb type='result' 
to='sessions' from='config@-internal' ns='jabber:config:jsm' id='0'><jsm 
xmlns='jabber:config:jsm'>

      
      <filter>
          <default/>
          <max_size>100</max_size>
          <allow>
              <conditions>
                  <ns/>
                  <unavailable/>
                  <from/>
                  <resource/>
                  <subject/>
                  <body/>
                  <show/>
                  <type/>
                  <roster/>
                  <group/>
              </conditions>
              <actions>
                  <error/>
                  <offline/>
                  <forward/>
                  <reply/>
                  <continue/>
                  <settype/>
              </actions>
          </allow>
      </filter>

      

      <vCard>
        <FN>Jabber Server</FN>
        <DESC>A Jabber Server!</DESC>
        <URL>http://www.betelguese.net/</URL>
      </vCard>

 
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_echo
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 2 80DFFD0
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_roster
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 0 80E0000
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 3 80E0030
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_time
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 2 80E0060
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_vcard
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 0 80E0090
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 1 80E00C0
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 2 80E00F0
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_last
Tue Jan  8 11:04:31 2002  mod_last initing
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 6 80E0120
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 0 80E0150
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 1 80E0180
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 2 80E01B0
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_version
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 2 80E01E0
Tue Jan  8 11:04:31 2002  util.c:92 config query update
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_announce
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 2 80E0238
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 0 80E0268
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_agents
Tue Jan  8 11:04:31 2002  mod_agents init
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 2 80E0298
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 0 80E02C8
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_browse
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 0 80E02F8
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 1 80E0328
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 2 80E0358
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_admin
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 2 80E0388
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 2 80E03B8
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_filter
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 3 80E03E8
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 0 80E0418
Tue Jan  8 11:04:31 2002  util.c:92 config query filter
Tue Jan  8 11:04:31 2002  mod_filter mod_filter startup up... default server rule: 
<query xmlns='jabber:iq:filter'/>
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_offline
Tue Jan  8 11:04:31 2002  mod_offline init
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 1 80E0888
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 0 80E08B8
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_presence
Tue Jan  8 11:04:31 2002  mod_presence init
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 3 80E08E8
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 0 80E0918
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_auth_plain
Tue Jan  8 11:04:31 2002  mod_auth_plain init
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 6 80E0948
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 5 80E0978
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 2 80E09A8
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_auth_digest
Tue Jan  8 11:04:31 2002  mod_auth_digest init
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 5 80E09D8
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_auth_0k
Tue Jan  8 11:04:31 2002  mod_auth_0k initing
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 5 80E0A08
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 6 80E0A38
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 2 80E0A68
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_log
Tue Jan  8 11:04:31 2002  mod_log.c:55 init
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 0 80E0A98
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_register
Tue Jan  8 11:04:31 2002  mod_register init
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 6 80E0AC8
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 2 80E0AF8
Tue Jan  8 11:04:31 2002  jsm.c:117 jsm: loading module mod_xml
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 0 80E0B28
Tue Jan  8 11:04:31 2002  modules.c:68 mapi_register 1 80E0B58
Tue Jan  8 11:04:31 2002  deliver.c:277 Registering xdb with instance xdb
Tue Jan  8 11:04:31 2002  deliver.c:277 Registering * with instance xdb
Tue Jan  8 11:04:31 2002  xdb_file.c:275 xdb_file loading
Tue Jan  8 11:04:31 2002  deliver.c:235 @-internal processing <xdb type='get' 
to='config@-internal' from='xdb' ns='jabber:config:xdb_file' id='0'/>
Tue Jan  8 11:04:31 2002  deliver.c:649 delivering to instance 'xdb'
Tue Jan  8 11:04:31 2002  xdb.c:41 xdb_results checking xdb packet <xdb type='result' 
to='xdb' from='config@-internal' ns='jabber:config:xdb_file' id='0'><xdb_file 
xmlns='jabber:config:xdb_file'>
      <spool>./spool</spool>
    </xdb_file></xdb>
Tue Jan  8 11:04:31 2002  deliver.c:277 Registering c2s with instance c2s
Tue Jan  8 11:04:31 2002  client.c:424 pthsock_client loading
Tue Jan  8 11:04:31 2002  deliver.c:235 @-internal processing <xdb type='get' 
to='config@-internal' from='c2s' ns='jabber:config:pth-csock' id='0'/>
Tue Jan  8 11:04:31 2002  deliver.c:649 delivering to instance 'c2s'
Tue Jan  8 11:04:31 2002  xdb.c:41 xdb_results checking xdb packet <xdb type='result' 
to='c2s' from='config@-internal' ns='jabber:config:pth-csock' id='0'><pthcsock 
xmlns='jabber:config:pth-csock'>
      <authtime/>
      <karma>
        <init>10</init>
        <max>10</max>
        <inc>1</inc>
        <dec>1</dec>
        <penalty>-6</penalty>
        <restore>10</restore>
      </karma>
      
      <ip port='5222'>127.0.0.1</ip>
      <ip port='5222'>john.betelguese.net</ip>
      <ip port='5222'>morningstar.nowhere.lie</ip>
      
    </pthcsock></xdb>
Tue Jan  8 11:04:31 2002  mio.c:1092 io_select to listen on 5222 [127.0.0.1]
Tue Jan  8 11:04:31 2002  mio.c:1116 io_select starting to listen on 5222 [127.0.0.1]
Tue Jan  8 11:04:31 2002  mio.c:1092 io_select to listen on 5222 [john.betelguese.net]
Tue Jan  8 11:04:31 2002  mio.c:1116 io_select starting to listen on 5222 
[john.betelguese.net]
Tue Jan  8 11:04:31 2002  mio.c:1092 io_select to listen on 5222 
[morningstar.nowhere.lie]
Tue Jan  8 11:04:31 2002  mio.c:1116 io_select starting to listen on 5222 
[morningstar.nowhere.lie]
Tue Jan  8 11:04:31 2002  deliver.c:277 Registering elogger with instance elogger
Tue Jan  8 11:04:31 2002  deliver.c:277 Registering * with instance elogger
Tue Jan  8 11:04:31 2002  deliver.c:383 Registering logtype * with instance elogger
Tue Jan  8 11:04:31 2002  base_format.c:112 base_format configuring instance elogger 
Tue Jan  8 11:04:31 2002  base_file.c:80 base_file configuring instance elogger
Tue Jan  8 11:04:31 2002  base_stderr.c:64 base_stderr configuring instnace elogger
Tue Jan  8 11:04:31 2002  deliver.c:277 Registering rlogger with instance rlogger
Tue Jan  8 11:04:31 2002  deliver.c:277 Registering * with instance rlogger
Tue Jan  8 11:04:31 2002  deliver.c:383 Registering logtype record with instance 
rlogger
Tue Jan  8 11:04:31 2002  base_format.c:112 base_format configuring instance rlogger 
Tue Jan  8 11:04:31 2002  base_file.c:80 base_file configuring instance rlogger
Tue Jan  8 11:04:31 2002  deliver.c:277 Registering dnsrv with instance dnsrv
Tue Jan  8 11:04:31 2002  deliver.c:277 Registering * with instance dnsrv
Tue Jan  8 11:04:31 2002  deliver.c:235 @-internal processing <xdb type='get' 
to='config@-internal' from='dnsrv' ns='jabber:config:dnsrv' id='0'/>
Tue Jan  8 11:04:31 2002  deliver.c:649 delivering to instance 'dnsrv'
Tue Jan  8 11:04:31 2002  xdb.c:41 xdb_results checking xdb packet <xdb type='result' 
to='dnsrv' from='config@-internal' ns='jabber:config:dnsrv' id='0'><dnsrv 
xmlns='jabber:config:dnsrv'>
                
        <resend service='_jabber._tcp'>s2s</resend>
        <resend>s2s</resend>
    </dnsrv></xdb>
Tue Jan  8 11:04:31 2002  dnsrv.c:534 dnsrv debug: <dnsrv xmlns='jabber:config:dnsrv'>
                
        <resend service='_jabber._tcp'>s2s</resend>
        <resend>s2s</resend>
    </dnsrv>

Tue Jan  8 11:04:31 2002  dnsrv.c:132 DNSRV CHILD: startingTue Jan  8 11:04:31 2002  
mio.c:614 socket 7 has restore karma -100 -=> 10

Tue Jan  8 11:04:31 2002  deliver.c:277 Registering s2s with instance s2s
Tue Jan  8 11:04:31 2002  dialback.c:265 dialback loading
Tue Jan  8 11:04:31 2002  deliver.c:235 @-internal processing <xdb type='get' 
to='config@-internal' from='s2s' ns='jabber:config:dialback' id='0'/>
Tue Jan  8 11:04:31 2002  deliver.c:649 delivering to instance 's2s'
Tue Jan  8 11:04:31 2002  xdb.c:41 xdb_results checking xdb packet <xdb type='result' 
to='s2s' from='config@-internal' ns='jabber:config:dialback' id='0'><dialback 
xmlns='jabber:config:dialback'>
      <legacy/>
      
      <ip port='5269'>john.betelguese.net</ip>
      <karma>
        <init>50</init>
        <max>50</max>
        <inc>4</inc>
        <dec>1</dec>
        <penalty>-5</penalty>
        <restore>50</restore>
      </karma>
    </dialback></xdb>
Tue Jan  8 11:04:31 2002  mio.c:1092 io_select to listen on 5269 [john.betelguese.net]
Tue Jan  8 11:04:31 2002  dnsrv.c:147 DNSRV CHILD: Read from buffer: <stream>
Tue Jan  8 11:04:31 2002  mio.c:614 socket 6 has restore karma -100 -=> 10
Tue Jan  8 11:04:31 2002  mio.c:1116 io_select starting to listen on 5269 
[john.betelguese.net]
Tue Jan  8 11:04:31 2002  mio.c:614 socket 5 has restore karma -100 -=> 10
Tue Jan  8 11:04:31 2002  mio.c:614 socket 10 has restore karma -100 -=> 50
Tue Jan  8 11:05:32 2002  usercount 0   total users
Tue Jan  8 11:06:33 2002  usercount 0   total users
Tue Jan  8 11:06:53 2002  mio.c:368 _mio_accept calling accept on fd #6
Tue Jan  8 11:06:53 2002  mio.c:395 new socket accepted (fd: 13, ip: 192.168.1.70, 
port: 1045)
Tue Jan  8 11:06:53 2002  mio.c:688 MIO read from socket 13: <stream:stream to='
Tue Jan  8 11:06:53 2002  mio.c:688 MIO read from socket 13: john.betelguese.net' 
xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'>
Tue Jan  8 11:06:53 2002  client.c:227 pthsock_client_read called with: m:810B3D0 
flag:2 arg:810B4D0
Tue Jan  8 11:06:53 2002  client.c:260 root received for 13
Tue Jan  8 11:06:53 2002  mio.c:898 mio_write called on x: 0 buffer: 
Tue Jan  8 11:06:53 2002  mio.c:268 write_dump writing data: <?xml 
version='1.0'?><stream:stream xmlns:stream='http://etherx.jabber.org/streams' 
id='3C3B353D' xmlns='jabber:client' from='john.betelguese.net'>
Tue Jan  8 11:06:53 2002  mio.c:688 MIO read from socket 13: <iq id='A0' 
type='get'><query xmlns='jabber:iq:auth'><username>john</username></query></iq>
Tue Jan  8 11:06:53 2002  client.c:227 pthsock_client_read called with: m:810B3D0 
flag:3 arg:810B4D0
Tue Jan  8 11:06:53 2002  deliver.c:460 DELIVER 4:john.betelguese.net <route 
type='auth' to='[EMAIL PROTECTED]' from='13@c2s/810B3D0'><iq id='A0' 
type='get'><query xmlns='jabber:iq:auth'><username>john</username></query></iq></route>
Tue Jan  8 11:06:53 2002  deliver.c:649 delivering to instance 'dnsrv'
Tue Jan  8 11:06:53 2002  deliver.c:578 delivery failed (Internal Delivery Error)
Tue Jan  8 11:06:53 2002  log.c:105 <log type='notice' 
from='john.betelguese.net'>bouncing a routed packet to [EMAIL PROTECTED] from 
13@c2s/810B3D0: Internal Delivery Error</log>
Tue Jan  8 11:06:53 2002  deliver.c:460 DELIVER 3:john.betelguese.net <log 
type='notice' from='john.betelguese.net'>bouncing a routed packet to 
[EMAIL PROTECTED] from 13@c2s/810B3D0: Internal Delivery Error</log>
Tue Jan  8 11:06:53 2002  deliver.c:649 delivering to instance 'elogger'
20020108T18:06:53: [notice] (john.betelguese.net): bouncing a routed packet to 
[EMAIL PROTECTED] from 13@c2s/810B3D0: Internal Delivery Error
Tue Jan  8 11:06:53 2002  deliver.c:460 DELIVER 4:c2s <route type='error' 
to='13@c2s/810B3D0' from='[EMAIL PROTECTED]' error='Internal Delivery 
Error'><iq id='A0' type='get'><query 
xmlns='jabber:iq:auth'><username>john</username></query></iq></route>
Tue Jan  8 11:06:53 2002  deliver.c:649 delivering to instance 'c2s'
Tue Jan  8 11:06:53 2002  client.c:132 C2S: [EMAIL PROTECTED] has an active 
session, delivering packet
Tue Jan  8 11:06:53 2002  client.c:135 C2S closing down session 
[EMAIL PROTECTED] at request of session manager
Tue Jan  8 11:06:53 2002  mio.c:898 mio_write called on x: 0 buffer: 
Tue Jan  8 11:06:53 2002  mio.c:268 write_dump writing data: 
<stream:error>Disconnected</stream:error></stream:stream>
Tue Jan  8 11:06:53 2002  client.c:227 pthsock_client_read called with: m:810B3D0 
flag:4 arg:810B4D0
Tue Jan  8 11:06:53 2002  client.c:232 io_select Socket 13 close notification
Tue Jan  8 11:06:53 2002  mio.c:354 freed MIO socket
Tue Jan  8 11:07:07 2002  dnsrv.c:143 dnsrv: Read error on coprocess(1): 1 Operation 
not permitted
Tue Jan  8 11:07:07 2002  dnsrv.c:157 DNSRV CHILD: out of loop.. exiting normal
<jabber>

  <!--
  This is the Jabber server configuration file. The file is 
  broken into different sections based on the services being 
  managed by jabberd, the server daemon. Most of the important 
  sections have comments and are easy to modify. You can find
  full instructions in the server howto, which is available at
  http://docs.jabber.org/. Note that when you see a tag like 
  "jabberd:cmdline", it's automatically replaced on startup 
  with the command line flag passed in to jabberd. This enables
  you to override parameters set in this configuration file if 
  necessary or desired. Also note as you comment things in and
  out that jabberd does not like comments within comments, so
  be careful with your XML. :)
  -->


  <!-- 
  The following <service/> section is for the session manager, 
  the most important component within the server. This section
  contains the following types of information: 

    * the server's hostname
    * other basic server information
    * the location of the session log file
    * email addresses for server administrators 
    * the location of the server that provides update information
    * registration instructions for new users
    * a welcome message for new users
    * a list of agents with which users can register
    * load rules for the modules within the session manager

  -->

  <service id="sessions">

    <!-- 
    Change hostname below to something other than "localhost", 
    i.e., to the hostname or IP address of your Jabber server. 
    Multiple <host/> entries are allowed - each one is for a 
    separate virtual server. Note that each host entry must 
    be on one line, the server doesn't like it otherwise! :)
    -->

    <host><jabberd:cmdline flag="h">john.betelguese.net</jabberd:cmdline></host>

    <!-- 
    This is the custom configuration section for the 
    Jabber session manager, a.k.a. "JSM". 
    -->

    <jsm xmlns="jabber:config:jsm">

      <!--
      The <filter/> section below determines settings
      for mod_filter, a server-side module built into
      JSM that enables users to set delivery rules for
      messages they receive (not yet supported by all
      clients. The <allow/> subsection specifies which
      conditions and actions to enable. High-level 
      descriptions of each setting can be found below 
      (see docs.jabber.org for full details):

      * <default/> - a user cannot delete this one, it's
        the default rule for delivering messages
      * <max_size/> - the maximum number of rules in a
        user's rule set (we don't want to overdo it!)
      * conditions...
        * <ns/> - matches the query xmlns attrib on an iq packet
        * <unavailable/> - matches when user is unavailable
        * <from/> - matches the sender of the message
        * <resource/> - matches the receiver's resource
        * <subject/> - matches the subject of the message
        * <body/> - matches the body of the message
        * <show/> - matches the show tag on the receiver's presence
        * <type/> - matches the type of the message
        * <roster/> - matches if the sender is in your roster
        * <group/> - matches if the sender is in the specified group
      * actions...
        * <error/> - replies with an error
        * <offline/> - stores the messages offline
        * <forward/> - forwards the message to another jid
        * <reply/> - sends a reply to the sender of the message
        * <continue/> - continues processing of the rules
        * <settype/> - changes the type of the message
      -->
      <filter>
          <default/>
          <max_size>100</max_size>
          <allow>
              <conditions>
                  <ns/>
                  <unavailable/>
                  <from/>
                  <resource/>
                  <subject/>
                  <body/>
                  <show/>
                  <type/>
                  <roster/>
                  <group/>
              </conditions>
              <actions>
                  <error/>
                  <offline/>
                  <forward/>
                  <reply/>
                  <continue/>
                  <settype/>
              </actions>
          </allow>
      </filter>

      <!-- The server vCard -->

      <vCard>
        <FN>Jabber Server</FN>
        <DESC>A Jabber Server!</DESC>
        <URL>http://www.betelguese.net/</URL>
      </vCard>

      <!-- 
      Registration instructions and required fields. The 
      notify attribute will send the server administrator(s)
      a message after each valid registration if it is set
      to "yes".
      -->

      <register notify="yes">
        <instructions>Choose a username and password to register with this server.</instructions>
        <name/>
        <email/>
      </register>

      <!-- 
      A welcome note that is sent to every new user who registers 
      with your server. Comment it out to disable this function.
      -->

      <welcome>
        <subject>Welcome!</subject>
        <body>Welcome to the Jabber server at betelguese -- we hope you enjoy this service! For information about how to use Jabber, visit the Jabber User's Guide at http://docs.jabber.org/</body>
      </welcome>

      <!-- 
      IDs with admin access - these people will receive admin 
      messages (any message to="yourhostname" is an admin
      message).  These addresses must be local ids, they cannot
      be remote addresses.

      Note that they can also send announcements to all
      users of the server, or to all online users. To use
      the announcement feature, you need to send raw xml and be
      logged in as one of the admin users. Here is the syntax 
      for sending an announcement to online users:

        <message to="yourhostname/announce/online">
          <body>announcement here</body>
        </message>

        <message to="yourhostname/announce/motd">
          <body>message (of the day) that is sent only once to all users that are logged in and additionally to new ones as they log in</body>
        </message>

      Sending to /announce/motd/delete will remove any existing
      motd, and to /announce/motd/update will only update the motd
      without re-announcing to all logged in users.

      The <reply> will be the message that is automatically
      sent in response to any admin messages.
      -->

      <admin>
        <read>[EMAIL PROTECTED]</read>
        <write>[EMAIL PROTECTED]</write>
        <reply>
          <subject>Auto Reply</subject>
          <body>This is a special administrative address.  Your message was received and forwarded to server administrators.</body>
        </reply>
      </admin>

      <!--
      This is the resource that checks for updated versions 
      of the Jabber server software. Note that you don't lose 
      any functionality if you comment this out. Removing the
      <update/> config is especially a good strategy if your 
      server is behind a firewall. If you want to use this 
      feature, change 'localhost' to the hostname or IP address 
      of your server, making sure that it is the same as your 
      entry for <host/> above.

      <update><jabberd:cmdline flag="h">john.betelguese.net</jabberd:cmdline></update>

      -->

      <!--
      This enables the server to automatically update the 
      user directory when a vcard is edited.  The update is
      only sent to the first listed jud service below.  It is
      safe to remove this flag if you do not want any users
      automatically added to the directory.
      -->

      <vcard2jud/>

      <!--
      The <browse/> section identifies the transports and other
      services that are available from this server. Note that each
      entity identified here must exist elsewhere or be further 
      defined in its own <service/> section below. These services 
      will appear in the user interface of Jabber clients that
      connect to your server.
      -->

      <browse>

        <!-- 
        This is the default agent for the master Jabber User 
        Directory, a.k.a. "JUD", which is located at jabber.org.
        You can add separate <service/> sections for additional
        directories, e.g., one for a company intranet.

        <service type="jud" jid="users.jabber.org" name="Jabber User Directory">
          <ns>jabber:iq:search</ns>
          <ns>jabber:iq:register</ns>
        </service>
        -->

        <!--
        The following services are examples only, you will need to
        create/modify them to get them working on your Jabber 
        server. See the README files for each service and/or the 
        server howto for further information/instructions. 
        -->

        <!-- we're commenting these out, of course :)

        <conference type="private" jid="conference.localhost" name="Private Conferencing"/>

        <service type="yahoo" jid="yahoo.localhost" name="Yahoo! Transport">
          <ns>jabber:iq:gateway</ns>
          <ns>jabber:iq:register</ns>
        </service>

        <service type="aim" jid="aim.localhost" name="AIM Transport">
          <ns>jabber:iq:gateway</ns>
          <ns>jabber:iq:register</ns>
        </service>

        end of <service/> examples -->

      </browse>

    </jsm>

    <!--
    The following section dynamically loads the individual
    modules that make up the session manager. Remove or 
    comment out modules to disable them. Note that the order
    of modules is important, since packets are delivered 
    based on the following order!!
    -->

    <load main="jsm">
      <jsm>./jsm/jsm.so</jsm>
      <mod_echo>./jsm/jsm.so</mod_echo>
      <mod_roster>./jsm/jsm.so</mod_roster>
      <mod_time>./jsm/jsm.so</mod_time>
      <mod_vcard>./jsm/jsm.so</mod_vcard>
      <mod_last>./jsm/jsm.so</mod_last>
      <mod_version>./jsm/jsm.so</mod_version>
      <mod_announce>./jsm/jsm.so</mod_announce>
      <mod_agents>./jsm/jsm.so</mod_agents>
      <mod_browse>./jsm/jsm.so</mod_browse>
      <mod_admin>./jsm/jsm.so</mod_admin>
      <mod_filter>./jsm/jsm.so</mod_filter>
      <mod_offline>./jsm/jsm.so</mod_offline>
      <mod_presence>./jsm/jsm.so</mod_presence>
      <mod_auth_plain>./jsm/jsm.so</mod_auth_plain>
      <mod_auth_digest>./jsm/jsm.so</mod_auth_digest>
      <mod_auth_0k>./jsm/jsm.so</mod_auth_0k>
      <mod_log>./jsm/jsm.so</mod_log>
      <mod_register>./jsm/jsm.so</mod_register>
      <mod_xml>./jsm/jsm.so</mod_xml>
    </load>

  </service>

  <!-- OK, we've finished defining the Jabber Session Manager. -->

  <!-- The <xdb/> component handles all data storage, using the filesystem. -->

  <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>

  <!--
  The following service manages incoming client socket connections.
  There are several items you can set here to optimize performance:

    * authtime - default is unlimited, but you can set this to
      limit the amount of time allowed for authentication to be
      completed, e.g., <authtime>10</authtime> for 10 seconds

    * karma - this is an input/output rate limiting system that
      the Jabber team came up with to prevent bandwidth hogging.
      For details about karma, read the io section at the bottom 
      and/or see docs.jabber.org. These are the low settings and
      apply per connection/socket and can be changed as desired.

  -->

  <service id="c2s">
    <load>
      <pthsock_client>./pthsock/pthsock_client.so</pthsock_client>
    </load>
    <pthcsock xmlns='jabber:config:pth-csock'>
      <authtime/>
      <karma>
        <init>10</init>
        <max>10</max>
        <inc>1</inc>
        <dec>1</dec>
        <penalty>-6</penalty>
        <restore>10</restore>
      </karma>
      <!-- 
      Use these to listen on particular addresses and/or ports.
      <ip port="5222">127.0.0.1</ip>
      <ip port="5222"/>
      -->
      <ip port="5222">127.0.0.1</ip>
      <ip port="5222">john.betelguese.net</ip>
      <ip port="5222">morningstar.nowhere.lie</ip>
      <!--
      The <ssl/> tag acts just like the <ip/> tag.  Except SSL is used
      on the ports and ips specified.  You must specify an IP here, or the
      connections will fail.

      <ssl port='5223'>127.0.0.1</ip>
      <ssl port='5224'>192.168.1.100</ip>
      -->
    </pthcsock>
  </service>

  <!-- 
  This is the default server error logging component, 
  which copies to a file and to STDERR. 
  -->

  <log id='elogger'>
    <host/>
    <logtype/>
    <format>%d: [%t] (%h): %s</format>
    <file>error.log</file>
    <stderr/>
  </log>

  <!-- 
  This is the default server record logging component, 
  which logs general statistical/tracking data. 
  -->

  <log id='rlogger'>
    <host/>
    <logtype>record</logtype>
    <format>%d %h %s</format>
    <file>record.log</file>
  </log>

  <!-- The following two services are for handling server-to-server traffic. -->

  <!-- External asychronous DNS resolver -->

  <service id="dnsrv">
    <host/>
    <load>
      <dnsrv>./dnsrv/dnsrv.so</dnsrv>
    </load>
    <dnsrv xmlns="jabber:config:dnsrv">
		<!-- for supporting SRV records -->
    	<resend service="_jabber._tcp">s2s</resend>
    	<resend>s2s</resend>
    </dnsrv>
  </service>

  <!--
  The following 's2s' config handles server connections and 
  dialback hostname verification.  The <legacy/> element is 
  here to enable communication with old 1.0 servers. The 
  karma settings are a little higher here to handle the 
  higher traffic of server-to-server connections (read
  the io section below for more details, medium settings).
  -->

  <service id="s2s">
    <load>
      <dialback>./dialback/dialback.so</dialback>
    </load>
    <dialback xmlns='jabber:config:dialback'>
      <legacy/>
      <!-- Use these to listen on particular addresses and/or ports.
      <ip port="7000"/>
      <ip port="5269"/>
      -->
      <ip port="5269">john.betelguese.net</ip>
      <karma>
        <init>50</init>
        <max>50</max>
        <inc>4</inc>
        <dec>1</dec>
        <penalty>-5</penalty>
        <restore>50</restore>
      </karma>
    </dialback>
  </service>

  <!-- 
  If you identified additional agents in the main <service/> 
  section (see examples above), you'll need to define each 
  of them here using a separate <service/> section for each 
  <agent/> you identified. Note that the <agent/> sections
  determine what gets shown to clients that connect to your
  server, whereas the following <service/> sections define
  these services within the server itself. The following are
  examples only, you will need to create/modify them to get 
  them working on your Jabber server. See the README files 
  for each agent and/or the server howto for further 
  information/instructions. 
  -->

  <!-- we're commenting these out, of course :)

  <service id="conference">
    <load>
      <groupchat>/path/to/groupchat.so</groupchat>
    </load>
    <host>conference.localhost</host>
  </service>

  <service id="irc">
    <host>irc.localhost</host>
  </service>

  <service id="yahoo.localhost">
    <accept>
      <ip/>
      <port>9001</port>
      <secret>jabber-rocks</secret>
    </accept>
  </service>

  end of <service/> examples -->

  <!--
  The following <io/> config initializes the top-level
  I/O, otherwise known as MIO (Managed Input/Output).
  -->

  <io>

    <!-- Set the default karma for *all* sockets -->
    <!-- definition of terms:
        Avg. Throughput:    The ammount of bytes you can send every second without incuring any penalty
        Burst allowed to:   The maximum you can send in 2 seconds without incuring any penalty
        max sustained rate: if you send data as fast as you can, you will hit penalty, and will not be able to send for 10 seconds,
                            this is the average rate you can dump data when you are dumping as much as you can, as fast as you can.
        seconds to recover from burst: The ammount of time it will take to reach Avg. Throughput capability, after sending max burst 
                                       of data
        penalty length:     Penalty will last abs(penalty) * Heartbeat seconds  so a penalty of -5 and heartbeat of 2 will last 10 sec.
                            NOTE: penalty CANNOT be less than -100.. otherwise strange things might happen.
    -->
    <!-- Example of Low Karma Limits 
        Avg. throughput:  1k-2k/s 
        burst allowed to: 5.5k/s 
        max sustained rate: 485b/s
        seconds to recover from burst: 20
        penalty length:   12 seconds
    <karma>
      <heartbeat>2</heartbeat>
      <init>10</init>
      <max>10</max>
      <inc>1</inc>
      <dec>1</dec>
      <penalty>-6</penalty>
      <restore>10</restore>
    </karma>
    -->

    <!-- Example of Medium Karma Limits 
        Avg. throughput:  5k-10k/s 
        burst allowed to: 125.5k/s 
        max sustained rate: 12.6k/s
        seconds to recover from burst: 25
        penalty length:   10 seconds
    <karma>
      <heartbeat>2</heartbeat>
      <init>50</init>
      <max>50</max>
      <inc>4</inc>
      <dec>1</dec>
      <penalty>-5</penalty>
      <restore>50</restore>
    </karma>
    -->

    <!-- Example of High Karma Limits 
        Avg. throughput:  5k-10k/s 
        burst allowed to: 206k/s 
        max Sustained rate: 34.3k/s
        seconds to recover from burst: 21
        penalty length:   6 seconds
    <karma>
      <heartbeat>2</heartbeat>
      <init>64</init>
      <max>64</max>
      <inc>6</inc>
      <dec>1</dec>
      <penalty>-3</penalty>
      <restore>64</restore>
    </karma>
    -->

    <karma>
      <heartbeat>2</heartbeat>
      <init>64</init>
      <max>64</max>
      <inc>6</inc>
      <dec>1</dec>
      <penalty>-3</penalty>
      <restore>64</restore>
    </karma>

    <!-- 
    Set rate limits to monitor the number of connection
    attempts from a single IP, any more than [points]
    within [time] will engage the limit.  This setting
    applies to all incoming connections to any service,
    unless otherwise overridden by that service.
    -->

    <rate points="5" time="25"/>

    <!-- 
    The following section initializes SSL for top-level I/O.
    This works only when the server is compiled with openssl!
    -->
    <!--
    <ssl>
      <key ip='192.168.1.1'>/path/to/cert_and_key.pem</key>
      <key ip='192.168.1.100'>/path/to/other/cert_and_key.pem</key>
    </ssl>
    -->

    <!-- 
    The following section is used to allow or deny 
    communications from specified IP networks or 
    addressses. If there is no <allow/> section, 
    then *all* IPs will be allowed to connect. If 
    you allow one block, then only that block may 
    connect. Note that <allow/> is checked before
    <deny/>, so if a specific address is allowed 
    but the network for that address is denied, 
    then that address will still be denied.
    -->
    <!--
    <allow><ip>127.0.0.0</ip><mask>255.255.255.0</mask></allow>
    <allow><ip>12.34.56.78</ip></allow>
    <deny><ip>22.11.44.0</ip><mask>255.255.255.0</mask></deny>
    -->

  </io>

  <!--
  This specifies the file to store the pid of the process in.
  -->
  <pidfile>./jabber.pid</pidfile>


</jabber>

Reply via email to