这真的开始让人讨厌了。
自2007年以来,我一直在使用Asterisk 1.4来操作一个完美的PBX,它每次呼叫都会创建一个单一的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
这是Asterisk版本12中启动的新CDR引擎的结果。
根据频道的拨号和桥接方式,将为给定的呼叫创建多个CDR。需要对这些记录进行后期处理,以确定呼叫的总体统计信息。
在升级任何软件之前,最好阅读所有的升级文档——在这种情况下,你已经有7或8年的时间了!
https://wiki.asterisk.org/wiki/display/AST/New+在+1.8 中
https://wiki.asterisk.org/wiki/display/AST/New+在+10 中
https://wiki.asterisk.org/wiki/display/AST/Upgrading+至+星号+11
https://wiki.asterisk.org/wiki/display/AST/Upgrading+至+星号+12
https://wiki.asterisk.org/wiki/display/AST/Upgrading+至+星号+13
我为星号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
附言:如果这个补丁对你有帮助,或者你会发现错误,请写在这里
在cdr.conf中,请添加
unanswered=no
我也遇到过类似的问题。
Asterisk认证/13.8-cert4
一个电话产生了两个记录。一条正确的记录,第二条记录具有相同的值,除了"start"、"end"one_answers"swered"字段为空。
重复记录的原因-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
我在模块中关闭了他。conf'noload=>cdr_odbc.so'
重新启动服务器,一切正常。