深入浅出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 + Radius 简易攻略

Asterisk号称是VOIP领域的瑞士军刀,Radius是AAA计费协议的圆月弯刀。且看Asterisk+Radius如何双刀合璧,称雄VOIP的江湖。。。     Asterisk 是一个开放源代...

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

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

深入浅出asterisk(二):chan_sip代码分析(上)

1. 代码简介:Chan_sip.c是SIP协议(RFC3261)的实现代码,它没有实现对S/MIME, TCP and TLS的支持,对应的配置文件是sip.conf,代码所在的分组是:通道驱动类(...

深入浅出asterisk(三):chan_sip代码分析(下)

现在回过头来把焦点转移到sipsock_read()函数。所有到来的sip包都在这里开始处理,在处理sip包期间,sipsock_read需要对sip的拥有者channel上锁,sipsock_rea...

asterisk 中 开启cdr表通话记录

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

Centos 7.x Install and Setup Asterisk 13 (PBX)

Asterisk (PBX) is an open source communication server released under the GPL license maintained by G...

linux下的C语言开发(多线程编程)

【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】     多线程和多进程还是有很多区别的。其中之一就是,多进程是linux内核本身所支持的...

Linux C语言 网络编程(二) 服务器模型

前面介绍了关于连接linux服务端方式,但是服务端的资源是有限的,所以我们通常需要重新思考,设计一套服务器模型来处理对应的客户端的请求。第一种:并发服务器,通过主进程统一处理客户端的连接,当客户端连接...

机器学习(开篇)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】    这几年,机器学习非常火。自从alpha go战胜了韩国的李世石之后,深度学习又将机器学习推...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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