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
Compiling cdr_pgsql.so
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 cdr_pgsql.so.
MODS=cdr_pgsql.so cdr_csv.so cdr_manager.so
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:
Then issue the command:
in the menu select 2.Call Detail Recording -> then check cdr_pgsql
build asterisk
Install it
Then add, in the file modules.conf, the line:
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
hostname=localhost
port=5432
dbname=asterisk
password=cdrstuff
user=asterisk
Create the database
Create the CDR table
Create the user
Enter password for new user:
Enter it again:
CREATE USER
Grant insert access to the userl:
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:
spool=pgsql.spool
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