寻找Asterisk的cdr日志字段的解释

时间:2010-05-13 19:17:05

标签: database asterisk calllog cdr

Asterisk有以下字段

   CREATE TABLE `cdr` (
  `calldate` datetime NOT NULL default '0000-00-00 00:00:00',
  `clid` varchar(80) NOT NULL default '',
  `src` varchar(80) NOT NULL default '',
  `dst` varchar(80) NOT NULL default '',
  `dcontext` varchar(80) NOT NULL default '',
  `channel` varchar(80) NOT NULL default '',
  `dstchannel` varchar(80) NOT NULL default '',
  `lastapp` varchar(80) NOT NULL default '',
  `lastdata` varchar(80) NOT NULL default '',
  `duration` int(11) NOT NULL default '0',
  `billsec` int(11) NOT NULL default '0',
  `disposition` varchar(45) NOT NULL default '',
  `amaflags` int(11) NOT NULL default '0',
  `accountcode` varchar(20) NOT NULL default '',
  `uniqueid` varchar(32) NOT NULL default '',
  `userfield` varchar(255) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

大多数字段名称都是自解释的,但某些字段包含非自解释数据。例如dst =“s”,是否有人知道解释这个以及CDR表中记录的其他数据的文档?

4 个答案:

答案 0 :(得分:3)

dst是你的电话登陆的延伸

答案 1 :(得分:2)

当调用的上下文没有其他匹配扩展时,cdr将显示dst =“s”。这有时被用作Asterisk+s+extension描述的最后手段的扩展。文章还提到了在宏中使用s扩展,这也是一个可能的原因。根据您设置Asterisk的方式,您可能没有意识到您的呼叫由仅使用s扩展名的Asterisk stdexten macro处理。

为了更清晰地表示您的呼叫流程,增加cdr的一种方法是使用cdr_adaptive_odbc模块记录您的cdr to a database。对自适应CDR进行此更改后,您可以在CDR中添加其他列。附加列将有助于阐明当您的拨号方案变得更加复杂时您将看到的所有不同类型的呼叫流程。如果我们使用stdexten作为示例,即使dst = s,您也可以通过使用实际扩展名填充另一个cdr字段来进一步明确cdr记录。这可以使用cdr function以这种方式完成CDR(xdst)= $ {ARG2}。

答案 2 :(得分:1)

答案 3 :(得分:0)

wiki对许多字段有很好的参考:https://wiki.asterisk.org/wiki/display/AST/CDR+Fields