
rr Name

Jan Janak

   FhG FOKUS

Edited by

Jan Janak

   Copyright © 2003 FhG FOKUS
     _________________________________________________________

   Table of Contents
   1. User's Guide

        1.1. Overview
        1.2. Dependencies

              1.2.1. SER Modules
              1.2.2. External Libraries or Applications

        1.3. Exported Parameters

              1.3.1. enable_full_lr (integer)
              1.3.2. append_fromtag (integer)
              1.3.3. enable_double_rr (integer)
              1.3.4. add_username (integer)

        1.4. Exported Functions

              1.4.1. loose_route()
              1.4.2. strict_route() -- deprecated
              1.4.3. record_route()
              1.4.4. record_route_preset(string)

   2. Developer's Guide
   3. Frequently Asked Questions

   List of Examples
   1-1. Set enable_full_lr parameter
   1-2. Set append_fromtag parameter
   1-3. Set enable_double_rr parameter
   1-4. Set enable_double_rr parameter
   1-5. loose_route usage
   1-6. strict_route usage
   1-7. record_route usage
   1-8. record_route_preset usage
     _________________________________________________________

Chapter 1. User's Guide

1.1. Overview

   The module contains record routing logic
     _________________________________________________________

1.2. Dependencies

1.2.1. SER Modules

   The following modules must be loaded before this module:

     * No dependencies on other SER modules.
     _________________________________________________________

1.2.2. External Libraries or Applications

   The following libraries or applications must be installed
   before running SER with this module loaded:

     * None.
     _________________________________________________________

1.3. Exported Parameters

1.3.1. enable_full_lr (integer)

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

   Default value is 0 (no). 

   Example 1-1. Set enable_full_lr parameter
...
modparam("rr", "enable_full_lr", 1)
...
     _________________________________________________________

1.3.2. append_fromtag (integer)

   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)

   Default value is 1 (yes). 

   Example 1-2. Set append_fromtag parameter
...
modparam("rr", "append_fromtag", 0)
...
     _________________________________________________________

1.3.3. enable_double_rr (integer)

   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.

   Default value is 1 (yes). 

   Example 1-3. Set enable_double_rr parameter
...
modparam("rr", "enable_double_rr", 0)
...
     _________________________________________________________

1.3.4. add_username (integer)

   This parameter controls whether Record-Route header fields
   inserted by SER will contain the username part. When set to 0
   then SER will produce Record-Route header fields without the
   username part, when set to 1 then Record-Route header fields
   will contain the username of the callee in the username part.

   Default value is 0 (do not add username). 

   Example 1-4. Set enable_double_rr parameter
...
modparam("rr", "enable_double_rr", 0)
...
     _________________________________________________________

1.4. Exported Functions

1.4.1. loose_route()

   The function performs loose routing as defined in RFC3261. See
   the RFC3261 for more details.

   Example 1-5. loose_route usage
...
loose_route();
...
     _________________________________________________________

1.4.2. strict_route() -- deprecated

   If there are any Route HFs in the message, the function takes
   the first one, rewrites Request-URI with it's value and
   removes the first URI from Route HFs.

   Example 1-6. strict_route usage
...
strict_route();
...
     _________________________________________________________

1.4.3. record_route()

   The function adds a new Record-Route header field. The header
   field will be inserted in the message before any other
   Record-Route header fields.

   Example 1-7. record_route usage
...
record_route();
...
     _________________________________________________________

1.4.4. record_route_preset(string)

   This function will put the string into Record-Route, don't use
   unless you know what you are doing.

   Meaning of the parameters is as follows:

     * string - String to be inserted into the header field.

   Example 1-8. record_route_preset usage
...
record_route_preset("1.2.3.4:5090");
...
     _________________________________________________________

Chapter 2. Developer's Guide

   The module does not provide any sort of API to use in other
   SER modules.
     _________________________________________________________

Chapter 3. Frequently Asked Questions

   3.1. Where can I find more about SER?
   3.2. Where can I post a question about this module?
   3.3. How can I report a bug?

   3.1. Where can I find more about SER?

   Take a look at http://iptel.org/ser.

   3.2. Where can I post a question about this module?

   First at all check if your question was already answered on
   one of our mailing lists:

     * http://mail.iptel.org/mailman/listinfo/serusers
     * http://mail.iptel.org/mailman/listinfo/serdev

   E-mails regarding any stable version should be sent to
   <serusers@iptel.org> and e-mail regarding development versions
   or CVS snapshots should be send to <serdev@iptel.org>.

   If you want to keep the mail private, send it to
   <serhelp@iptel.org>.

   3.3. How can I report a bug?

   Please follow the guidelines provided at:
   http://iptel.org/ser/bugs
