[JDEV] Server without involving jabber.org?
Keith Barrett
kbarrett at redhat.com
Fri Jan 26 15:31:14 CST 2001
Thomas Muldowney wrote:
>
> This is a big thread ;-) Could I see your jabber.xml? It would help a lot, be
> sure to remove any passwords ;-)
>
attached
--
Keith Barrett
Red Hat Inc.
-------------- next part --------------
<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">localhost</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://localhost/</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 localhost -- 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>
<!-- The location of the session log file. -->
<log>
<file>session.log</file>
<type>session</type>
</log>
<!--
IDs with admin access - these people will receive admin
messages. 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>
-->
<!--
<admin>
<read>root at localhost</read>
<write>root at localhost</write>
</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">localhost</jabberd:cmdline></update> -->
<!--
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="aim" jid="aim.localhost" name="AIM Transport">
<ns>jabber:iq:gateway</ns>
<ns>jabber:iq:register</ns>
</service>
<service type="yahoo" jid="yahoo.localhost" name="Yahoo! Transport">
<ns>jabber:iq:gateway</ns>
<ns>jabber:iq:register</ns>
</service>
Need somethere here ###
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> don't talk to jabber.org -->
<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
* rate - this controls the number of times that an IP can try
to connect within a certain time period. The default is 25
connection attempts ("points") in five seconds, but you can
change this setting as necessary.
* karma - this is an input/output rate limiting system that
the Jabber team came up with to prevent bandwidth hogging.
For details about karma, see docs.jabber.org. These
settings 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>
<dec>1</dec>
</karma>
<!--
Use these to listen on particular addresses and/or ports.
<ip port="5222">127.0.0.1</ip>
-->
<ip port="5222"/>
</pthcsock>
</service>
<!--
This is the default server logging component,
which copies to a file and to STDERR.
-->
<log id='logger'>
<host/>
<format>%d: [%t] (%h): %s</format>
<file>error.log</file>
<stderr/>
</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">
<resend service="_jabber._tcp">s2s</resend>
<!-- for supporting SRV records -->
<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.
-->
<!--
<service id="s2s">
<load>
<dialback>./dialback/dialback.so</dialback>
</load>
<dialback xmlns='jabber:config:dialback'>
<legacy/>
<ip port="7000"/>
<ip port="5269">127.0.0.1</ip>
<ip port="5269"/>
</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="aim.localhost">
<accept>
<ip/>
<port>7009</port>
<secret>jabber-rocks</secret>
</accept>
</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 -->
<!--
<karma>
<heartbeat>2</heartbeat>
<init>10</init>
<max>10</max>
<inc>1</inc>
<dec>-1</dec>
<penalty>-5</penalty>
<restore>10</restore>
</karma>
-->
<!--
Set rate limits to monitor the number of connection
attempts (points) per second (time)
-->
<!--
<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>
</jabber>
More information about the JDev
mailing list