1. Textopsx Module

Andrei Pelinescu-Onciul

   FhG FOKUS

Daniel-Constantin Mierla

   asipto.com
   <miconda@gmail.com>

   Copyright © 2003 FhG FOKUS
     __________________________________________________________________

   1.1. Overview
   1.2. Functions

        1.2.1. msg_apply_changes()
        1.2.2. change_reply_status(code, reason)
        1.2.3. remove_body()
        1.2.4. keep_hf(regexp)
        1.2.5. fnmatch(value, expr [, flags])

1.1. Overview

   This is a module implementing funtions for text operations over SIP
   messages in configuration files. It comes to add new features similar
   to textops module (textops eXtentions).

1.2. Functions

1.2.1. msg_apply_changes()

   Use this function to apply changes performed on SIP request content. Be
   careful when using this function; due to special handling of changes
   done to SIP message buffer so far, using this function might change the
   behaviour of your config. Do test your config properly!

   This function can be used from REQUEST_ROUTE.

   Example 1. msg_apply_changes() usage
...
append_hf("My-Header: yes\r\n");
if(msg_apply_changes())
{
    # msg buffer has a new content
    if(is_present_hf("My-Header"))
    {
        # will get here always
    }
}
...

1.2.2. change_reply_status(code, reason)

   Intercept a SIP reply (in an onreply_route) and change its status code
   and reason phrase prior to propogating it.

   Meaning of the parameters is as follows:
     * code - Status code.
     * reason - Reason phrase.

   This function can be used from ONREPLY_ROUTE.

   Example 2. change_reply_status usage
...
onreply_route {
    if (@status == "603") {
        change_reply_status(404, "Not Found");
        exit;
    }
}
...

1.2.3. remove_body()

   Use this function to remove body of SIP requests or replies.

   This function can be used from ANY_ROUTE.

   Example 3. remove_body() usage
...
remove_body();
...

1.2.4. keep_hf(regexp)

   Remove headers that don't match the regular expression regexp. Several
   header are ignored always (thus not removed): Via, From, To, Call-ID,
   CSeq, Content-Lenght, Content-Type, Max-Forwards, Contact, Route,
   Record-Route -- these can be removed one by one with remove_hf().

   This function can be used from ANY_ROUTE.

   Example 4. keep_hf() usage
...
keep_hf("User-Agent");
...

1.2.5. fnmatch(value, expr [, flags])

   Match the value against the expr using the shell-style pattern for file
   name matching (see man page for C function fnmatch()). It is known to
   be faster and uses less-memory than regexp.

   Parameters flags is optional and can be 'i' to do case insensitive
   matching.

   This function can be used from ANY_ROUTE.

   Example 5. fnmatch() usage
...
if(fnmatch("$rU", "123*"))
{
    ...
}
...
