<?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="rr.parameters" xmlns:xi="http://www.w3.org/2001/XInclude">
    <sectioninfo>
    </sectioninfo>

    <title>Parameters</title>

    <section id="enable_full_lr">
	<title><varname>enable_full_lr</varname> (integer)</title>
	<para>
	    If set to 1 then ;lr=on instead of just ;lr will be used. This is
	    to overcome problems with broken UAs which strip ;lr parameter
	    when generating Route header fields from Record-Route (;lr=on seems
	    to help).
	</para>
	<para>
	    Default value is 0 (no).
	</para>
	<example>
	    <title>Set <varname>enable_full_lr</varname> parameter</title>
	    <programlisting>
...
modparam("rr", "enable_full_lr", 1)
...
	    </programlisting>
	</example>
    </section>
    
    <section id="append_fromtag">
	<title><varname>append_fromtag</varname> (integer)</title>
	<para>
	    if turned on, request's from-tag is appended to record-route;
	    that's useful for understanding whether subsequent requests (such
	    as BYE) come from caller (route's from-tag==BYE's from-tag) or
	    callee (route's from-tag==BYE's to-tag)
	</para>
	<para>
	    Default value is 1 (yes).
	</para>
	<example>
	    <title>Set <varname>append_fromtag</varname> parameter</title>
	    <programlisting>
...
modparam("rr", "append_fromtag", 0)
...
	    </programlisting>
	</example>
    </section>

    <section id="enable_double_rr">
	<title><varname>enable_double_rr</varname> (integer)</title>
	<para>
	    There are some situations when the server needs to insert two
	    Record-Route header fields instead of one. For example when using
	    two disconnected networks or doing cross-protocol forwarding from
	    UDP->TCP. This parameter enables inserting of 2 Record-Routes. The
	    server will later remove both of them.
	</para>
	<para>
	    Default value is 1 (yes).
	</para>
	<example>
	    <title>Set <varname>enable_double_rr</varname> parameter</title>
	    <programlisting>
...
modparam("rr", "enable_double_rr", 0)
...
	    </programlisting>
	</example>
    </section>

    <section id="user_part_avp">
	<title><varname>user_part_avp</varname> (string)</title>
	<para>
	    If this parameter is set, the loose_route call stores the user
	    part of the route URI in the AVP, which is identified by the
	    parameter value. It can be utilized later in the routing script.	    
	</para>
	<para>
	    Default value is NULL (do not insert user part into avps).
	</para>
	<example>
	    <title>Set <varname>user_part_avp</varname> parameter, later use</title>
	    <programlisting>
...
modparam("rr", "user_part_avp", "route_user")
...
route{
...
	if (loose_route()) {
		t_relay();
	}
	
	if ($route_user == "my_user") {
		...
	}
...
}
	    </programlisting>
	</example>
    </section>

    <section id="next_route_avp">
	<title><varname>next_route_avp</varname> (string)</title>
	<para>
	    If this parameter is set, the loose_route call stores the URI
	    of the next hop in the AVP, which is identified by the
	    parameter value. It can be then utilized in the routing script.	    
	</para>
	<para>
	    Default value is NULL (do not insert next route into avps).
	</para>
	<example>
	    <title>Set <varname>next_route_avp</varname> parameter, later use</title>
	    <programlisting>
...
modparam("rr", "next_route_avp", "route_next")
...
route{
...
	loose_route();
	
	if ($route_next=~"101.102.103.1[0-9][0-9]") {
		t_relay();
	}
	    </programlisting>
	</example>
    </section>
    
	<section id="cookie_secret">
	<title><varname>cookie_secret</varname> (string)</title>
	<para>
	    Secret to distinguish cookies from different servers.
	</para>
	<para>
	    Default value is empty string.
	</para>
	<example>
	    <title>Set <varname>cookie_secret</varname> parameter, later use</title>
	    <programlisting>
...
modparam("rr", "cookie_secret", "bflmpsvz")
...
	    </programlisting>
	</example>
    </section>

    <section id="force_send_socket">
	<title><varname>force_send_socket</varname> (integer)</title>
	<para>
	    If set to 1 and two Record-Route headers have been inserted
	    by the proxy before then the outgoing socket is forced by
	    loose_route() to be the address of the second Route header
	    in the in-dialog requests. Useful on multihomed hosts.
	</para>
	<para>
	    Default value is 1 (yes).
	</para>
	<example>
	    <title>Set <varname>force_send_socket</varname> parameter</title>
	    <programlisting>
...
modparam("rr", "force_send_socket", 1)
...
	    </programlisting>
	</example>
    </section>
</section>
