Asterisk中开启CDR通话记录

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

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

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

一:首先得在mysql 中建立好我们 数据库名称 和 cdr 表,官方提供的mysql 语句如下:
    
复制代码
  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` );
二:改动ASTERISK下的配置文件
   cdr_manager.conf 和  cdr_mysql.conf ,主要是改 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/asterisk/mysql.sock  //mysql.sock 的路径  
  9. userfield=1                    //cdr表userfield 为可以写
三:重启相关服务
     简单点吧:直接重启系统就OK 
复制代码
  1. # reboot

你可能感兴趣的:(voip,asterisk,CDR)