| Programming Jabber | ||
|---|---|---|
| Prev | ||
This Appendix contains the contents of the default jabber.xml configuration file installed with version 1.4.1 of the Jabber server. The contents have been extended with the addition of Conferencing and local Jabber User Directory (JUD) components. Each 'section' of the configuration has been separated from the next with comment style dividing lines, and the configuration has been set up for the host on which we installed our Jabber server in Chapter 3 - yak.
The structure and contents of this jabber.xml configuration are discussed in the section called A Tour of jabber.xml in Chapter 4.
Figure A-1. Version 1.4.1 jabber.xml with JUD and Conferencing
<jabber>
<!---------------------------------->
<service id="sessions">
<host><jabberd:cmdline flag="h">yak</jabberd:cmdline></host>
<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 on yak</FN>
<DESC>A Jabber Server!</DESC>
<URL>http://yak/</URL>
</vCard>
<register notify="yes">
<instructions>Choose a userid and password to register.</instructions>
<name/>
<email/>
</register>
<welcome>
<subject>Welcome!</subject>
<body>Welcome to the Jabber server on yak</body>
</welcome>
<!--
<admin>
<read>support@yak</read>
<write>admin@yak</write>
<reply>
<subject>Auto Reply</subject>
<body>This is a special administrative address.</body>
</reply>
</admin>
-->
<update><jabberd:cmdline flag="h">yak</jabberd:cmdline></update>
<vcard2jud/>
<browse>
<service type="jud" jid="jud.yak" name="yak User Directory">
<ns>jabber:iq:search</ns>
<ns>jabber:iq:register</ns>
</service>
<conference type="public" jid="conference.yak" name="yak Conferencing"/>
</browse>
</jsm>
<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>
<!---------------------------------->
<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>
<!---------------------------------->
<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>
<ip port="5222"/>
</pthcsock>
</service>
<!---------------------------------->
<log id='elogger'>
<host/>
<logtype/>
<format>%d: [%t] (%h): %s</format>
<file>error.log</file>
<stderr/>
</log>
<!---------------------------------->
<log id='rlogger'>
<host/>
<logtype>record</logtype>
<format>%d %h %s</format>
<file>record.log</file>
</log>
<!---------------------------------->
<service id="dnsrv">
<host/>
<load>
<dnsrv>./dnsrv/dnsrv.so</dnsrv>
</load>
<dnsrv xmlns="jabber:config:dnsrv">
<resend service="_jabber._tcp">s2s</resend>
<resend>s2s</resend>
</dnsrv>
</service>
<!---------------------------------->
<service id="s2s">
<load>
<dialback>./dialback/dialback.so</dialback>
</load>
<dialback xmlns='jabber:config:dialback'>
<legacy/>
<ip port="5269"/>
<karma>
<init>50</init>
<max>50</max>
<inc>4</inc>
<dec>1</dec>
<penalty>-5</penalty>
<restore>50</restore>
</karma>
</dialback>
</service>
<!---------------------------------->
<service id='conf'>
<host>conference.yak</host>
<load>
<conference>./conference-0.4.1/conference.so</conference>
</load>
<conference xmlns="jabber:config:conference">
<public/>
<vCard>
<FN>yak Chatrooms</FN>
<DESC>This service is for public chatrooms.</DESC>
<URL>http://yak/chat</URL>
</vCard>
<history>20</history>
<notice>
<join> has become available</join>
<leave> has left</leave>
<rename> is now known as </rename>
</notice>
<room jid="kitchen@conference.yak">
<name>The Kitchen</name>
<notice>
<join> has entered the cooking melee</join>
<leave> can't stand the heat</leave>
<rename> now answers to </rename>
</notice>
</room>
</conference>
</service>
<!---------------------------------->
<service id="jud">
<host>jud.yak</host>
<load>
<jud>./jud-0.4/jud.so</jud>
</load>
<jud xmlns="jabber:config:jud">
<vCard>
<FN>JUD on yak</FN>
<DESC>yak User Directory Services</DESC>
<URL>http://yak/</URL>
</vCard>
</jud>
</service>
<!---------------------------------->
<io>
<karma>
<heartbeat>2</heartbeat>
<init>64</init>
<max>64</max>
<inc>6</inc>
<dec>1</dec>
<penalty>-3</penalty>
<restore>64</restore>
</karma>
<rate points="5" time="25"/>
</io>
<!---------------------------------->
<pidfile>./jabber.pid</pidfile>
<!---------------------------------->
</jabber>