Asterisk怎么开启CDR通话记录

Asterisk  怎么在数据库中记录我们的通话记录,如去电和来电号码,时间==。。,

首先我想到的是可以直接在  dialplan 中把主叫及被叫号及时间==其它信息直接手写添加到 mysql  数据中。

那么官方提供了这样的一个方法来开启CDR记录


一:首先得在mysql 中建立好我们 数据库名称 和 cdr 表,官方提供的mysql 语句如下:

CREATE DATABASE asterisk;   
GRANT INSERT   
  ON asterisk.*   
  TO asterisk@localhost   
  IDENTIFIED BY 'yourpassword';   
USE 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 '',   
`userfield` varchar(255) NOT NULL default ''   
);   
ALTER TABLE `cdr` ADD `uniqueid` VARCHAR(32) NOT NULL default '';   
ALTER TABLE `cdr` ADD INDEX ( `calldate` );   
ALTER TABLE `cdr` ADD INDEX ( `dst` );   
ALTER TABLE `cdr` ADD INDEX ( `accountcode` );

相关解释

${CDR(clid)}     Caller ID 主叫号码
${CDR(src)}     Source  源
${CDR(dst)}     Destination  目的地
${CDR(dcontext)}     Destination context   目标上下文
${CDR(channel)}     Channel name   频道名称
${CDR(dstchannel)}     Destination channel  目标通道
${CDR(lastapp)}     Last app executed  的最后程序执行
${CDR(lastdata)}     Last app's arguments   最后的应用程序的参数
${CDR(start)}     Time the call started.    通话时间开始。
${CDR(answer)}     Time the call was answered.  应答时间
${CDR(end)}     Time the call ended.    结束时间
${CDR(duration)}     Duration of the call.  持续时间
${CDR(billsec)}     Duration of the call once it was answered.  一旦有人接听电话的持续时间
${CDR(disposition)}     ANSWERED, NO ANSWER, BUSY   没有答案,忙
${CDR(amaflags)}     DOCUMENTATION, BILL, IGNORE etc  条例草案“,忽视等
${CDR(accountcode)}     The channel's account code (read-write). 通道的账户代码(读写
${CDR(uniqueid)}     The channel's unique id.   通道的唯一ID。
${CDR(userfield)}     The channels uses specified field (read-write). 使用指定的字段(只读)

二:改动ASTERISK下的配置文件
   cdr_manager.conf 和  cdr_mysql.conf ,主要是改 cdr_mysql.conf 文件,如下:
   注: cdr_manager.conf  中设置  enabled = yes

[global]  
hostname=localhost     //如果是其它机器需要配置那台mysql服务的用户权限 为%
dbname=asterisk   //数据库名
table=cdr        //表名
password=888888    //数据库密码
user=root       //数据库用户名
port=3306        //默认的端口
sock=/var/lib/asterisk/mysql.sock  //mysql.sock 的路径  
userfield=1                    //cdr表userfield 为可以写


三:重启相关服务
     简单点吧:直接重启系统就OK

#reboot


转自:http://www.asterisk-help.com/read.php?tid-69-page-1.html

  http://www.asterisk-help.com/read.php?tid-1182.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值