Call and Conference Detail Records (CDR)

Call and Conference Detail Records (CDRs) are used to log call information produced at the end of a call.

There are two modes available to output CDRs, file (records in files on file system) or kafka (records put on Apache Kafka topic). For each mode the CDR is output as JSON.

For more information about how to configure the CDR mode see CDR Configuration Options.

Kafka mode

BVR can log CDRs to a Kafka topic. If enabled, CDRs will be written to a Kafka topic named blueworx.cdr. For details on how to create the required Kafka topic, see Configuring Apache Kafka topics output from BVR.
Note: If the CDR data is critical to your organization, you must be sure that the required Apache Kafka consumers are able to read the data from the topic before it is deleted, or you will lose the data. You may want to alter the retention policy to ensure this, and implement mechanisms to manage consumers used to read the data.

File mode (only Call Detail Records)

BVR can log Call Detail Records to a JSON file. The JSON files are output to /opt/blueworx/vr/log/cdr/

Note: Call Detail Record files written to the file system are not automatically deleted. Call Detail Records will continue to be written, and new files created until the file system is full. It is recommended that if you use this Call Detail Record output mode you implement a process to cleanup old logs.

JSON format

An example simple Call Detail Record output is:

{
    "callIndex" : "091431ED00000002",
    "callIndexFull":"1.2.3.4-20180404102723-091431ED00000002",
    "accountID" : "0x00000000",
    "start" : "2018-04-04 10:27:23.895",
    "end" : "2018-04-04 10:27:26.813",
    "duration" : 2918,
    "direction" : "Inbound",
    "from" : "sip:user@blueworx.com",
    "to" : "sip:1001@example.com",
    "ani" : "user",
    "dnis" : "1001",
    "terminationReason" : "Far end hangup",
    "tts" : {
        "sessionDuration":0,
        "streamDuration":0
    },
    "asr" : {
        "sessionDuration":0,
        "streamDuration":0
    },
    "applicationID" : "0x10000000",
    "bvrMachine" : "1.2.3.4",
    "xml" : {
        "initial" : "file:///opt/blueworx/vr/sample/Welcome.vxml",
        "terminate" : "file:///opt/blueworx/vr/sample/Welcome.vxml"
    }
}

Notes

When BVR handles a bridge transfer, Conference Detail Records are logged, in addition to Call Detail Records. An example CDR output for a Bridge Transfer is:

{
  "members":[
    {
      "callIndex":"091431CB00000001",
      "callIndexFull":"1.2.3.4-20180628145856-091431CB00000001",
      "start":"2018-06-28 14:59:02.340",
      "end":"2018-06-28 14:59:05.899"
    },
    {
      "callIndex":"091431CB00000002",
      "callIndexFull":"1.2.3.4-20180628145902-091431CB00000002",
      "start":"2018-06-28 14:59:02.340",
      "end":"2018-06-28 14:59:05.900"
    }
  ],
  "conferenceId":"1.2.3.4-20180628145902-00000000",
  "duration":3560,
  "type":"Conference"
}

The above record shows the Conference Detail Record. This record is made up of:

In addition to the Conference Detail Record, two Call Detail Records are also logged, one for the "Inbound" call coming into BVR, and another for the "Outbound" call for the transfer target. An example of these records is below:

Inbound

{
  "callIndex":"091431CB00000001",
  "callIndexFull":"1.2.3.4-20180628145856-091431CB00000001",
  "accountID":"0x00000000",
  "start":"2018-06-28 14:58:56.748",
  "end":"2018-06-28 14:59:12.518",
  "duration":15770,
  "direction":"Inbound",
  "from":"sip:caller@user.example.com",
  "to":"sip:1001@bvr.example.com",
  "ani":"caller",
  "dnis":"1001",
  "terminationReason":"Application finished",
  "conferenceId":"1.2.3.4-20180628145902-00000000",
  "bvrMachine":"1.2.3.4",
  "xml":{
    "initial":"file:///opt/blueworx/ccxml/vxml_ccxml_bridge_succeeds.ccxml",
    "terminate":"file:///opt/blueworx/ccxml/vxml_ccxml_bridge_succeeds.ccxml"
  },
  "tts":{
    "sessionDuration":0,
    "streamDuration":0
  },
  "asr":{
    "sessionDuration":0,
    "streamDuration":0
  },
  "applicationID":"0x1000001b",
  "type":"Call"
}

Outbound

{
  "callIndex":"091431CB00000002",
  "callIndexFull":"1.2.3.4-20180628145902-091431CB00000002",
  "accountID":"0x00000000","start":"2018-06-28 14:59:02.291",
  "end":"2018-06-28 14:59:05.981",
  "duration":3690,
  "direction":"Outbound",
  "from":"sip:bvr@1.2.3.4",
  "to":"sip:2001@agent.example.com",
  "ani":"N/A",
  "dnis":"N/A",
  "terminationReason":"Far end hangup",
  "conferenceId":"1.2.3.4-20180628145902-00000000",
  "bvrMachine":"1.2.3.4",
  "xml":{
    "initial":"file:///opt/blueworx/ccxml/vxml_ccxml_bridge_succeeds.ccxml",
    "terminate":"file:///opt/blueworx/ccxml/vxml_ccxml_bridge_succeeds.ccxml"
  },
  "tts":{
    "sessionDuration":0,
    "streamDuration":0
  },
  "asr":{
    "sessionDuration":0,
    "streamDuration":0},
  "applicationID":"0x1000ffff",
  "type":"Call"
}