我试图让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();
}
...
}
`
答案 0 :(得分:0)
被驾驶半便盆后发现问题。 问题在于“向前()” - 在这种情况下不会写入会计记录。
而不是使用forward()使用
if (!t_relay()) {
sl_reply_error();
}
并且会计记录被神奇地写入。我的acc模块的模块也在各地,但这仍然是一项正在进行的研究,并不影响我在这里的基本问题。
如果有人比我更聪明可以解释为什么前锋没有写CDR,那么如果你能写评论,我将不胜感激。