我试图让 Kamailio 将其 CDR 记录到文本文件而不是数据库。呼叫路由正常,但我的 CDR 目录中什么也没有。以下是我认为 kamailio.cfg 文件的相关部分。显然,这不是全部,但大部分是 3.3.1 发行版附带的默认设置。呼叫根据分发文件进行路由,但在呼叫终止时不会在 /var/log/kamailio 目录中写入任何内容。Kamailio 以 kamailio:kamailio 的身份运行,并且该目录由其所有。Wireshark 跟踪显示正确的信令代码顺序(邀请 IVR、尝试、200、再见)并且有音频。
谢谢。
`...
loadmodule "dialog.so"
loadmodule "db_flatstore.so"
...
modparam("acc", "db_url", "flatstore:/var/log/kamailio")
modparam("acc", "early_media", 0)
modparam("acc", "report_ack", 0)
modparam("acc", "report_cancels", 0)
modparam("acc", "detect_direction", 0)
modparam("acc", "log_flag", FLT_ACC)
modparam("acc", "log_missed_flag", FLT_ACCMISSED)
modparam("acc", "log_extra",
modparam("acc", "failed_transaction_flag", FLT_ACCFAILED)
modparam("acc", "cdr_enable", 1)
modparam("acc", "cdr_flag", 3)
...
request_route {
...
remove_hf("Route");
if (is_method("INVITE")) {
record_route();
setflag(FLT_ACC);
ds_select_dst("1","4");
forward();
exit();
}
...
}
`