asterisk 配置CDR(dall detail record)
2015-07-21 14:03
489 查看
Asterisk从版本12开始就可以使用mysql来保存呼叫记录,但默认情况下该功能是关闭的,所有我们需要:
1. 在/etc/asterisk/目录下,修改cdr相关配置脚本,以打开此功能
2. 创建响应的数据库和表,用于存储记录
具体操作步骤如下(以asterisk 12.0.5为例)
一, 在mysql 中建立好asterisk 数据库和CDR表
1 CREATE DATABASE asterisk;
2 GRANT INSERT
3 ON asterisk.*
4 TO asterisk@localhost
5 IDENTIFIED BY 'yourpassword';
6 USE asterisk;
7 CREATE TABLE `cdr` (
8 `calldate` datetime NOT NULL default '0000-00-00 00:00:00',
9 `clid` varchar(80) NOT NULL default '',
10 `src` varchar(80) NOT NULL default '',
11 `dst` varchar(80) NOT NULL default '',
12 `dcontext` varchar(80) NOT NULL default '',
13 `channel` varchar(80) NOT NULL default '',
14 `dstchannel` varchar(80) NOT NULL default '',
15 `lastapp` varchar(80) NOT NULL default '',
16 `lastdata` varchar(80) NOT NULL default '',
17 `duration` int(11) NOT NULL default '0',
18 `billsec` int(11) NOT NULL default '0',
19 `disposition` varchar(45) NOT NULL default '',
20 `amaflags` int(11) NOT NULL default '0',
21 `accountcode` varchar(20) NOT NULL default '',
22 `userfield` varchar(255) NOT NULL default ''
23 );
24 ALTER TABLE `cdr` ADD `uniqueid` VARCHAR(32) NOT NULL default '';
25 ALTER TABLE `cdr` ADD INDEX ( `calldate` );
26 ALTER TABLE `cdr` ADD INDEX ( `dst` );
27 ALTER TABLE `cdr` ADD INDEX ( `accountcode` );
二, 修改CDR相关配置文件:
1. 修改配置 /etc/asterisk/cdr_mysql.conf 文件
1 [global]
2 hostname=localhost
3 dbname=asterisk //数据库名
4 table=cdr //表名
5 password=888888 //数据库密码
6 user=root //数据库用户名
7 port=3306 //默认的端口
8 sock=/var/lib/mysql/mysql.sock //mysql.sock 的路径
9 userfield=1 //cdr表userfield 为可以写
2.修改 /etc/asterisk/modules.conf文件
在文件最后添加下面一行内容
load => cdr_mysql.so
3.修改/etc/asterisk/cdr.conf
; Define whether or not to use CDR logging. Setting this to "no" will override
; any loading of backend CDR modules. Default is "yes".
enable=yes
4.修改/etc/asterisk/cdr.manager.conf
设置enable=yes
三. 重启asterisk服务
#/usr/sbin/asterisk -r
#core restart now
重启完成后正常情况下可以用cdr mysql status查看相关信息,如果没有则说明还存在问题
四. 确认
进行一次成功的通话操作后进入mysql数据库查看是否已经添加了一条记录,如果有的话则说明已经成功了。
1. 在/etc/asterisk/目录下,修改cdr相关配置脚本,以打开此功能
2. 创建响应的数据库和表,用于存储记录
具体操作步骤如下(以asterisk 12.0.5为例)
一, 在mysql 中建立好asterisk 数据库和CDR表
1 CREATE DATABASE asterisk;
2 GRANT INSERT
3 ON asterisk.*
4 TO asterisk@localhost
5 IDENTIFIED BY 'yourpassword';
6 USE asterisk;
7 CREATE TABLE `cdr` (
8 `calldate` datetime NOT NULL default '0000-00-00 00:00:00',
9 `clid` varchar(80) NOT NULL default '',
10 `src` varchar(80) NOT NULL default '',
11 `dst` varchar(80) NOT NULL default '',
12 `dcontext` varchar(80) NOT NULL default '',
13 `channel` varchar(80) NOT NULL default '',
14 `dstchannel` varchar(80) NOT NULL default '',
15 `lastapp` varchar(80) NOT NULL default '',
16 `lastdata` varchar(80) NOT NULL default '',
17 `duration` int(11) NOT NULL default '0',
18 `billsec` int(11) NOT NULL default '0',
19 `disposition` varchar(45) NOT NULL default '',
20 `amaflags` int(11) NOT NULL default '0',
21 `accountcode` varchar(20) NOT NULL default '',
22 `userfield` varchar(255) NOT NULL default ''
23 );
24 ALTER TABLE `cdr` ADD `uniqueid` VARCHAR(32) NOT NULL default '';
25 ALTER TABLE `cdr` ADD INDEX ( `calldate` );
26 ALTER TABLE `cdr` ADD INDEX ( `dst` );
27 ALTER TABLE `cdr` ADD INDEX ( `accountcode` );
二, 修改CDR相关配置文件:
1. 修改配置 /etc/asterisk/cdr_mysql.conf 文件
1 [global]
2 hostname=localhost
3 dbname=asterisk //数据库名
4 table=cdr //表名
5 password=888888 //数据库密码
6 user=root //数据库用户名
7 port=3306 //默认的端口
8 sock=/var/lib/mysql/mysql.sock //mysql.sock 的路径
9 userfield=1 //cdr表userfield 为可以写
2.修改 /etc/asterisk/modules.conf文件
在文件最后添加下面一行内容
load => cdr_mysql.so
3.修改/etc/asterisk/cdr.conf
; Define whether or not to use CDR logging. Setting this to "no" will override
; any loading of backend CDR modules. Default is "yes".
enable=yes
4.修改/etc/asterisk/cdr.manager.conf
设置enable=yes
三. 重启asterisk服务
#/usr/sbin/asterisk -r
#core restart now
重启完成后正常情况下可以用cdr mysql status查看相关信息,如果没有则说明还存在问题
四. 确认
进行一次成功的通话操作后进入mysql数据库查看是否已经添加了一条记录,如果有的话则说明已经成功了。
相关文章推荐
- vim快捷键 blog.csdn.net/zeropool/article/details/6677514
- bailian2705
- bailian2703 骑车与走路
- modelsim仿真ISE工程时出现# ** Error: (vlog-19) Failed to access library 'rtl_work' at "rtl_work
- Climbing Stairs
- pthread_cond_wait/pthread_cond_timedwait使用注意
- uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer bounds contains NaN: [nan 0; 600 300]'
- 文件描述符,EXIT_FAILURE,memset()
- 朴素贝叶斯算法(Naive Bayes)
- Scala:基于trait的多重继承构造器的执行顺序、基于trait的AOP实践
- Gym 100712I Bahosain and Digits(枚举)
- LightOJ1038-Race to 1 Again
- 003.main 主函数文件
- 对于atomic nonatomic assign retain copy strong weak的简单理解
- POJ 3835 Columbus's bargain(最短路)
- icvGetHaarTrainingData详细解析
- x86 INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
- pthread_cond_signal和pthread_cond_wait简介
- poj3735 Training little cats
- POJ题目2585Window Pains(拓扑排序)