Asterisk 13.4 cdr引擎每次调用创建2条记录

时间:2015-11-27 23:04:59

标签: asterisk cdr

这真的开始变得烦人。

我从2007年开始使用Asterisk 1.4来运行完美的PBX,并且每次调用都会创建一个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 个答案:

答案 0 :(得分:2)

这是从{Asterisk 12版开始的new CDR engine的结果。

  

根据拨打和桥接频道的方式,将为给定的呼叫创建多个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

答案 1 :(得分:1)

我为星号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

P.S。如果此补丁可以帮助您,或者您发现错误=)

,请写在这里

答案 2 :(得分:0)

在cdr.conf中,请添加

unanswered=no

答案 3 :(得分:0)

我有类似的问题。

Asterisk认证/ 13.8-cert4

一个电话产生了两个记录。一个正确的记录,第二个记录具有相同的值,除了&#39;开始&#39;结束&#39;回答&#39;字段,这是空的。

重复记录的原因 - 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中关闭了他 &#39; noload =&gt; cdr_odbc.so&#39;

重启服务器,事情很好。