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.
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.
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.
Please click menu "Data / System", then click "Basic call" tab:
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.
Please refer to manual document for more details about these items.
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 (3) text tools to open and analyze them.
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. |