После настройки 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")