MYVOIPAPP

Call detail record (CDR)

1. Basic call model

To understand CDR details of miniSIPServer, we need to understand basic call model of miniSIPServer firstly. It is a half-call model defined in standard ETSI-23.078. Simply, it seperates one call to two half calls: (1) originating half; and (2) terminating half. Please refer to the figure below.

basic call model

In the basic call, such as A calls B in above figure, miniSIPServer assigns two call sessions (half calls) to connect to each side. One session is used to connect caller user who orginate the call, we name it to be "caller side" or "O-side". Another session is used to connect the target user, we name it to be "callee side" or "T-side".

Each session can generate its own CDR. That means there could have two CDR records for one call. The CDR from O-side is "caller CDR" or O-CDR, and CDR from T-side is "callee CDR" or T-CDR. That's the CDR model of miniSIPServer. Please refer to the figure below.

CDR model

Both caller side and callee side can be local users or outside users (such as external lines or SIP trunks), so miniSIPServer can generate four kinds of CDR: (1) local users' caller CDR; (2) local users' callee CDR; (3) outside users' caller CDR; and (4) outside users' callee CDR.

We can configure miniSIPServer to generate all these CDR or just some of them.

2. Configuration

Please click menu "Data / System / Call detail record" to get a configuration dialog.

CDR configuration

In this dialog, we can indicate miniSIPServer which CDR records should be generated. In most scenarios, the caller CDR is same with callee CDR, so we suggest that generating caller CDR records should be enough.

At the samt time, miniSIPServer can save all CDR records into local files.

3. CDR files

CDR files are stored in 'cdr' sub-directory of application data directory. They are CSV format text files, we can use (1) Microsoft Excel or (2) LibreOffice calc or text tools to open and analyze them.

CDR format

By default, miniSIPServer generates one CDR file everyday if there is at less one call. In these files, one line is one record. Each record has following key items:

Item Description
direction

It is a caller CDR or callee CDR.

'0' means it is a caller CDR, '1' means it is a callee CDR.

caller_number The number of caller who originates the call.
dailed_number The original called number of the call. It is the number that the caller party dials to originate the call.
called_number

The final called number of the call.

In most scenario, this number is same as 'dialed_number', but they could be different in some scenarios.

For examples, if the "dial plan" procedure changes the called number, it could be different. In auto-attendant service, the caller party can dial a number to trigger auto-attendant service, and input the destination number in the IVR procedure, then the called number is the destination number.

duration This is the duration that both sides talk to each other. If the callee doesn't answer the call, this value should be zero.
fee It is a very old item and used in 'call shop' service to calculate fee for the call.
setup_time The timestamp when miniSIPServce receives the call.
alert_time The timestamp when the callee side is ringing.
connect_time The timestamp when the callee side answers the call.
release_time The timestamp when the call is disconnected.
external line If the call is from or to an external line, this item records such line.
service It is a special inner value. miniSIPServer uses it to record which inner service is triggered.
address In O-CDR, it records the IP address of the caller side. In T-CDR, it records the IP address of the callee side.
FCI Furnish Call/Charge Information. It is a special item which is used to record some parameters our R&D team could care to fix problems.