mirror of https://github.com/sipwise/kamailio.git
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.
118 lines
2.7 KiB
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*"))
|
|
{
|
|
...
|
|
}
|
|
...
|