mod_cdr_sqlite
About
This module logs call detail records (CDRs) directly to a SQLite database, using templates to define the field order for the SQL insert. These templates along with the default configuration are stored in the file_freeswitch_/conf/autoload_configs/cdr_sqlite.conf.xml.
Click here to expand Table of Contents
Examples
The database specified by the parameter db-name is automatically created in the same directory as the FreeSWITCH core database (specified by the -db command-line switch, or /usr/local/freeswitch/dbby default). The file extension .db is automatically appended to the db-name.
<param name="db-name" value="cdr"/>
The DB table name is specified by the parameter db-table (cdr by default).
<param name="db-table" value="cdr"/>
If the table does not exist, the mod_cdr_sqlite will create it automatically, using the following default table schema:
CREATE TABLE tablename (
caller_id_name VARCHAR,
caller_id_number VARCHAR,
destination_number VARCHAR,
context VARCHAR,
start_stamp DATETIME,
answer_stamp DATETIME,
end_stamp DATETIME,
duration INTEGER,
billsec INTEGER,
hangup_cause VARCHAR,
uuid VARCHAR,
bleg_uuid VARCHAR,
account_code VARCHAR
);
The template that is used for the default field order is defined by the following line (which uses "example" in the default installation).
<param name="default-template" value="example"/>
Variables in a Template
Variables are given in the form ${varname}. For an overview of variables, check Channel Variables. You can specify any channel variable.
Template variables can be to API calls as well, like:
<template name="custom_timestamp">"${expr(${end_epoch}-${my_timestamp})}"</template>