Skip to main content

Call Detail Records (CDR)

IMPORTANT!

If you hadn't yet read the intro part of this section, please click here to read it first.

A call detail record (CDR) is a data record produced by a telephone exchange or other telecommunications equipment that documents the details of a telephone call or other telecommunications transactions (e.g., text message) that passes through that facility or device. The record contains various attributes of the call, such as time, duration, completion status, source number, and destination number. It is the automated equivalent of the paper toll tickets that were written and timed by operators for long-distance calls in a manual telephone exchange.

In Cloudonix, CDR records are produced automatically at the end of a voice call session. A CDR record will always be generated - regardless of the final session status. CDR records are used for billing, accounting and reporting purposes - and as such, it represents the final, most authoritative source of truth, regarding the voice call session.

Module Usage

Setup Overview

Click the Create a new scenario button to create a new scenario, the following view will appear:

Cloudonix Connection Setup

In the search box write Cloudonix to look for the Cloudonix application you installed. We will now create a
new Call Detail Records trigger:

The following image will appear on your view canvas:

Click the Create a webhook button to create a new CDR webhook.

Give a unique name to your new webhook and click the Add button, to create a new connection to Cloudonix. The following dialog will appear:

Make sure to paste your Domain API Key that you created.

You are now ready to start working on your external voice application.

Webhook Input Parameters

TL;DR Reference

While the complete JSON object input includes multiple parameters, the following table includes that most common parameters used. Some of the parameters are returned by action - which means, they are only made available, when the webhook is invoked as a result of an action defined in a module.

ParameterTypeDescription
timestampIntegerEpoch based timestamp of the CDR record.
subscriberStringIf the call originated from a Cloudonix subscriber endpoint, it will appear here.
from or callerIdStringThe SIP From Header in human readable form.
to or destinationStringThe SIP To Header in human readable form.
DomainStringThe Cloudonix domain name
durationIntegerHow long did the call last? (from call dial till hangup).
billsecIntegerHow long was the call connected with audio services? (from call answer till hangup).
dispositionStringFinal status of the call. May be any of the following:
ANSWER, BUSY, CONNECTED, CONGESTION, ERROR, FAILED, NOANSWER
callStartTimeIntegerEpoch based timestamp of the call start time.
callEndTimeIntegerEpoch based timestamp of the call end time.
callAnswerTimeIntegerEpoch based timestamp of the call media establishment time.
tokenStringA unique identifier for this session.

This is important - when reporting an issue to Cloudonix, this token will help identify the problematic session and will enable faster resultion.

Input Reference

When invoked, a JSON object will be made available to Make.com, that looks like this:

CDR Request Parameters
  [
{
"timestamp": 1716239100,
"domain": "xxxxxxxx.yyyyyyyyy.com",
"subscriber": null,
"from": "iiiiiiiiii",
"to": "jjjjjjjjj",
"cx_trunk_id": null,
"application": null,
"route": null,
"duration": 33,
"billsec": 31,
"disposition": "CONNECTED",
"rated_cost": null,
"approx_cost": null,
"sell_cost": null,
"vapp_server": "172.24.xxx.xxx",
"call_id": "0b515a4c3c683a5c51048b2c3758719f@xxx.xxx.xxx.xxx:5060",
"session": {
"id": 9812750,
"domainId": 755,
"domain": null,
"destination": "jjjjjjjjj",
"callerId": "iiiiiiiiii",
"token": "3caa3541d5f8497e9c79ea30ef689677",
"timeLimit": 0,
"profile": {
"callId": [
"0b515a4c3c683a5c51048b2c3758719f@xxx.xxx.xxx.xxx:5060"
],
"inbound-trunk-name": "fromTrunk-Name",
"qos": {
"CHANNELQOS": "ssrc=1909495585;themssrc=0;lp=0;rxjitter=0.000000;rxcount=0;txjitter=0.000000;txcount=106;rlp=0;rtt=0.000000;rxmes=0.000000;txmes=0.000000",
"ssrc": "1909495585",
"themssrc": "0",
"lp": 0,
"rxjitter": 0,
"rxcount": 0,
"txjitter": 0,
"txcount": 106,
"rlp": 0,
"rtt": 0,
"rxmes": 0,
"txmes": 0,
"rx_mos": "NaN",
"tx_mos": 4.4
},
"application": [
{
"time": "2024-05-20T21:05:02Z",
"url": "https://hook.eu1.make.com/ml2u7j35hid88toh41diir5tnocmj9w7",
"source": "[Your Voice Application CXML Document will appear here]",
"context": "applicationRequest",
"error": null
}
],
"inbound-trunk-id": 610
},
"callStartTime": 1716239100387,
"callEndTime": 1716239134343,
"callAnswerTime": 1716239102610,
"status": "connected",
"vappServer": "172.24.xxx.xxx"
}
}
]