CDR Notification System API

The CDR Notification System API lets you store all of your business telephony information, such as call details records (CDRs), and manage it at any time directly from your database or your organizational CRM system.
Our Cloud will send you an HTTP requests that contain detailed information for each call you made or received.
cdr notification system api scheme

GENERAL DESCRIPTION

 

If you wish to store and document the call detail records including the url for the call recording in your client's page inside your CRM system this is the API for you.
This api will also enable you to do further automated processes such as:

 

1. If you are using a queue and once you receive a call detail record when a client abandoned the call while waiting in the queue you may send an sms or a whatsapp to the client and/or popup a notification to the call center manager to callback the client.

2. Based on the received information you may analyze your call center performance as part of organizational business logic:

 

  • You will be able to exam which agents answer the most incoming calls.
  • Which agents produce the most answered outgoing calls.
  • In case you are performing outgoing calls to a variety of countries you can analyze which countries have the best answer ratio.
  • You will be able to view what are you peak hours in which you receive the biggest amount of incoming calls, and much more.

 

How Does The API Work?

 

POP SCREEN HOW IT WORKS

 

1. A call is made to\from your Voicenter call center. After the call has ended, Voicenter
converts the call data into a CDR.

2. Voicenter will send an HTTP request with your call data (CDR) to a Web-Service that
was provided to us.

3. HTTP response will be sent back to Voicenter (HTTP response status code: 200 OK), in order to acknowledge us that the data was received.

 

Request Parameters

 

1. POST-JSON

2. XML-RPC

3. Application/x-www-form-urlencoded

 

Response Parameters

 

1. POST-JSON

2. XML-RPC

3. Application/x-www-form-urlencoded

 

 

Voicenter Request - CDR Parameters

Field Description Example
callerDisplays the caller’s phone number.
The phone number that will show to the call destination.
"caller":"0722776772"
targetDisplays the destination of the call.
Can be a phone number or the extension SIP code.
The phone number value will be sent with the international country prefix.
"target":"SIPSIP" / "target":"972722776772"
timeDisplays the time that that the call was made in Epoch time (Israel time zone)."time":1536855354
durationDisplays the duration of the call(seconds).
This duration does not include the ringing duration, only the actual time of the conversation that was made.
"duration":33
ivruniqueidDisplays the ID code of the specific call."ivruniqueid":"20200720095iMlilHJs"
typeDisplays the type of Call.
For example: if it is an incoming/outgoing call?
There are several call types(More details are in the next pages).
"type":"Incoming Call" / "type":"Extension Outgoing" / "type":"Click2Callleg1"
statusDisplays what happened with the specific call?
If the call had 2 "legs", this field will show the status of the leg 2 part of the call call(call types: Click2call, Automatic Dialer calls).
There are several call statuses(More details are below.
"status":"ANSWER" / "status":"ABANDONE" / "status":"TE"
leg1DialStatusNameIf the call had 2 legs, this field will show the status of the leg1 part of the call(call types: Click2call, Automatic Dialer calls).
There are several call statuses(More details are in the next pages).
"leg1DialStatusName": "ANSWER"/ "leg1DialStatusName": "ABANDONE" / "leg1DialStatusName":"TE"
targetextensionDisplays the extension SIP code that answered the incoming call.
Sometimes this value will be identical to the "target" field.
There are cases that the incoming call is received not directly to the extension, so the "target" can display different values.
"targetextension":"SIPSIP"
callerextensionDisplays the extension SIP code that the call was dialed from.
This value is different from the "caller" field.
In the "caller" field we display the actual number that will appear to the call destination.
"callerextension":"SIPSIP"
didDisplays the origin phone number that the caller called to.
This parameter will show value only on incoming calls.
"did":"0722776772"
queueidIf the call was directed to a queue service, it displays the queue code ID.
The value of the field will be null in case there is on queue.
"queueid":1234567
queuenameIf the call was directed to a queue service, it displays the queue name."queuename":"Service Queue"
recordDisplays the URL link to the call recording."record":"https://cpanel.voicenter.co.il/CallsHistory/PlayRecord/2022071916331502463359186d8ab5f5-aws-APIAPI-0722776772.mp3"
priceDisplays the total price of the call in ILS cents (Agorot)."price":7
dialtimeDisplays the ringing duration of the call(seconds).
Not include the actual conversation duration.
"dialtime":23
representative_nameDisplays the Voicenter user name that the specific call was associated with.
If a user was not logged in when the call was made,
then this field will show the user name that the extension\DID is associated with.
"representative_name": "Walter Melon"
representative_codeDisplays the Voicenter user ID code that the specific call was associated with.
If a user was not logged in when the call was made, then this field will show the user name that the extension\DID is associated with.
"representative_code":"9996"
targetextension_nameDisplays the Voicenter extension name that answered the specific call."targetextension_name": "Walter Melon"
callerextension_nameDisplays the Voicenter extension name that this specific call was made from."callerextension_name": "Walter Melon"
target_countryDisplays the country name that this outgoing call was made to."target_country":"Israel"
caller_countryDisplays the country name that this incoming call was made from."caller_country":"Israel"
seconds_waiting_in_ queueThis field will only be sent, if the specific call was directed to a queue.
It displays the duration (seconds) that the caller waited in the queue.
"seconds_waiting_in_queue":5
OriginalIvrUniqueIDThis field will only be sent if a specific call was related to another call.
It displays the origin call code ID – "ivruniqueid".
For example, when calls are transferred in the organization between representatives.
"OriginalIvrUniqueID": "201809131730110122A1212"
DepartmentNameDisplays the department\account name(as it appears in Voicenter) that the call was associated with."DepartmentName": "Voicenter Account"
DepartmentIDDisplays the department\account ID(as it appears in Voicenter) that the call was associated with."DepartmentId":123456
TopDepartmentNameIf the given account has a hierarchy, this field will display the name of the top account in the hierarchy."TopDepartmentID": "Voicenter Top Account"
TopDepartmentIDIf the given account has a hierarchy, this field will display the ID of the top account in the hierarchy."TopDepartmentID":7654321
IVRAn array type field. Displays the stages in the IVR that an incoming call went through.
Fields:
"layer_id" - The IVR layer Voicenter unique ID.
"layer_name" – The IVR layer name as it appears in the Voicenter control panel (CPanel).
"DTMF" – If the caller pressed on a digit\s. If the caller did not press an any digit the default value will be “0”.
"LayerNumber" - The IVR layer ID.
"dtmf_order" – The layer order that the call went through in the IVR.
"IVR": "[{ \"layer_id\":1234567, \"layer_name\":\"LayerName\, \"layer_number\":6, \"Dtmf\":0, \"dtmf_order\":1 }]"

Call Types

CDR Type Name Description
Incoming CallA regular incoming call that was dialed to a phone number and ended up in the IVR or an extension (did not end in a queue, which will make it type 4).
CCA call that was made through a calling card (Access number) service.
Extension OutgoingA regular outgoing call (manually dialed from the phone).
QueueAn incoming call that was received by a queue.
Click2Call leg1A call that was made by click2call (Not by Dialer), leg 1 of the call.
Leg 1 - the initial connection of the call to the extension.
This is the “Phone” parameter in the Click2call API.
This part will contain info about the initial connection of the call.
Click2Call leg2A call that was made by click2call (Not by Dialer), leg 2 of the call.
Leg 2 - the actual call that is being made to the destination.
This is the “Target” parameter in the Click2call API.
This part will contain the call details and call recording.
VoiceMailA call that was answered by Voicenter voicemail.
CallferenceA call that was made through Voicenter callference service.
XferCDRA call that manually transferred from an extension to a DID/another extension.
ProductiveCallLeg1A "leg 1" Agents Auto Dialer calls.
Leg1 - the initial connection of the call to the extension.
This part will contain info about the initial connection of the call.
ProductiveCallLeg2A "leg 2" Agents Auto Dialer calls.
Leg 2 -the actual call that is being made to the destination.
This part will contain the call details and call recording.
ScrubberA call that was made through Voicenter's Scrubber service.
Click 2 IVR"Leg1" Predictive Dialer calls.
Leg1 - the initial connection of the call to the destination.
This part will contain info about the initial connection of the call.
Click 2 IVR IncomingThis is the "Leg 2" Predictive Dialer call.
After the initial Leg1 (Click 2 IVR) call was answered, this new leg is dialing the IVR (a layer in Voicenter telephony menu) and Leg 1 is connected to the representatives.
This call type is for all Click 2 IVR that did not enter a queue.
If the call enters a queue service, the type will be type 15. This part will contain the call details and call recording.
Click 2 Queue IncomingThis is the "Leg 2" Predictive Dialer call.
After the initial Leg1 (Click 2 IVR) call was answered, this new leg is dialing the IVR (a layer in Voicenter telephony menu) and Leg 1 is connected to the representatives.
If the call enters a queue, then the call status will be - Click 2 Queue. Else, the call type will be type 14.
This part will contain the call details and call recording.
FaxCdrA call that was made through Voicenter's internal outgoing fax service. *Not released yet.
Attended CDR leg1A call that was transferred with consultation.
Attended CDR leg2A call that was transferred with consultation.
This type will only be made in a case of an incoming call that was answered by representative "A", "A" will then put the call on hold and make another call (consult) to another person - "B".
Afterward, "A" will transfer the initial call to "B". The "Leg 2" is the part of the call between "B" and the initial caller.
Auto forwardA call that was automatically transferred from an extension to a DID (usually representatives configure their phones manually to transfer calls when they are not available).

Leg 1 & Leg 2 Call Types

 

In some call types, each call consists of two parts arranged in chronological order:

 

1. Click2Call – The first part of the call (Leg1) is the initial connection to the user extension. If the initial connection was established, then the
actual call to the destination is being made (Leg2).

 

2. Productive Dialer – The first part of the call (Leg1) is the initial connection to the user extension. If the initial connection was established, then
the actual call to the destination is being made (Leg2).
3. Predictive Dialer – The first part of the call (Leg1) trying to call the destination. If the initial connection was established to the call destination,
then the call is connected to your call center (Leg2).

 

The Leg2 call parts are often used because it is the actual call to the destination. Sometimes, in the case of Leg2 call part that failed to connect to
the destination (call status – NOTCALLED), the Leg1 part can show the reason that the call did not connect to the extension.

 

 

Call Statuses

CDR Status Name Description
NOTDIALEDHang-up occurred before the call was made.
ANSWERA call was answered.
A successful dial.
The caller reached the destination.
Whenever we receive an answer response signal, also when the call reached local voicemail service and etc.
BUSYBusy signal. The dial command reached its number but the number is busy.
NOANSWERNo answer. The dial command reached its number, the number rang for too long, then the dial timed out
CANCELA call is canceled. The dial command reached its number but the caller hung up before the call destination could answer.
ABANDONEWhen using Voicenter's queue service, this status will appear in several cases:
A caller hung up before the call destination could answer.
A caller while waiting in the queue, chose to exit from the queue.
A call has reached timeout in the queue.
VOENDHang-up during IVR without actual dialing.
In this case, the caller waited in the IVR but hung up before the call rang in any extension.
TEWhen an incoming call is directed to an IVR recording and afterward it configured to hung up the call.
NOTCALLEDA Leg2 Click2Call was not called.
When using a click2call service and the Leg1 initial stage was not successful (not answered).
VOICEMAILCall entered to Voicenter voicemail service.

Call Error Types

 

There maybe be time where while trying to make an outgoing call to certain destination you will receive an error. These error responses display cases when there was a problem connecting to the target destination.
It is mainly used for Voicenter internal Tracking.

The errors you may receive are as followed:

 

Error Types Error Description
CONGESTIONCongestion. This status is usually a sign that the dialed number is not recognized.
CHANUNAVAILChannel unavailable. On SIP, peer may not be registered.
INVALIDARGSError parsing dial command arguments.
SSWPREAUTHSSW outgoing call cancel before actual dial.

Client Response

 

It is important that we get a feedback to understand that all data was received.
In case, we do not receive a valid response we will re-send the CDR data that we failed to send.
The amount of retries and the time intervals between retries are set on Voicenter side.

Name Type Exmple Description
ErrInteger0Error codes:
0 – OK
1 – Parse error
2 – Application error
ErrdescStringOKError description

JSON Example (Outgoing Call):

 

{
"caller": "0722776772",
"target": "0501234567",
"time": 1595960350,
"duration": 11,
"ivruniqueid": "2020072818dcDHFJcc804",
"type": "Extension Outgoing",
"status": "ANSWER",
"targetextension": "",
"callerextension": "SIPSIP",
"did": "",
"queueid": 0,
"queuename": "",
"record": "https://cpanel.voicenter.co.il/CallsHistory/PlayRecord/2020072818dcDHFJcc804-aws.mp3",
"price": 0,
"dialtime": 2,
"representative_name": "User 1",
"representative_code": "12345678",
"targetextension_name": "",
"callerextension_name": "",
"target_country": "",
"caller_country": "",
"DepartmentID": 12345678,
"DepartmentName": "Voicenter Sales Department",
"TopDepartmentID": 87654321,
"TopDepartmentName": "Voicenter Account"
}

In this example, a user (User 1) made an outgoing call from extension (SIPSIP), the call was dialed manually from the extension (not through Auto-Dialer or Click2call services).
The user called the phone number - "0501234567", the phone number that appeared to the call destination was - "0722776772".
This call was answered ("ANSWER").
The call rang 2 seconds, and the duration of the conversation was 11 seconds.

JSON Request Example (Incoming Call):

 

{
"caller": "0501234567",
"target": "",
"time": 1595333610,
"duration": 20,
"ivruniqueid": "202007211213270124c",
"type": "Queue",
"status": "ANSWER",
"targetextension": "",
"callerextension": "",
"did": "0722776772",
"queueid": 123456789,
"queuename": "Sales Queue",
"record": "https://cpanel.voicenter.co.il/CallsHistory/PlayRecord/202007211213270124c-aws.mp3",
"price": 0,
"dialtime": 0,
"representative_name": "Admin User",
"representative_code": "12345679",
"targetextension_name": "",
"callerextension_name": "",
"target_country": "",
"caller_country": "Israel",
"seconds_waiting_in_queue": 20,
"IVR": [
{
"layer_id": 1234,
"layer_name": "Main IVR",
"layer_number": 0,
"Dtmf": 2,
"dtmf_order": 1
}
{
"layer_id": 4321,
"layer_name": "Sales Department",
"layer_number": 2,
"Dtmf": 0,
"dtmf_order": 2
}
]
}

In this example, an incoming call was made from - "0501234567", the caller called the phone number "0722776772".
This call went through the IVR, first, on the "Main IVR" layer which then the caller pressed "2" and was directed to the
second layer – "Sales Department".
This call rang in the queue service ("Queue") name - "Sales Queue".
The caller waited in the queue for 20 seconds and decided to hang-up the call ("ABANDONE").