Kamailio module: Difference between revisions
Line 56: | Line 56: | ||
... | ... | ||
</pre> | </pre> | ||
== SL == | |||
[[category:kamailio]] | [[category:kamailio]] |
Revision as of 15:32, 23 July 2019
Overview
Kamailio module들 내용 설명
Dispatcher
Kamailio 에서 트래픽 로드 밸런싱을 수행할 수 있는 모듈이다.
ETC
Kamailio 4.4.7 버전에서 이슈가 있었다. 새롭게 Asteri
Dispatcher 모듈에 여러개의 Asterisk IP 가 설정되어 있는 상황에서, 어느 하나의 IP 가 flag 4(Disabled) 로 설정되게 되면 정상적으로 로드 밸런싱을 수행하지 않는 문제가 있었다.
MAXFWD
Max-Forward SIP header 와 관련된 기능을 수행할 수 있는 모듈이다.
The SIP Max-Forward header is used to prevent loops in a SIP network. Every server that process and forward a SIP request lowers the Max-Forward value with one. When the value reaches zero, the request is not forwarded and an error response is sent to the UAC.
Parameters
max_limit(integer)
Set an upper limit for the max-forward value in the outgoing requests. If the header is present, the decremented value is not allowed this max_limits - if it does, the header value will by decreased to "max_limit". This check is done when calling the maxfwd_process() function.
The range of values stretches from 1 to 256, which is the maximum MAX-FORWARDS value allowed by RFC 3261. The value can be changed at runtime.
Default value is "70"
modparam("maxfwd", "max_limit", 32)
Functions
maxfwd_process(max_value)
If no Max-Forward header is present in the received request, a header will be added having the original value equal with "max_value". If a Max-Forward header is already present, its value will be decremented(if not 0). The parameter can be a variable.
This function can be used from REQUEST_ROUTE.
Variables
- max_value: Value to be added if there is no Max-Forward header field in the message.
Return code
- 2 (true): header was not found and a new header was successfully added.
- 1 (true): header was found and its value was successfully decremented (had a non-0 value).
- -1(false): the header was found and its value is 0(cannot be decremented).
- -2(false): error during processing.
The return code may be extensivly tested via script variable "retcode" (or "$?").
... # initial sanity checks --- messages with # max_forwards==0, or excessively long requests if (!maxfwd_process("10") && $retcode==-1) { sl_send_reply("483", "Too Many Hops"); exit; }; ...