HOWTO: Asterisk CDR + MYSQL
This tutorial will teach you how to configure Asterisk to store its CDR in MYSQL Database. Im using Debian Etch as my Operating System.
Installing Mysql Server 5 and Client
apt-get install mysql-server mysql-common php5-mysql mysql-client-5.0 mysql-client libmysqlclient15-dev
Creating a Database, Tables and Permissions
asterisk88:~# mysql -u root -p <enter>
Enter password: <enter>
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 26
Server version: 5.0.32-Debian_7etch5 Debian etch distributionType ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> create database asterisk;
mysql> use asterisk;
mysql> 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 ”,
userfield varchar(255) NOT NULL default ”,
uniqueid varchar(32) NOT NULL default ”
);ALTER TABLE cdr ADD INDEX ( calldate );
ALTER TABLE cdr ADD INDEX ( dst );
ALTER TABLE cdr ADD INDEX ( uniqueid );You can add more indices if you want.
mysql> \q