Asterisk CDR Tables: Difference between revisions

From KlavoWiki
Jump to navigationJump to search
Line 1: Line 1:
= Call Detail Records =
= Call Detail Records =
== Create Database ==
The following information is based on Asterisk 1.6.x.<br>
The following information is based on Asterisk 1.6.x.<br>
The first thing required is to create a database for the CDR to be stored, then we need to create a tables.
The first thing required is to create a database for the CDR to be stored, and then we need to create a table.
<pre>
<pre>
mysql
mysql
Line 7: Line 8:
use asteriskcdr;
use asteriskcdr;
</pre>
</pre>
Once the databse is created and we have selected it for use, we can now create the required tables(s).
Once the database is created and we have selected it for use, we can now create the required tables(s).
<pre>
<pre>
CREATE TABLE cdr (
CREATE TABLE cdr (
Line 29: Line 30:
</pre>
</pre>


Asterisk 1.6.x seems to deny logon to mysql using the root account.  You will need to create a username and password for the asteriskcdr databses so Asterisk can logon and make the required changes.<br>
Asterisk 1.6.x seems to deny logon to mysql using the root account.  You will need to create a username and password for the asteriskcdr database so Asterisk can logon and make the required changes.<br>


Change cdruser and logit to the username and password that you would like to use.
Change cdruser and logit to the username and password that you would like to use.
Line 38: Line 39:
</pre>
</pre>


Once the database is created you then need to edit the asterisk mysql.conf file to use the databse.<br>
== Configure Asterisk ==
edit the file '''/etc/asterisk/cdr_mysql.conf''' and make the required changes.<br>
Edit the Asterisk cdr_mysql.conf file and enter the appropriate database connection details.
<pre>
[global]
hostname=127.0.0.1
dbname=asterisk
table=cdr
password=passw0rd
user=cdruser
</pre>
 
With the Asterisk CLI reload the cdr module
<pre>
module reload cdr_mysql.so
</pre>
 


You can then reload asterisk and make sure that it recognises mysql byt typing in:
Once the module is reloaded you can test connectivity by typing in:
<pre>
<pre>
cdr mysql status
cdr mysql status
</pre>
</pre>
You should get a responce like
You should get a response like
<pre>
<pre>
Connected to databse-name@localhost, port 3306 using table table-name for 2 seconds.
Connected to databse-name@localhost, port 3306 using table table-name for 2 seconds.
</pre>
</pre>
Make sure you have a look at [[CDR_Analyser|CDR Analyser]] so you can view your CDR via a WEB page.
Make sure you have a look at [[CDR_Analyser|CDR Analyser]] so you can view your CDR via a WEB page.


[[Category : Asterisk]]
[[Category : Asterisk]]

Revision as of 10:30, 19 November 2011

Call Detail Records

Create Database

The following information is based on Asterisk 1.6.x.
The first thing required is to create a database for the CDR to be stored, and then we need to create a table.

mysql
create database asteriskcdr;
use asteriskcdr;

Once the database is created and we have selected it for use, we can now create the required tables(s).

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

Asterisk 1.6.x seems to deny logon to mysql using the root account. You will need to create a username and password for the asteriskcdr database so Asterisk can logon and make the required changes.

Change cdruser and logit to the username and password that you would like to use.

GRANT ALL ON *.* to cdruser@localhost identified by 'logit';
flush privileges;

Configure Asterisk

Edit the Asterisk cdr_mysql.conf file and enter the appropriate database connection details.

[global]
hostname=127.0.0.1
dbname=asterisk
table=cdr
password=passw0rd
user=cdruser

With the Asterisk CLI reload the cdr module

module reload cdr_mysql.so


Once the module is reloaded you can test connectivity by typing in:

cdr mysql status

You should get a response like

Connected to databse-name@localhost, port 3306 using table table-name for 2 seconds.

Make sure you have a look at CDR Analyser so you can view your CDR via a WEB page.