<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" 
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">

<section id="msilo" xmlns:xi="http://www.w3.org/2001/XInclude">
    <sectioninfo>
	<authorgroup>
	    <author>
		<firstname>Daniel-Constantin</firstname>
		<surname>Mierla</surname>
		<affiliation><orgname>FhG FOKUS</orgname></affiliation>
		<address>
		<email>mierla@fokus.fraunhofer.de</email>
		</address>
	    </author>
	</authorgroup>
	<copyright>
	    <year>2003</year>
	    <holder>FhG FOKUS</holder>
	</copyright>
    </sectioninfo>

    <title>Msilo Module</title>

    <section id="msilo.overview">
	<title>Overview</title>
	<para>
	    This modules provides offline message storage for SER. It stores
	    received messages for an offline user and sends them when the user
	    becomes online.
	</para>
	<para>
	    For each message, the modules stores "Request-URI" ("R-URI") only
	    if it is a complete address of record ("username@hostname"), URI
	    from "To" header, URI from "From" header, incoming time, expiration
	    time, content type and body of the message. If "R-URI" is not an
	    address of record (it might be the contact address for current SIP
	    session) the URI from "To" header will be used as
	    <abbrev>R-URI</abbrev>.
	</para>
	<para>
	    When the expiration time passed, the message is discarded from
	    database.  Expiration time is computed based on incoming time and
	    one of the module's parameters.
	</para>
	<para>
	    Every time when a user registers with SER, the module is looking in
	    database for offline messages intended for that user. All of them
	    will be sent to contact address provided in REGISTER request.
	</para>
	<para>
	    It may happen the SIP user to be registered but his SIP User Agent
	    to have no support for MESSAGE request. In this case it should be
	    used the "failure_route" to store the undelivered requests.
	</para>
    </section>

    <section id="msilo.dep">
	<title>Dependencies</title>
	<section id="msilo.modules">
	    <title>SER modules</title>
	    <para>
		The following modules must be loaded before this module:
	    	<itemizedlist>
		    <listitem>
			<para>
			    <emphasis>database module</emphasis> - mysql,
			    dbtext or other module that implements the "db"
			    interface and provides support for
			    storing/receiving data to/from a database system.
			</para>
		    </listitem>
		    <listitem>
			<para>
			    <emphasis>tm</emphasis> - Transaction module is
			    used to send SIP requests.
			</para>
		    </listitem>
	    	</itemizedlist>
	    </para>
	</section>
    </section>
    
    <section id="install_and_run">
	<title>Installation And Running</title>
    	<section>
	    <title>SER Configuration File</title>
	    <para>Configuration example for msilo module.</para>
	    <example>
		<title>SER Configuration Example</title>
		<programlisting>
<xi:include href="msilo.cfg" parse="text"/>
		</programlisting>
	    </example>
	</section>
    </section>

    <xi:include href="params.xml"/>
    <xi:include href="functions.xml"/>

</section>
