Component Instance: sessions

The sessions component, described by the configuration XML shown in Example 4-8 and shown in diagram form in Figure 4-5, provides Session Management features for users (the word “users” is employed in the widest possible sense—a user could be a person or a script) connecting with Jabber clients, through XML streams identified with the jabber:client stream namespace.

Diagram view of sessions component instance
Figure 4-5. Diagram view of sessions component instance

The component also provides the services that give Jabber its IM capabilities— services such as roster management, message filtering, store-and-forward (“offline”) message handling, and so on. These IM services are loaded individually as part of the component connection phase.

Example 4-8. jabber.xml configuration for the sessions component instance

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

Get Programming Jabber now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.