aboutsummaryrefslogtreecommitdiffstats
path: root/doc/cdrdriver.txt
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-03-16 01:41:00 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-03-16 01:41:00 +0000
commitdbddd24443348c19c79e9d85f40d2aa429d0d885 (patch)
treef88f0d9ea78ee8991946a97d9f7bfb720132ec4f /doc/cdrdriver.txt
parentb2830ad62612116f801a7ea10e8584a1bef42af0 (diff)
Making these documentation changes in the 1.4 branch upset various people, so
these chanes will only be done in the trunk. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@58955 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'doc/cdrdriver.txt')
-rw-r--r--doc/cdrdriver.txt215
1 files changed, 215 insertions, 0 deletions
diff --git a/doc/cdrdriver.txt b/doc/cdrdriver.txt
new file mode 100644
index 000000000..8a7e2e328
--- /dev/null
+++ b/doc/cdrdriver.txt
@@ -0,0 +1,215 @@
+Call data records can be stored in many different databases or even CSV text.
+
+MSSQL: Asterisk can currently store CDRs into an MSSQL database in
+ two different ways: cdr_odbc.c or cdr_tds.c
+
+ Call Data Records can be stored using unixODBC (which requires
+ the FreeTDS package) [cdr_odbc.c] or directly by using just the
+ FreeTDS package [cdr_tds.c] The following provide some
+ examples known to get asterisk working with mssql.
+ NOTE: Only choose one db connector.
+
+ ODBC [cdr_odbc.c]:
+ Compile, configure, and install the latest unixODBC package:
+ tar -zxvf unixODBC-2.2.9.tar.gz &&
+ cd unixODBC-2.2.9 &&
+ ./configure --sysconfdir=/etc --prefix=/usr --disable-gui &&
+ make &&
+ make install
+
+ Compile, configure, and install the latest FreeTDS package:
+ tar -zxvf freetds-0.62.4.tar.gz &&
+ cd freetds-0.62.4 &&
+ ./configure --prefix=/usr --with-tdsver=7.0 \
+ --with-unixodbc=/usr/lib &&
+ make &&
+ make install
+
+ Compile, or recompile, asterisk so that it will now add support
+ for cdr_odbc.c
+
+ make clean &&
+ make update &&
+ make &&
+ make install
+
+ Setup odbc configuration files. These are working examples
+ from my system. You will need to modify for your setup.
+ You are not required to store usernames or passwords here.
+
+ /etc/odbcinst.ini
+ [FreeTDS]
+ Description = FreeTDS ODBC driver for MSSQL
+ Driver = /usr/lib/libtdsodbc.so
+ Setup = /usr/lib/libtdsS.so
+ FileUsage = 1
+
+ /etc/odbc.ini
+ [MSSQL-asterisk]
+ description = Asterisk ODBC for MSSQL
+ driver = FreeTDS
+ server = 192.168.1.25
+ port = 1433
+ database = voipdb
+ tds_version = 7.0
+ language = us_english
+
+ Only install one database connector. Do not confuse asterisk
+ by using both ODBC (cdr_odbc.c) and FreeTDS (cdr_tds.c).
+ This command will erase the contents of cdr_tds.conf
+
+ [ -f /etc/asterisk/cdr_tds.conf ] > /etc/asterisk/cdr_tds.conf
+
+ NOTE: unixODBC requires the freeTDS package, but asterisk does
+ not call freeTDS directly.
+
+ Setup cdr_odbc configuration files. These are working samples
+ from my system. You will need to modify for your setup. Define
+ your usernames and passwords here, secure file as well.
+
+ /etc/asterisk/cdr_odbc.conf
+ [global]
+ dsn=MSSQL-asterisk
+ username=voipdbuser
+ password=voipdbpass
+ loguniqueid=yes
+
+ And finally, create the 'cdr' table in your mssql database.
+
+ CREATE TABLE cdr (
+ [calldate] [datetime] NOT NULL ,
+ [clid] [varchar] (80) NOT NULL ,
+ [src] [varchar] (80) NOT NULL ,
+ [dst] [varchar] (80) NOT NULL ,
+ [dcontext] [varchar] (80) NOT NULL ,
+ [channel] [varchar] (80) NOT NULL ,
+ [dstchannel] [varchar] (80) NOT NULL ,
+ [lastapp] [varchar] (80) NOT NULL ,
+ [lastdata] [varchar] (80) NOT NULL ,
+ [duration] [int] NOT NULL ,
+ [billsec] [int] NOT NULL ,
+ [disposition] [varchar] (45) NOT NULL ,
+ [amaflags] [int] NOT NULL ,
+ [accountcode] [varchar] (20) NOT NULL ,
+ [uniqueid] [varchar] (32) NOT NULL ,
+ [userfield] [varchar] (255) NOT NULL
+ )
+
+ Start asterisk in verbose mode, you should see that asterisk
+ logs a connection to the database and will now record every
+ call to the database when it's complete.
+
+ TDS [cdr_tds.c]:
+ Compile, configure, and install the latest FreeTDS package:
+ tar -zxvf freetds-0.62.4.tar.gz &&
+ cd freetds-0.62.4 &&
+ ./configure --prefix=/usr --with-tdsver=7.0
+ make &&
+ make install
+
+ Compile, or recompile, asterisk so that it will now add support
+ for cdr_tds.c
+
+ make clean &&
+ make update &&
+ make &&
+ make install
+
+ Only install one database connector. Do not confuse asterisk
+ by using both ODBC (cdr_odbc.c) and FreeTDS (cdr_tds.c).
+ This command will erase the contents of cdr_odbc.conf
+
+ [ -f /etc/asterisk/cdr_odbc.conf ] > /etc/asterisk/cdr_odbc.conf
+
+ Setup cdr_tds configuration files. These are working samples
+ from my system. You will need to modify for your setup. Define
+ your usernames and passwords here, secure file as well.
+
+ /etc/asterisk/cdr_tds.conf
+ [global]
+ hostname=192.168.1.25
+ port=1433
+ dbname=voipdb
+ user=voipdbuser
+ password=voipdpass
+ charset=BIG5
+
+ And finally, create the 'cdr' table in your mssql database.
+
+ CREATE TABLE cdr (
+ [accountcode] [varchar] (20) NULL ,
+ [src] [varchar] (80) NULL ,
+ [dst] [varchar] (80) NULL ,
+ [dcontext] [varchar] (80) NULL ,
+ [clid] [varchar] (80) NULL ,
+ [channel] [varchar] (80) NULL ,
+ [dstchannel] [varchar] (80) NULL ,
+ [lastapp] [varchar] (80) NULL ,
+ [lastdata] [varchar] (80) NULL ,
+ [start] [datetime] NULL ,
+ [answer] [datetime] NULL ,
+ [end] [datetime] NULL ,
+ [duration] [int] NULL ,
+ [billsec] [int] NULL ,
+ [disposition] [varchar] (20) NULL ,
+ [amaflags] [varchar] (16) NULL ,
+ [uniqueid] [varchar] (32) NULL
+ )
+
+ Start asterisk in verbose mode, you should see that asterisk
+ logs a connection to the database and will now record every
+ call to the database when it's complete.
+
+
+MYSQL:
+
+
+PGSQL:
+ If you want to go directly to postgresql database, and have the cdr_pgsql.so
+ compiled you can use the following sample setup.
+ On Debian, before compiling asterisk, just install libpqxx-dev.
+ Other distros will likely have a similiar package.
+
+ Once you have the compile done,
+ copy the sample cdr_pgsql.conf file or create your own.
+
+ Here is a sample:
+
+ /etc/asterisk/cdr_pgsql.conf
+ ; Sample Asterisk config file for CDR logging to PostgresSQL
+ [global]
+ hostname=localhost
+ port=5432
+ dbname=asterisk
+ password=password
+ user=postgres
+ table=cdr
+
+ ;Now create a table in postgresql for your cdrs
+
+ ;SQL table where CDRs will be inserted
+ ;Copy and paste this into your postgresql prompt.
+ CREATE TABLE cdr (
+ calldate time NOT NULL ,
+ clid varchar (80) NOT NULL ,
+ src varchar (80) NOT NULL ,
+ dst varchar (80) NOT NULL ,
+ dcontext varchar (80) NOT NULL ,
+ channel varchar (80) NOT NULL ,
+ dstchannel varchar (80) NOT NULL ,
+ lastapp varchar (80) NOT NULL ,
+ lastdata varchar (80) NOT NULL ,
+ duration int NOT NULL ,
+ billsec int NOT NULL ,
+ disposition varchar (45) NOT NULL ,
+ amaflags int NOT NULL ,
+ accountcode varchar (20) NOT NULL ,
+ uniqueid varchar (32) NOT NULL ,
+ userfield varchar (255) NOT NULL
+ );
+
+
+SQLLITE:
+
+
+RADIUS: See doc/radius.txt for more information on cdr_radius