asterisk 配置CDR(dall detail record)

来源:互联网 发布:万得股票for mac 编辑:程序博客网 时间:2024/06/05 05:07

  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                    //cdruserfield 为可以写

  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数据库查看是否已经添加了一条记录,如果有的话则说明已经成功了。
   



0 0
原创粉丝点击