2

这真的开始让人讨厌了。

自 2007 年以来,我一直在使用 Asterisk 1.4 来操作完美的 PBX,它会像任何其他版本的 Asterisk 一样,为每个呼叫创建一个 SINGLE CDR。

昨天我想升级就可以了,得到了 Asterisk 13.4。

这该死的东西是为每个呼叫创建 2 个 CDR……一个代表拨号尝试……另一个包括已连接的呼叫和初始拨号

我不知道在哪里配置 CDR 引擎以使其正常运行......也就是说,每次通话记录一个 CDR ......不是 2!

有任何想法吗?

PS:(不,我没有更改我的代码,不,我没有配置任何不寻常的特定行cdr.conf

以下是 CDR 引擎的调试输出:

0x7f51f40009a8 - Created CDR for channel SIP/900100-00000002
0x7f51f40009a8 - Transitioning CDR for SIP/900100-00000002 from state NONE to Single
0x7f51f4002bc8 - Created CDR for channel SIP/vox-00000003
0x7f51f4002bc8 - Transitioning CDR for SIP/vox-00000003 from state NONE to Single

Dial Begin message for SIP/900100-00000002, SIP/vox-00000003: 1448665204.00639317

0x7f51f40009a8 - Processing Dial Begin message for channel SIP/900100-00000002, peer SIP/vox-00000003
0x7f51f40009a8 - Updated Party A SIP/900100-00000002 snapshot
0x7f51f40009a8 - Updated Party B SIP/vox-00000003 snapshot
0x7f51f40009a8 - Transitioning CDR for SIP/900100-00000002 from state Single to Dial
0x7f51f4002bc8 - Processing Bridge Leave for SIP/vox-00000003
0x7f51f4002bc8 - Transitioning CDR for SIP/vox-00000003 from state Bridged to Finalized
0x7f51f40009a8 - Transitioning CDR for SIP/900100-00000002 from state Bridged to Finalized
0x7f51f4002bc8 - Beginning finalize/dispatch for SIP/vox-00000003
0x7f51f4002bc8 - Dispatching CDR for Party A SIP/vox-00000003, Party B <none>

Bridge Leave message for SIP/900100-00000002: 1448665215.00246400

0x7f51f4003da8 - Created CDR for channel SIP/900100-00000002
0x7f51f4003da8 - Transitioning CDR for SIP/900100-00000002 from state NONE to Single
0x7f51f4003da8 - Set answered time to 1448665215.248071
0x7f51f4003da8 - Transitioning CDR for SIP/900100-00000002 from state Single to Finalized
0x7f51f40009a8 - Beginning finalize/dispatch for SIP/900100-00000002
0x7f51f40009a8 - Dispatching CDR for Party A SIP/900100-00000002, Party B SIP/vox-00000003
4

4 回答 4

3

这是从 Asterisk 版本 12 开始的新 CDR 引擎的结果。

根据频道的拨号和桥接方式,将为给定呼叫创建多个 CDR。需要对这些记录进行后处理确定通话的整体统计数据。

在升级任何软件之前,阅读所有升级文档是个好主意——在这种情况下,你有 7 或 8 年的价值!

https://wiki.asterisk.org/wiki/display/AST/New+in+1.8

https://wiki.asterisk.org/wiki/display/AST/New+in+10

https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+11

https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+12

https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+13

于 2015-11-28T00:32:03.747 回答
0

在 cdr.conf 请添加

unanswered=no
于 2015-11-28T22:14:19.167 回答
0

我为星号 13 创建了补丁 =) 总之,cdr 的算法保持不变,从而消除了各种错误。如果 CDR 记录是最晚的,那么我们写它。最后一条记录正是我们所需要的。在版本 13.4 和 13.6 上测试。

安装:修补星号源代码并构建/重建星号。

patch asterisk-13.6.0/main/cdr.c ./asterisk13_cdr.patch

下载: http: //miho.org.ua/download/asterisk/asterisk13_cdr_patch.zip

PS 如果此补丁对您有帮助或者您会发现错误,请写在这里 =)

于 2015-12-19T17:22:03.480 回答
0

我有类似的问题。

Asterisk 认证/13.8-cert4

一个电话产生了两个记录。一个正确的记录,第二个记录具有相同的值,但 'start'、'end'、'answered' 字段为空。

重复记录的原因 - cdr_odbc.so 模块。

asterisk -rx "module show like odbc"
Module Description Use Count Status Support Level
cdr_adaptive_odbc.so Adaptive ODBC CDR backend 0 Running core
cdr_odbc.so ODBC CDR Backend 0 Running extended
cel_odbc.so ODBC CEL backend 0 Running core
func_odbc.so ODBC lookups 0 Running core
res_config_odbc.so Realtime ODBC configuration 0 Running core
res_odbc.so ODBC resource 0 Running core
res_odbc_transaction.so ODBC transaction resource 0 Running core
7 modules loaded

我在 modules.conf 'noload => cdr_odbc.so' 中关闭了他

重新启动服务器,一切正常。

于 2017-01-19T11:01:48.457 回答