Asterisk cdr pgsql

Asterisk can store CDR records in a Postgresql database, as an alternative to CSV text files and other database formats.

Installation of PostgresQL on Fedora Core 4

yum -y install postgresql postgresql-server php-pgsql

I had to modify the above file manually


When using 1.2.X:
If you have the Postgresql libraries installed (the postgresql-devel rpm), they will be detected when you build asterisk and cdr_pgsql.o will be compiled and put in your module path with 'make install'.
You may have to modify the MODS line in the cdr/Makefile to include

When using 1.4.X :
you have to compile asterisk with the cdr_pgsql.o module, for this follow the steps:

Configure asterisk with postgresql support:
./configure --with-postgres=<dir where postgresql is installed>

Then issue the command:
make menuconfig

in the menu select 2.Call Detail Recording -> then check cdr_pgsql
build asterisk

Install it
sudo make install

Then add, in the file modules.conf, the line:
load =>

Create the database

Create a database named 'asterisk' using the Postgresql schema described in Asterisk cdr odbc.

Edit the configuration file

A sample cdr_pgsql.conf file is included with Asterisk - you should find it in /etc/asterisk. Uncomment out the necessary lines and ensure that they point to your Postgresql database.

Sample setup

Make sure postmaster is running with the -i flag to enable tcp connections. Also the user that asterisk will use to connect needs to have insert permission on the cdr table.

Sample cdr_pgsql.conf file

Create the database
createdb asterisk

Create the CDR table
You can find the script for this in the Asterisk source folder, in contrib/scripts. It's called "postgres_cdr.sql". Just paste it in the pgsql command line.

Create the user
createuser -A -D -P asterisk
Enter password for new user:
Enter it again:

Grant insert access to the userl:
grant INSERT on cdr to asterisk;

Now reload/restart asterisk and loggin should work, if it doesn't work check for error messages in the asterisk log.

Bug #4909 - Adds support for a "spool file"
Add the following line to your cdr_pgsql.conf file:


If the connection can not be made to the sql server, it will spool insert commands to pgsql.spool in /var/log/asterisk until it can reconnect

See also

  • Asterisk PGSQL: Issue Postgres SQL statements from within the dialplan

Created by: jametrel, Last modification: Fri 06 of Jun, 2008 (23:37 UTC) by JustRumours
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+