The Call-Log API works as follows:
The first part of the Call-Log api allows you the set which call records details (CDR's) you will receive based on your filter (search criteria) and your request.
You will decide which on which search criteria to use in order to receive your CDR's, the search criteria will based on:
- From date & to date
- Phone numbers
- extensions
- IdentityCriteria
- CallID
- cdrTypes.
Secondly, you decide which CDR fields will be returned to you by Voicenter.
You decide what information you will receive in your reqeust to Voicenter.
You can set to get only certain CDR fields like record url, status and type of the call, rest of the CDR fields will not be returned.
For security purposes you need to send your request with a code to authenticate your account and make sure the IP address of your server which will be sending api request to Voicenter is authorized in your account.
The code can be provided by our Backoffice team.
General Description
API URI
https://api.voicenter.com/hub/cdr/
Acceptable Request Types
- POST
- GET
Possible Response Formats
- JSON
Request Parameters
As stated above, the Call Log api is divided into 2 "parts":
- The first part you need to authenticate and set the filter (search criteria) which will decide what CDR's you will receive.
- The second part you will need to set which fields that hold the call details record will be returned to you by Voicenter.
Search Criteria Options
Parameter | Description | Type |
code | String. A request can also be send with bearer token. | A unique organization identifier. Mandatory. |
fromdate | Date time in ISO 8601 format. Important – the value is in GMT 0. | Mandatory. |
todate | Date time in ISO 8601 format. Important – the value is in GMT 0. | Mandatory. |
phones | Array of strings. Each string is phone number to search include country code. Israel prefix can be filter without the country code. | Optional. |
extensions | Array of strings. Each string is Voicenter SIP extension. | Optional. |
IdentityCriteria | One of the following: Account, Hierarchical, Department, User. | Optional. |
callID | String. Filter the search for a specific Voicenter call id. | Optional. |
cdrTypes | Array of integers. Allows to filter CDRs by a specific call types (incoming, click2call,dialer etc.). E.g. [4, 18]. | Optional. |
campaignID | Array of numbers, each number is a Voicenter campaign ID. | Optional. |
queueID | Array of numbers, each number is a Voicenter queue ID. | Optional. |
Sort
You can decide how to sort the information in the response you receive from Voicenter.
Parameter | Description | Type |
field | One of the fields list which the sorting criteria will take place. | |
order | asc \ desc. which order to organize the returned results – ascending or descending. |
Reqeust Parameters
These are the CDR fields you can configure to receive in the Response from Voicenter.
Below is an explanation about each field.
Field | Description | Example |
CallerNumber | Displays the caller’s phone number. The phone number that will show to the call destination. | "CallerNumber":"0722776772" |
TargetNumber | Displays 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. | "TargetNumber":"AAPINFzL" / “TargetNumber":"972722776772" |
Date | Displays the time and date that the call was made. | "Date":"2022-007-31 09:59:29" |
DateEpoch | Displays the time and date that the call was made in Epoch format. | "DateEpoch":1554027973 |
Duration | Displays 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 |
CallID | Displays the ID code of the specific call. | "CallID":"20200720095ilila137b2f69s" |
Type | Displays the type of Call. For example: if it is an incoming/outgoing call? There are several call types (More details are down below). | "Type":"Incoming Call" / "Type":"Extension Outgoing" / "Type":"Click2Callleg1" |
CdrType | The “Type” field returns the call type. The “CdrTypes” filed retunes the corresponding numeric value of the call type. The digit id of each call type can be seen below at the Call Type table. | "TargetPrefixName": 4 |
DialStatus | Displays what happened with the specific call? If 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). | "DialStatus":"ANSWER" / "DialStatus":"ABANDONE" / "DialStatus":"TE" |
Targetextension | Displays the extension SIP code that received the incoming call. Sometimes this value will be identical to the "TargetNumber" field. There are cases that the incoming call is received not directly to the extension, so the "TargetNumber" can display different value. | "Targetextension":"AAPINFzL" |
Callerextension | Displays the extension SIP code that the call was dialed from. This value is different from the "CallerNumber" field. In the "CallerNumber" field it displays the actual number that will appear to the call destination. | "Callerextension":"AAPINFzL" |
DID | Displays the origin phone number that the caller called to. This field will only show value if the call direction was an incoming call. | "DID":"0722776772" |
QueueName | If the call was directed to a queue service, it displays the queue name. | "QueueName":"Service Queue" |
RecordURL | Displays a URL link to the call recording. | "RecordURL":"https://cpanel.voicenter.co.i l/CallsHistory/PlayRecord/123abc.mp3" |
RecordExpect | A Boolean type field. Displays if the call was recorded or not. | "RecordExpect":true |
Price | Displays the total price of the call in ILS cents (Agorot). | "Price":7 |
RingTime | Displays the ringing duration of the call(seconds). Not include the actual conversation duration. | "RingTime":23 |
RepresentativeName | Displays the Voicenter representative name that the specific call was associated with. This field will only be displayed if the user was logged in to an extension when the call was made. | "RepresentativeName":"Walter Melon" |
RepresentativeCode | Displays the Voicenter representative ID code that the specific call was associated with. This field will only be displayed if the user was logged in to an extension when the call was made. | "RepresentativeCode":"19996" |
UserName | Similar to the field "RepresentativeName". If a user was logged in to an extension when the call was made, this field will show the same value as "RepresentativeName". But if a user was not logged in then this field will show the user name that the extension\DID is associated with. | "UserName":"Walter Melon" |
DTMFData | A JSON array type field. Displays the stages in the IVR that an incoming call went through. Fields: "LayerName" – 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. | "DTMFData":"[{LayerName: "Main Menu", DTMF: 2, LayerNumber: "0"}, {LayerName: "Sales", DTMF: 0, LayerNumber: "15"}]" |
CustomData | A JSON array type field. Displays custom data that was sent to us. In addition, if a specific call has an origin call it will display here with the field name "OriginalIvrUniqueID". For example: if a call was first answered by one representative who then transferred it to another representative. The second part of the call that was transferred, will have in the "CustomData" field a callID value of the original call, thus associating both calls. | "CustomData": {"OriginalIvrUniqueID":"2020072118102as sdsdas"}" / "CustomData": {"var_clientID":"2118102", {"var_clientAccountID":"123456"}" |
DepartmentName | Displays the department\account name (as it appears in Voicenter) that the call was associated with. | "DepartmentName":"Voicenter Account" |
DepartmentId | Displays the department\account ID (as it appears in Voicenter) that the call was associated with. | "DepartmentId":123456 |
TargetPrefixName | Displays the name of the country that the call was dialed to. | "TargetPrefixName":"Israel" |
Call Type
In Voicenter we have different call type as detailed in the table below.
You can combine the call type and call statuses parameters to generate automated processes in your organization.
For example, if your sales tried to contact a lead via Click2call of an outgoing call (call types) and failed to receive an answer (call status) for the potential client you can send an SMS/WhatsApp/email to that lead informing them you tried to contact them.
CDR type name | CDR type id | Description |
Incoming Call | 1 | A 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). |
CC | 2 | A call that was made through a calling card (Access number) service. |
Extension Outgoing | 4 | A regular outgoing call (manually dialed from the phone). |
Queue | 8 | An incoming call that was received by a queue. |
Click2Call leg1 | 9 | A 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. |
Click2Call leg2 | 10 | A 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. |
VoiceMail | 11 | A call that was answered by Voicenter voicemail. |
Callference | 12 | A call that was made through Voicenter callference service. |
XferCDR | 13 | A call that manually transferred from an extension to a DID/another extension. |
ProductiveCall Leg1 | 14 | A "leg 1" Agents Auto Dialer calls. Leg1 - the initial connection of the call to the extension. |
ProductiveCall Leg2 | 15 | A "leg 2" Agents Auto Dialer calls. Leg 2 -the actual call that is being made to the destination. |
Scrubber | 16 | A call that was made through Voicenter's Scrubber service. |
Click 2 IVR | 17 | "Leg1" Predictive Dialer calls. Leg1 - the initial connection of the call to the destination. |
Click 2 IVR Incoming | 18 | This 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. |
Click 2 Queue Incoming | 19 | This 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. |
FaxCdr | 20 | A call that was made through Voicenter's internal outgoing fax service. *Not released yet. |
Attended CDR leg1 | 21 | A call that was transferred with consultation. |
Attended CDR leg2 | 22 | A 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 forward | 23 | A 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). |
Call statuses
In Voicenter we have different call statuses as detailed below.
Along with the call type (provided above) you can create an automated process, for example send an email to your call center manage asking to callback a client who abandoned (call status) the queue (call type) or tried to join when the queue was full (call status) with other callers.
You can use the information provided by our Call Log api to perform many automated process your organizational business logic dictates.
CDR Status Name | Description |
NOTDIALED | Hang-up occurred before the call was made. |
ANSWER | A call was answered. A successful dial. 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. |
BUSY | Busy signal. The dial command reached its number but the number is busy. |
NOANSWER | No answer. The dial command reached its number, the number rang for too long, then the dial timed out. |
CANCEL | A call is canceled. The dial command reached its number but the caller hung up before the call destination could answer. |
ABANDONE | When using Voicenter's queue service, the caller hung up before the call destination could answer. |
TIMEOUT | When using Voicenter's queue service - a call has reached timeout in the queue. |
FULL | When using Voicenter's queue service - a call tried to enter a queue service, but the queue reached the maximum amount of waiting callers. |
EXIT | When using Voicenter's queue service - a caller while waiting in the queue, chose to exit from the queue. |
JOINEMPTY | When using Voicenter's queue service - a call tried to enter a queue service, but there were no representatives who were logged-in to it. |
VOEND | Hang-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. |
TE | When an incoming call is directed to an IVR recording and afterward it configured to hung up the call. |
NOTCALLED | A Leg2 Click2Call was not called. When using a click2call service and the Leg1 initial stage was not successful (not answered). |
VOICEMAIL | Call entered to Voicenter voicemail service. |
Call Error Types
These error responses display cases when there was a problem connecting to the target destinations.
It mainly used for Voicenter internal Tracking.
Error Types | Description |
CONGESTION | Congestion. This status is usually a sign that the dialed number is not recognized. |
CHANUNAVAIL | Channel unavailable. On SIP, peer may not be registered. |
INVALIDARGS | Error parsing dial command arguments. |
SSWPREAUTH | SSW outgoing call cancel before actual dial. |
Get Reqeust Example
Here below is an example for a reqeust to Call Log API in a POST JSON format.
You can see the fields which you want to receive back in the response.
You can see the search criteria you can use and sorting order.
https://api.voicenter.com/hub/cdr/?code=xxxxxxxxxxxxxxxxxxxx&fromdate=2021-10-02T08:09:40&todate=2021-11- 09T23:59:40&phones=972501234567&extensions=SipSip&fields=Date&fields=Type&Fields=DID&Fields=CallerNumber
JSON Request Example
Here below is an example for a reqeust to Call Log API in a POST JSON format.
You can see the fields which you want to receive back in the response.
You can see the search criteria you can use and sorting order.
Response Parameters
Below are the parameters which are included in the response
Parameter | Description |
ERROR_NUMBER | Integer. Represents error number. |
ERROR_DESCRIPTION | String. Represents error description. |
STATUS_CODE | Integer. Http response code. |
TOTAL_HITS | Integer. The total sum of CDRs results of the client request. |
RETURN_HITS | Integer. How many CDRs results returned in the response(we limit each request up to 10,000 CDRs). |
CDR_LIST | Array of objects. Each object is call detailed record, as requested. |
JSON Response Example
After sending a reqeust to Voicenter, you will receive a response which will enable you to receive the CDR's according to your search criteria.
Below is an example of a response you will receive from Voicenter.
Error Number Response Description
Upon receiving the response from Voicenter there will be an error number and the description of the error.
Below is a detailed explanation.
ERROR_ NUMBER | ERROR_DESCRIPTION | STATUS_CODE | Description |
0 | OK | 200 | The request was sent successfully. |
1 | Request limit exceeded. Please try again later. | 403 | There is a limit to how many requests a client can send in a specific period of time. It is recommended to send one request every 5 seconds. |
2 | Authorization failed. | 403 | Code value is not valid. |
4 | IP address xx.xx.xx.xx is not trusted. | 403 | The request is sent from unauthorized IP address. |
5 | Out of range | 404 | There was a problem with search fields: fromdate, todate. The search range is invalid. |
Service Limits and security
- The CDRs are updated in the service a few minutes after the calls are ended.
- Can receive up to 10,000 CDR results per request.
- Can send up to 30 requests per one minute.
- Requests can only be sent from an authorized IP address that can be set in the Cpanel.