You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kamailio/modules/textopsx/README

118 lines
2.7 KiB

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*"))
{
...
}
...