深入浅出asterisk(四):部署CDR MySql模块

原创 2007年09月28日 17:00:00

Asterisk可以存储CDR记录到一个MYSQL数据库中,也可以选择以CSV文本文件的形式保存起来

由于Mysql客户端开发库的版权问题,Mysql billing应用程序不再作为Asterisk标准发布版本中的其中一部分来发布,而是以附加内容的形式存在:asterisk-addons

为了让Asterisk支持把CDR日志保存到mysql数据库中,必须下载asterisk-addons包,然后编译与mysql有关的几个模块,并且装载到你的Asterisk服务器中。

一.下载asterisk-addons包。

有两种方式:

1:官方网站上发布的:

http://downloads.digium.com/pub/asterisk/,如果你当前使用的asterisk.14版本而且是最新的,这时候从目录中找到最新的asterisk-addons包。

    2:从SVN库中检出

     svn checkout  http://svn.digium.com/svn/asterisk-addons/branches/1.4/,用这种方法要注意几点:

(1)    http://svn.digium.com/svn/asterisk-addons/,这个根目录下面,有

branches/

tags/

team/

trunk/

这几个目录,如果你当前使用的asterisk.14版本而且是最新的,这时候应该要从branches分支目录中找到最新的版本下载,注意:不要直接check out trunk/目录。

. 编译安装asterisk addons

   

1. 修改Makefile文件

在编译asterisk addons之前,必须修改asterisk addons源文件下的Makefile

CFLAGS+=-fPIC 

       ifeq ($(OSARCH),SunOS)           

       ASTETCDIR=/var/etc/asterisk

       ASTLIBDIR=/opt/asterisk/lib

else

ASTLIBDIR=/usr/lib/asterisks (对应asterisk安装后的模块目录上一级目录)

       #ASTETCDIR=/home/asterisk-1.4.11(对应asterisk的源代码目录)

endif

MODULES_DIR=$(ASTLIBDIR)/modules

 

2.执行三部曲

确定已经有了zlib-develmysql-devel(/usr/lib/mysql/)
# make clean

# make menuselect

(在这个命令下选择待编译的模块,按enter选择或取消选择某个模块,按x保存并退出)
# make
# make install

 

. 修改所有配置文件

    *1:编辑cdr_manager.confenabled = yes

   *2:编辑modules.conf,在[modules]

增加:load => cdr_addon_mysql.so

3:编辑cdr_mysql.conf,如果目前还没有这个文件,新创建一个

[global]

hostname=0.0.0.0(Mysql数据库服务器)

dbname=cdrmysqltest  (数据库名)

user=root 

password=123456

port=3306

userfield=1

.Mysql数据库中新建数据数据库、表

      CREATE DATABASE cdrmysqltest ;

         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 ''
);

ALTER TABLE `cdr` ADD INDEX ( `calldate` );
ALTER TABLE `cdr` ADD INDEX ( `dst` );
ALTER TABLE `cdr` ADD INDEX ( `accountcode` );

 

asterisk 中 开启cdr表通话记录

在asterisk 中,我们需要在 mysql 数据库中 存取通话记录的一些信息,原则上,可以在拨号规则了去写一个程序,吧通话记录的信息添加到mysql 中。asterisk 已封装好了这个程序,至需...

Asterisk CDR的CSV格式的应用

Asterisk CDR的CSV格式的应用  如今有了图形界面,一般都用数据库方式存储Asterisk的CDR(Call Detail Record)记录.其中最常用的就是Mysql了.由于Licen...

asterisk 配置CDR(dall detail record)

Asterisk从版本12开始就可以使用mysql来保存呼叫记录,但默认情况下该功能是关闭的,所有我们需要:       1.  在/etc/asterisk/目录下,修改cdr相关配置脚本,以打开此...

asterisk使用MYSQL认证的配置方法

asterisk要使用MYSQL实时认证peers,就必须安装asterisk的realtime 和 mysql 模块,这些模块在asterisk插件包中 下载地址是:http://www.aste...

Asterisk-sip(mysql)动态写入和拨号方案动态(Agi)

sip动态写入(mysql版)准备工作 查看Asterisk是否安装了支持mysql模块和一些必要的模块,在Asterisk控制台命令下输入 module show like realtime 和mo...

asterisk1.8 账号信息mysql存储(动态)

1. 首先需要先编译出      re

CDR

CDR在移动通信中CDR(calling detailrecords)即呼叫详细记录,它描述了呼叫接续的全过程。在CDR中记录的参数来自于原始的信令消息数据,通过对记录中的一些重要参数进一步的分析和处...

深入理解Asterisk体系架构

Asterisk和其他传统的PBX完全不同,因为Asterisk的拨号计划以同样的方式处理所有的入局信道(incoming channels)。 传统的PBX在逻辑上区分工作站信道(连接电话机)和电...

深入浅出asterisk(一):asterisk通道(Channels)

    由于工作上的VOIP项目需要,最近亲密接触了一下asterisk工程代码。关于asterisk在VOIP上的伟大地位和作用,俺就不絮叨了,请看前作:Astersik+Radius简易攻略   ...

asterisk 系统变量,研究拨号规则的需要用到

http://www.voip-info.org/wiki/view/Asterisk+Detailed+Variable+ListAsterisk standard channel variable...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深入浅出asterisk(四):部署CDR MySql模块
举报原因:
原因补充:

(最多只允许输入30个字)