Kamailio module: Difference between revisions

From 탱이의 잡동사니
Jump to navigation Jump to search
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;
};
...

SL