kamailio, логирование по требованию

Dec 24, 2017 21:09

После настройки kamailio особой необходимости в логах может и не быть, но иногда бывает нужно.
На текущий момент (со стандарным cfgengine) логи либо пишутся всегда, либо никогда и существует необходимость в рестарте.

Концепция для включения логирования по требованию

loadmodule "uid_gflags.so"

#!define FLG_LOG 10

log_enable.flag = 0

request_route {
    if($sel(cfg_get.log_enable.flag) == FLG_LOG && !is_ugflag(FLG_LOG)) {
        set_ugflag(FLG_LOG);
     } else {
         reset_ugflag(FLG_LOG);
     }
.....
    # добавить условие перед xlog
    if(is_ugflag(FLG_LOG))
        xlog("L_INFO","[$cfg(line)]: M=$rm RURI=$ru Call-ID=<$ci> [some text]\n");
....
}

# включаем логирование
kamctl kamcmd cfg.seti log_enable flag 10
# выключаем логирование
kamctl kamcmd cfg.seti log_enable flag 0

Для Lua- скриптов

local log_enable = 0
    log_enable = tonumber(sr.pv.get("$sel(cfg_get.log_enable.flag)"))
    if log_enable == nil then
        log_enable = 0
    end

if log_enable ~= 0  then
        sr.log("info", "[ some text ]\n")

app_lua, lua, logging, kamailio

Previous post Next post
Up