asterisk cdr mysql_深入浅出asterisk(四):部署CDR MySql模块
Asterisk可以存儲CDR記錄到一個MYSQL數據庫中,也可以選擇以CSV文本文件的形式保存起來。
由于Mysql客戶端開發(fā)庫的版權問題,Mysql billing應用程序不再作為Asterisk標準發(fā)布版本中的其中一部分來發(fā)布,而是以附加內容的形式存在:asterisk-addons。
為了讓Asterisk支持把CDR日志保存到mysql數據庫中,必須下載asterisk-addons包,然后編譯與mysql有關的幾個模塊,并且裝載到你的Asterisk服務器中。
一.下載asterisk-addons包。
有兩種方式:
1:官方網站上發(fā)布的:
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.執(zhí)行三部曲
確定已經有了zlib-devel、mysql-devel(/usr/lib/mysql/),
# make clean
# make menuselect
(在這個命令下選擇待編譯的模塊,按enter選擇或取消選擇某個模塊,按x保存并退出)
# make
# make install
三. 修改所有配置文件
*1:編輯cdr_manager.conf:enabled = yes
*2:編輯modules.conf,在[modules],
增加:load => cdr_addon_mysql.so
3:編輯cdr_mysql.conf,如果目前還沒有這個文件,新創(chuàng)建一個
[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` );
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/colinchan/archive/2007/09/28/1805341.aspx
總結
以上是生活随笔為你收集整理的asterisk cdr mysql_深入浅出asterisk(四):部署CDR MySql模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 请用flutter实现在macOS上实现
- 下一篇: 【Android Studio3.2安装