cookbooks:devel:core
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
cookbooks:devel:core [2021/08/28 06:02] – jih | cookbooks:devel:core [2022/04/11 15:10] (current) – [substdefs] bkaufman | ||
---|---|---|---|
Line 395: | Line 395: | ||
It is a simplified alternative of using **# | It is a simplified alternative of using **# | ||
- | | + | |
+ | ==== defenvs ==== | ||
+ | |||
+ | Similar to **# | ||
+ | |||
+ | <code c> | ||
+ | #!defenvs ENVVAR | ||
+ | #!defenvs ID=ENVVAR | ||
+ | </ | ||
==== subst ==== | ==== subst ==== | ||
Line 431: | Line 439: | ||
Similar to **subst**, but in addition it adds a **#!define ID " | Similar to **subst**, but in addition it adds a **#!define ID " | ||
+ | |||
+ | ==== trydefenv ==== | ||
+ | |||
+ | <code c> | ||
+ | #!trydefenv ID=ENVVAR | ||
+ | </ | ||
+ | |||
+ | Similar to **defenv**, but will not error if the environmental variable is not set. This allows for boolean defines via system ENVVARs. | ||
+ | |||
+ | <code c> | ||
+ | #!trydefenv WITH_MYSQL | ||
+ | |||
+ | #!ifdef WITH_MYSQL | ||
+ | loadmodule " | ||
+ | #!ifdef | ||
+ | </ | ||
+ | |||
+ | ==== trydefenvns ==== | ||
+ | |||
+ | Similar to **# | ||
+ | |||
+ | <code c> | ||
+ | # | ||
+ | # | ||
+ | </ | ||
+ | |||
===== Core Keywords ===== | ===== Core Keywords ===== | ||
Line 1221: | Line 1255: | ||
Note that there is no internal check for uniqueness of the socket names, the admin has to ensure it in order to be sure the desired socket is selected, otherwise the first socket with a matching name is used. | Note that there is no internal check for uniqueness of the socket names, the admin has to ensure it in order to be sure the desired socket is selected, otherwise the first socket with a matching name is used. | ||
+ | |||
+ | As of 5.6, there is now a **virtual** identifier which can be added to the end of each listen directive. This can be used in combination with any other identifier, but must be added at the end of the line. | ||
+ | |||
+ | <code c> | ||
+ | listen=udp: | ||
+ | listen=udp: | ||
+ | listen=udp: | ||
+ | listen=udp: | ||
+ | </ | ||
+ | |||
+ | The **virtual** identifier is meant for use in situations where you have a floating/ | ||
+ | |||
+ | This identifier will change the behaviour of how " | ||
+ | |||
+ | This means that if Kamailio is listening on an IP that is not currently local, it will recognise that, and can relay the traffic to another Kamailio node as needed, instead of thinking it always needs to handle the traffic. | ||
+ | |||
==== loadmodule ==== | ==== loadmodule ==== | ||
Line 1378: | Line 1428: | ||
==== maxbuffer ==== | ==== maxbuffer ==== | ||
- | The size in bytes not to be exceeded during the auto-probing procedure of descovering | + | The size in bytes not to be exceeded during the auto-probing procedure of discovering and increasing |
Example of usage: | Example of usage: | ||
Line 1384: | Line 1434: | ||
maxbuffer=65536 | maxbuffer=65536 | ||
+ | Note: it is not the size of the internal SIP message receive buffer. | ||
==== max_branches ==== | ==== max_branches ==== | ||
Line 1526: | Line 1577: | ||
* 4 - summary of pkg used blocks | * 4 - summary of pkg used blocks | ||
* 8 - summary of shm used blocks | * 8 - summary of shm used blocks | ||
+ | * 16 - short status | ||
If set to 0, nothing is printed. | If set to 0, nothing is printed. | ||
- | Default value: | + | Default value: |
Example: | Example: | ||
Line 2423: | Line 2475: | ||
tcp_rd_buf_size=65536 | tcp_rd_buf_size=65536 | ||
</ | </ | ||
+ | |||
+ | ==== tcp_reuse_port ==== | ||
+ | |||
+ | Allows reuse of TCP ports. This means,for example, that the same TCP ports on which Kamailio is listening on, can be used as source ports of new TCP connections when acting as an UAC. Kamailio must have been compiled in a system implementing SO_REUSEPORT (Linux > 3.9.0, FreeBSD, OpenBSD, NetBSD, MacOSX). This parameter takes effect only if also the system on which Kamailio is running on supports SO_REUSEPORT. | ||
+ | |||
+ | tcp_reuse_port = yes (default no) | ||
+ | |||
+ | ==== tcp_script_mode ==== | ||
+ | |||
+ | Specify if connection should be closed (set to CONN_ERROR) if processing the received message results in error (that can also be due to negative return code from a configuration script main route block). If set to 1, the processing continues with the connection open. | ||
+ | |||
+ | Default 0 (close connection) | ||
+ | |||
+ | < | ||
+ | tcp_script_mode = 1 | ||
+ | </ | ||
+ | |||
==== tcp_send_timeout ==== | ==== tcp_send_timeout ==== | ||
Line 2439: | Line 2508: | ||
==== tcp_syncnt ==== | ==== tcp_syncnt ==== | ||
+ | |||
Number of SYN retransmissions before aborting a connect attempt (see linux tcp(7) TCP_SYNCNT). Linux only. | Number of SYN retransmissions before aborting a connect attempt (see linux tcp(7) TCP_SYNCNT). Linux only. | ||
tcp_syncnt = number of syn retr. (default not set) | tcp_syncnt = number of syn retr. (default not set) | ||
+ | |||
+ | |||
+ | ==== tcp_wait_data ==== | ||
+ | |||
+ | Specify how long to wait (in milliseconds) to wait for data on tcp connections in certain cases. Now applies when reading on tcp connection for haproxy protocol. | ||
+ | |||
+ | Default: 5000ms (5secs) | ||
+ | |||
+ | <code c> | ||
+ | tcp_wait_data = 10000 | ||
+ | </ | ||
==== tcp_wq_blk_size ==== | ==== tcp_wq_blk_size ==== | ||
Line 2454: | Line 2535: | ||
tcp_wq_max = bytes (default 10 Mb) | tcp_wq_max = bytes (default 10 Mb) | ||
| | ||
- | ==== tcp_reuse_port ==== | ||
- | |||
- | Allows reuse of TCP ports. This means,for example, that the same TCP ports on which Kamailio is listening on, can be used as source ports of new TCP connections when acting as an UAC. Kamailio must have been compiled in a system implementing SO_REUSEPORT (Linux > 3.9.0, FreeBSD, OpenBSD, NetBSD, MacOSX). This parameter takes effect only if also the system on which Kamailio is running on supports SO_REUSEPORT. | ||
- | |||
- | tcp_reuse_port = yes (default no) | ||
===== TLS Parameters ===== | ===== TLS Parameters ===== | ||
Line 3949: | Line 4025: | ||
* **A** - do not add log prefix | * **A** - do not add log prefix | ||
* **c** - add Call-ID (when available) as a dedicated JSON attribute | * **c** - add Call-ID (when available) as a dedicated JSON attribute | ||
+ | * **j** - the log prefix and message fields are printed in JSON structure format, detecting if they are enclosed in between **{ }** or adding them as a **text** field | ||
* **M** - strip EOL (' | * **M** - strip EOL (' | ||
* **N** - do not add EOL at the end of JSON document | * **N** - do not add EOL at the end of JSON document | ||
+ | * **p** - the log prefix is printed as it is in the root json document, it has to start with comma (**,**) and be a valid set of json fields | ||
+ | * **U** - CEE (Common Event Expression) schema format - https:// | ||
Example of JSON logs when running Kamailio with " | Example of JSON logs when running Kamailio with " | ||
Line 3958: | Line 4037: | ||
{ " | { " | ||
+ | </ | ||
+ | Example config for printing log message with **j** flag: | ||
+ | |||
+ | < | ||
+ | xinfo(" | ||
+ | </ | ||
+ | |||
+ | Example config for printing log messages with **p** flag: | ||
+ | |||
+ | < | ||
+ | log_prefix=", | ||
</ | </ |
cookbooks/devel/core.1630130577.txt.gz · Last modified: 2021/08/28 06:02 by jih