Click2Call API

Click2Call enables executing direct phone calls, with just the click of a button.
It’s super easy to implement and integrate, using our ready-to-use code.
This great and versatile API integration can really make a difference, wherever you assimilate it
  • Initiating phone-calls from any available representative or salesperson -automatically!(Great
    performance booster, fully personalize to any duration).

 

  • Trigger and initiate an automatic call-back to any ‘Contact us’ lead or customer, the moment
    they click the ‘Apply/Send’ button. Imagine their WOW, and your conversion rates.

 

  • Integrate click2call to your CRM, will improve your performance and make sure you fully-deliver your SLA (http://en.wikipedia.org/wiki/Service-level_agreement) as endorsed.

 

The Click-To-Call API works as follows:


The API for each call you initiate actives 2 "legs":

1. "Leg 1" is the first call the agent receives to his extension after initiating a call.
This is set by the "Phone" parameter where you input the ID of the agent's extension.

2. "Leg 2" is the call to the chosen destination (following an answer to the leg 1 call), this is set by configuring the client's phone number in the target parameter.

 

General Click2Call API description:

[
]

1
          

        
[
]

API URI

1
          
https://api.voicenter.com/forwardDialer/click2call.aspx
        

Capabilities of the API

 

This API allows you to initiate any of the following 3 types of calls:

1. Simple outgoing call.

2. Callback and click to IVR.

3. Terminate calls.

Acceptable request types

 

1. POST-JSON

2. GET

Possible Response formats

To control the format of the response please provide your desired format in the request:

 

1. XML (default)

2. POST-JSON

 

Request Example GET Format

[
]

1
          

        
[
]

1
          
https://api.voicenter.com/ForwardDialer/click2call.aspx?phone=XXXXXXXX&target=057XXXXXXX&code=XXXXXXXXXXX&action=call
        

Request Example POST-JSON Format

{
"code": "XXXXXXXXXXX",
"phone": "APIAPIAPI",
"action": "call",
"target": "0512345678"
}

1
          

        
[
]

1
          

        

Call Action Request Parameters

Parameter Description Appearance
PhoneFirst destination to dial.
Phone number or Voicenter extension.
Phone must be in E164 format, but without the plus sign.
If the phone is Israeli,format can be 0*********.
In case of dialing to an extension behind a SIP Trunk, please set Phone=SIPTRUNK.
In case of extension dependency on user login please set:
phone=logincode phonelogincode=[login code].
Mandatory
targetSecond destination to dial.
Phone number or Voicenter extension.
Phone should be in E164 format, but without the leading plus (+) sign. If the Target is Israeli, format can be 0********* too.
Mandatory
codeCaller identity token, attainable from our back office department.mandatory
actionCall (action-call).mandatory
recordRecord the call.
Acceptable values: true / false.
If not provided set to false.
Optional
phonecalleridCaller id of the phone.
Not supported by all providers.
Optional
phonecallernameCaller name of the phone.
Not supported by all providers.
Optional
targetcalleridCaller id of the target.
Not supported by all providers.
Optional
targetcallernameCaller name of the target.
Not supported by all providers.
Optional
phonemaxdialtimePhone maximum dialtime, in seconds.
If not provided set to 60 seconds.
Optional
targetmaxdialtimeTarget maximum dial time, in seconds.
If not provided set to 60 seconds.
Optional
maxdurationMaximum call duration in seconds.
If not provided set to 7200 seconds.
Optional
phoneautoanswerOnly for Voicenter extensions.
Expecting true or 1 for phone automatic answer.
If not specified set to false.
Optional
targetautoanswerOnly for Voicenter extensions.
Expecting for true or 1 for target automatic answer
If not specified set to false.
Optional
checkphonedevicestateBlock call if extension offline.Optional
checktargetdevicestateBlock call if extension offline.Optional
languageSpecify languageforsystem recordings/prompts/etc.
Acceptable format is [he/en/ru/ etc...].
optional
vm_idVoicemailcode.
Only for Voicenter extension.
Optional
formatControl the format of the response.
Possible formats : 1. XML
2. JSON The default is XML.
Optional
var_*Any custom parameter with “var_” prefix.
For example: var_customer=2342
This parameter used in:
1.Voicenter chrome notification extension
2.Voicenter desktop notification program
3.CDR to CRM API
The limit is 10 parameters.
https://api.voicenter.co.il/ForwardDialer/click2call. aspx?phone=XXXXXXXX&target=057XXXXXXX&code=XXXXXXXXXXX&action=call &var_accountID=12345678&var_agentID=1234567
Optional
[
]

1
          

        

Terminate Action

The Click-To-Call provides you with the option not just initialing calls but also allow the agent to end an active call.

 

Table Parameters

Parameter Description Appearance
PhoneVoicenter extension To hang up.Mandatory
codeCaller identity for you account, provided by our Backoffice department.Mandatory
actionterminate (action=terminate).Mandatory
[
]

1
          

        

Click-To-Call API Response

After you make an api request we provide with you with a response to signal if your request was successful or not.

The response will be in XML format (XML-RPC structure) or JSON.

 

The fields are as follows:

1. ERRORCODE (Integer) List:

Code Description
0OK
1Invalid request parameters
2Application error
3The representative's extension is offline
4Extension blocked for Click2Call calls
[
]

2. ERRORMESSAGE (String) - A short sentence describing the issue.

3. CALLID - String (32 chars), Unique code of the call, in case of failure is empty.

 

XML Response Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
          
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>ERRORCODE</name>
<value><string>1</string></value>
</member>
<member>
<name>ERRORMESSAGE</name>
<value><string>Phone is missing</string></value>
</member>
<member>
<name>CALLID</name>
<value><string></string></value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
        

JSON Response Example

{
"ERRORCODE": 0,
"ERRORMESSAGE": "OK",
"CALLID": "sdfsdfsdfsdfdsfsdfdsfsdfsdf0brp"
}

1
          

        

Pop Up Screen API

Use this API to let you pop up a screen with the caller’s contact details right out of your business information system (CRM).

General Description

 

If you are working on Chrome browser then you can use our chrome extension and give your agents/representatives the option of popping up the calling customer data from your CRM during incoming calls.

 

This way your agents will know with which customer is calling even before answering the call.

 

 

How does the Voicenter pop-up screen work?

 

POP SCREEN HOW IT WORKS

 

 

  1. A caller is calling. The caller Caller-ID is gathered by Voicenter Cloud.
  2. Voicenter cloud sends the call data to your Server using simple http request
  3. After the client got the call data from Voicenter request, a JSON response is sent back to
    Voicenter cloud.
  4. A notification with the client’s response will pop up. Pressing the notification
    will load a new web chrome browser tab with the provided "URL" link from Step 3.

 

 

Request Formats

 

1.GET

2. POST- Application/X-WWW-Form-Urlencoded

 

Response Format

1. POST-JSON

 

 

[
]

1
          

        
[
]

Get Request Example

1
2
          
https://www.yourdomain.com/contact_search.asp?phone=0722776772&ivrid=202010111sdsd3684752bcb3d&extenU
ser=SIPSIPl&did=0722776773&statusCall=Ringing
        
[
]

POST Request Example

1
          
phone=0722776772&ivrid=202010111sdsd3684752bcb3d&extenUser=NaDzw5Ol&did=0722776773&status=Ringing
        
[
]

1
          

        

Client Response (POST-JSON Only)

 

Field Name Description Type Remarks
STATUSOnly accepts "OK".
Any other value will indicate that there was an error on the client side.
Notice: "OK" in CAPITAL letters.
StringMandatory
URLA link to the caller’s contact details page out of your business information software(CRM).StringOptional
CLIENTNAMEThe caller’s name out of your CRM.StringOptional
TOTALHow many results were found in your CRM.IntegerOptional
COMPANYThe caller’s company name out of your CRM.StringOptional

JSON Response Example

{
"STATUS": "OK",
"URL": "https://www.yourdomain.com/contact_search.asp?user_phone=0722776772",
"CLIENTNAME": "John Doe",
"TOTAL": 1,
"COMPANY": "Voicenter"
}

1
          

        

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.

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

 

 

[
]

1
          

        
[
]

1
          

        

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 }]"
[
]

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.

 

 

[
]

1
          

        
[
]

1
          

        

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.
[
]

1
          

        

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.
[
]

1
          

        

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.

1
          

        

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 a queue service ("Queue") name - "Sales Queue".
The caller waited in the queue for 20 seconds and decided to hang-up the call ("ABANDONE").

1
          

        

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 a queue service ("Queue") name - "Sales Queue".
The caller waited in the queue for 20 seconds and decided to hang-up the call ("ABANDONE").

test Json

Call Log API

Call log API allows you to pull call record details (CDR) by a simple web request. You can receive up to 10,000 CDR result per reqeust by a filter of your choice. You can analyze the data and generate automated reports regarding your call center performance, store the call history of your clients along with the url for the call record.

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:

  1. From date & to date
  2. Phone numbers
  3. extensions
  4. IdentityCriteria
  5. CallID
  6. 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

 

[
]

1
          

        
[
]

1
          
https://api.voicenter.com/hub/cdr/
        

Acceptable Request Types

 

  1. POST
  2. GET

 

Possible Response Formats

 

  1. JSON

 

[
]

1
          

        
[
]

1
          

        

Request Parameters

 

As stated above, the Call Log api is divided into 2 "parts":

  1. The first part you need to authenticate and set the filter (search criteria) which will decide what CDR's you will receive.
  2. 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
fromdateDate time in ISO 8601 format.
Important – the value is in GMT 0.
Mandatory
todateDate time in ISO 8601 format.
Important – the value is in GMT 0.
Mandatory
phonesArray of strings.
Each string is phone number to search include country code.
Israel prefix can be filter without the country code.
Optional
extensionsArray of strings. Each string is Voicenter SIP extension.Optional
IdentityCriteriaOne of the following: Account, Hierarchical, Department, User.Optional
CallIDString.
Filter the search for a specific Voicenter call id.
Optional
cdrTypesArray of integers.
Allows to filter CDRs by a specific call types (incoming, click2call,dialer etc.).
E.g. [4, 18].
Optional
[
]

1
          

        

Sort

 

You can decide how to sort the information in the response you receive from Voicenter.

Parameter Description Type
fieldOne of the fields list which the sorting criteria will take place.
orderasc \ desc.
which order to organize the returned results – ascending or descending.
* It is an Array type, you can send requests with multiple field & order.
[
]

1
          

        

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
CallerNumberDisplays the caller’s phone number.
The phone number that will show to the call destination.
"CallerNumber":"0722776772"
TargetNumberDisplays 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"
DateDisplays the time and date that the call was made."Date":"2022-007-31 09:59:29"
DateEpochDisplays the time and date that the call was made in Epoch format."DateEpoch":1554027973
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
CallIDDisplays the ID code of the specific call."CallID":"20200720095ilila137b2f69s"
TypeDisplays 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"
CdrTypeThe “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
DialStatusDisplays 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"
TargetextensionDisplays 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"
CallerextensionDisplays 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"
DIDDisplays 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"
QueueNameIf the call was directed to a queue service, it displays the queue name."QueueName":"Service Queue"
RecordURLDisplays a URL link to the call recording."RecordURL":"https://cpanel.voicenter.co.i l/CallsHistory/PlayRecord/123abc.mp3"
RecordExpectA Boolean type field.
Displays if the call was recorded or not.
"RecordExpect":true
PriceDisplays the total price of the call in ILS cents (Agorot)."Price":7
RingTimeDisplays the ringing duration of the call(seconds).
Not include the actual conversation duration.
"RingTime":23
RepresentativeNameDisplays 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"
RepresentativeCodeDisplays 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"
UserNameSimilar 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"
DTMFDataA 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"}]"
CustomDataA 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"}"
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
TargetPrefixNameDisplays the name of the country that the call was dialed to."TargetPrefixName":"Israel"
[
]

1
          

        


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 Call1A 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).
CC2A call that was made through a calling card (Access number) service.
Extension Outgoing4A regular outgoing call (manually dialed from the phone).
Queue8An incoming call that was received by a queue.
Click2Call leg19A 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 leg210A 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.
VoiceMail11A call that was answered by Voicenter voicemail.
Callference12A call that was made through Voicenter callference service.
XferCDR13A call that manually transferred from an extension to a DID/another extension.
ProductiveCall Leg114A "leg 1" Agents Auto Dialer calls. Leg1 - the initial connection of the call to the extension.
ProductiveCall Leg215A "leg 2" Agents Auto Dialer calls. Leg 2 -the actual call that is being made to the destination.
Scrubber15A call that was made through Voicenter's Scrubber service.
Click 2 IVR17"Leg1" Predictive Dialer calls.
Leg1 - the initial connection of the call to the destination.
Click 2 IVR Incoming18This 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 Incoming19This 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.
FaxCdr16A call that was made through Voicenter's internal outgoing fax service.
*Not released yet.
Attended CDR leg121A call that was transferred with consultation.
Attended CDR leg222A 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 forward23A 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).
[
]

1
          

        

 

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
NOTDIALEDHang-up occurred before the call was made.
ANSWERA 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.
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, the caller hung up before the call destination could answer.
TIMEOUTWhen using Voicenter's queue service - a call has reached timeout in the queue.
FULLWhen using Voicenter's queue service - a call tried to enter a queue service, but the queue reached the maximum amount of waiting callers.
EXITWhen using Voicenter's queue service - a caller while waiting in the queue, chose to exit from the queue.
JOINEMPTYWhen using Voicenter's queue service - a call tried to enter a queue service, but there were no representatives who were logged-in to it.
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.
[
]

1
          

        

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
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.
[
]

 

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.

1
2
          
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.

 

{
"code": "xxxxxxxxxxxxxxxxxxxxxxxxxxx",
"fields": [
"CallerNumber",
"TargetNumber",
"Date",
"DateEpoch",
"Duration",
"CallID",
"CustomData",
"Type",
"CdrType",
"DialStatus",
"TargetExtension",
"CallerExtension",
"DID",
"QueueName",
"RecordURL",
"Price",
"RingTime",
"RepresentativeName",
"RepresentativeCode",
"DTMFData",
"DepartmentName",
"DepartmentId"
]
"search": {
"fromdate": "2021-10-02T08:09:40",
"todate": "2021-11-09T23:59:40",
"cdrTypes": [
1,
8,
9
]
"phones": [
"972501234567",
"0722776772"
]
"extensions": [
"SipSip"
]
"IdentityCriteria": "Account",
"CallID": "xxxxxxxxxxxxxxxxxxxxxx"
}
"sort": [
{
"order": "desc",
"field": "date"
}
{
"order": "asc",
"field": "Duration"
}
]
}

1
          

        
[
]

1
          

        

 

Response Parameters

 

Below are the parameters which are included in the response

Parameter Description
ERROR_NUMBERInteger.
Represents error number.
ERROR_DESCRIPTIONString.
Represents error description.
STATUS_CODEInteger.
Http response code.
TOTAL_HITSInteger.
The total sum of CDRs results of the client request.
RETURN_HITSInteger.
How many CDRs results returned in the response(we limit each request up to 10,000 CDRs).
CDR_LISTArray 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": 0,
"ERROR_DESCRIPTION": "OK",
"STATUS_CODE": 200,
"TOTAL_HITS": 2,
"RETURN_HITS": 2,
"CDR_LIST": [
{
"CallerNumber": "0722776772",
"TargetNumber": "972501234567",
"Date": "2021-10-10T09:04:58Z",
"Duration": 2,
"CallID": "202110101204550233243ghff3189e5c",
"CustomData": {
}
"Type": "Extension Outgoing",
"CdrType": 4,
"DialStatus": "ANSWER",
"TargetExtension": "",
"CallerExtension": "SipSip",
"DID": "",
"RecordURL": "https://cpanel.voicenter.co.il/CallsHistory/PlayRecord/2021101043950926.mp3",
"RingTime": 10,
"RepresentativeName": "rep 1",
"RepresentativeCode": "87654321",
"DTMFData": [
]
"DepartmentName": "Test Account",
"DepartmentId": 12345678
}
{
"CallerNumber": "0501234567",
"TargetNumber": "SipSip",
"Date": "2021-10-02T12:55:18Z",
"Duration": 0,
"CallID": "202110021555160180fd3jhj455",
"CustomData": {
"OriginalIvrUniqueID": "20211002156fdf534hfgh453df34"
}
"Type": "Incoming Call",
"CdrType": 1,
"DialStatus": "CHANUNAVAIL",
"TargetExtension": "SipSip",
"CallerExtension": "",
"DID": "0722776772",
"RecordURL": "",
"RingTime": 2,
"RepresentativeName": "rep 1",
"RepresentativeCode": "87654321",
"DTMFData": [
{
"LayerName": "rep 1",
"DTMF": 0,
"LayerNumber": "1"
}
]
"DepartmentName": "Test Account",
"DepartmentId": 12345678,
"TargetPrefixName": ""
}
]
}

1
          

        
[
]

1
          

        

 

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
0OK200The request was sent successfully.
1Request limit exceeded.
Please try again later.
403There 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.
2Authorization failed.403Code value is not valid.
4IP address xx.xx.xx.xx is not trusted.403The request is sent from unauthorized IP address.
5Out of range404There was a problem with search fields: fromdate, todate.
The search range is invalid.

 

Service Limits and security

 

  1. The CDRs are updated in the service a few minutes after the calls are ended.
  2. Can receive up to 10,000 CDR results per request.
  3. Can send up to 30 requests per one minute.
  4. Requests can only be sent from an authorized IP address that can be set in the Cpanel.
[
]

1
          

        

External Layer API

Extend the functionality of your Voicenter IVR and implement call routing based on the information in your organizational database or CRM systems in order to perform advanced routing of incoming calls.

 

GENERAL DESCRIPTION

 

Voicenter Request

 

With External IVR API, you can extend functionality of Voicenter IVR and connect it to your
organizational database or CRM systems in order to perform advanced routing of incoming calls.

For example, you can identify incoming call by phone number and determine if this is an existing client
or a new potential client, and perform different routing scenarios accordingly, such as:

 

  1. Caller number is registered as an existing lead: Your CRM can check if one of your sales
    representatives already spoke to this client and reply back with the layer of this
    representative in order to redirect the call directly to that specific sales representative.
    You want to do that in order to finalize sales process in a smoother more customer experience oriented
    IVR.
  2. Caller number is registered as an existing account: Your CRM can check if there is an
    ongoing open ticket/case and transfer the call to the right customer services
    representative/desk - in order to resolve the issue and provide personal service faster.
  3. Caller number does not exist in your CRM: Your CRM can transfer these calls to sales
    representatives or as an alternative you can ask from the client to provide some
    identification information in order to transfer the call to the right desk.
  4. In addition, callers can be asked to dial their personal ID, account number or anything else,
    and this data can be process by your organizational database or CRM systems in order to
    perform varied actions. These digits pressed during the navigation in the IVR are called
    DTMFs.

 

External IVR API utilizes existing layers of Voicenter IVR in order to route calls.
Further explanation about creating and managing IVR layer can be found at the end of this
chapter.

 

In order to utilize advanced features of the External Layer IVR, the system needs an end
point URL to address when calling the Layer. This URL can be managed in the Layer settings
tab.


Once the call is received, Voicenter IVR will initiate a POST request to this endpoint. This
request will contain the following information:

 

Reqeust Format

1. POST-JSON

 

Response Format

1. POST-JSON

 

[
]

1
          

        
[
]

1
          

        

Request Parameters

 

After implementing your endpoint in the relevant layer/s in your Voicenter IVR you will start receiving request with the following parameters:

Field Name Description Type
METHODWill always be "IVR_LAYER_INPUT".String
DATAData object of an IVR request.String
DIDDID number that the call was received on(Incoming number).String
CALLER_IDCaller ID of the current caller.String
IVR_UNIQUE_IDVoicenter unique ID of a call. Can be used for state purposes.String
DTMFIf the caller was requested to enter identification information, this input will be passed in this parameter.
*In case the caller did not enter any value(did not make any dial action), the default value will always be “0”.
String
LAYER_IDThe current layer ID in the IVR that the request is sent from.Integer
PREVIOUS_LAYER_IDIf the call was passed to the layer from another layer, the previous layer will be shown here.Integer

 

Reqeust Example

 

Below is an example of a request your endpoint will receive from the Voicenter IVR.

{
"METHOD": "IVR_LAYER_INPUT",
"DATA": {
"DID": "0722776772",
"CALLER_ID": "0501234567",
"IVR_UNIQUE_ID": "1bcd7954224861f85a2d70612f2",
"DTMF": "1234",
"LAYER_ID": 5,
"PREVIOUS_LAYER_ID": 5
}
}

 

Caller ID in this request can be used in order to check if there is an existing record in the
CRM. Also, the caller dial input(DTMF) can be used as well.

 

1
          

        

 

Caller ID in this request can be used in order to check if there is an existing record in the
CRM. Also, the caller dial input(DTMF) can be used as well.

 

[
]

1
          

        

 

Client Response

 

Response Parameters

 

Once it you have received the request from Voicenter and processed your automated process, a response needs to be formulated and sent back to Voicenter as part of the HTTP protocol process.


The response must contain the following parameters:

 

Field Name Description Type Remarks
STATUS0 - OK.
1 - Error has occurred on client's side.
IntegerMandatory
ACTION1. GO_TO_LAYER - Will pass the call to a layer within a Voicenter IVR and continue as set in layer.

2. SAY – Will announce the caller with a data that was sent in this method and will then pass the call to a layer within a Voicenter IVR.
More info about the SAY method below.

3. DIAL - Will dial an external number or a Voicenter extension.
More info about the DIAL method below.
StringMandatory
LayerLayer number that the call will be redirected to.IntegerMandatory
CALLER_ NAMECaller name that will be shown on the destination phone (Supported only for Voicenter extensions).StringOptional
CUSTOM_ DATAInternal CRM information about the client that can be passed for pop-up screen or CDR logs purposes.StringOptional

Client Response (Without Custom Data)

 

Below is an example of a response with GO_TO_LAYER action, the response is without custom data.

 

{
"STATUS": 0,
"ACTION": "GO_TO_LAYER",
"LAYER": 12
}

1
          

        

Response With Custom Data

 

If you wish to send a response along with custom data can do so the following way:

 

{
"STATUS": 0,
"ACTION": "GO_TO_LAYER",
"LAYER": 22,
"CALLER_NAME": "Shlomi",
"CUSTOM_DATA": {
"CRM_cleint_ID": "12345",
"Last_ticket_ID": "222",
"Last_representative": "John Doe"
}
}

1
          

        

 

Case Example

 

You identify a caller by pressing their personal ID in a given Layer in the IVR (in this request example its "5").
Play the Layer recording (configured in the Cpanel incoming interface), asking the caller to press his ID
(in the following request example “12345678").
After the caller has finished pressing, we will send a JSON request as followed:

 

Case Example JSON Request

 

{
"METHOD": "IVR_LAYER_INPUT",
"DATA": {
"DID": "0722776772",
"CALLER_ID": "0501234567",
"IVR_UNIQUE_ID": "1bcd7954224861f85a2d70612f2",
"DTMF": "12345678",
"LAYER_ID": "5",
"PREVIOUS_LAYER_ID": "5"
}
}

 

The data on the "DTMF" field is the data that the caller pressed.
Next, we should get a Response indicating how the caller should be routed on the IVR.

 

Case Example JSON Response

 

1
          

        

 

The data on the "DTMF" field is the data that the caller pressed.
Next, we should get a Response indicating how the caller should be routed on the IVR.

 

Case Example JSON Response

 

{
"STATUS": 0,
"ACTION": "GO_TO_LAYER",
"LAYER": 12,
"CALLER_NAME": null,
"CUSTOM_DATA": null
}

In this response, the caller was transferred to layer "12" in the IVR.
When we setup the integration, we create in advance, all the IVR scenarios (layers) according to the account
preferences and business needs.
For example, layer "12" can be a layer indicating a successful caller identification and the caller will be
directed to your representatives.
If the identification of the caller was not successful, the caller can be
redirected to layer "13" where we can ask to press the ID again, or any other option desired.

1
          

        

In this response, the caller was transferred to layer "12" in the IVR.
When we setup the integration, we create in advance, all the IVR scenarios (layers) according to the account
preferences and business needs.
For example, layer "12" can be a layer indicating a successful caller identification and the caller will be
directed to your representatives.
If the identification of the caller was not successful, the caller can be
redirected to layer "13" where we can ask to press the ID again, or any other option desired.

[
]

1
          

        

 

Say Method

 

The SAY functionality of Voicenter external IVR service can be used to announce callers with dynamic data
from your external system.
For example, you can inform your clients regarding the status of their order or let them know the amount of
credits that currently left in their account, automatically through the IVR.
The initial request that is sent from Voicenter to your system is the same, as described above.
In order to use the "SAY" functionality we need to receive a response in the following format: POST- JSON.
Below is a table with the parameters you will need to use with a response example to provided afterwards.

 

Response Parameters

Field Name Description Type Remarks
STATUS0 - OK.
1 - Error has occurred on client's side.
StringMandatory
ACTIONSAY_DIGITSStringMandatory
NEXT_LAYERLayer number that the call will be redirected to after completing the announcement.IntegerMandatory
LANGUAGEThe language in which the client will hear the response:
1. HE – Hebrew.
2. EN – English.
3. AR – Arabic.
4. RU – Russian.
More languages can be supported upon request.
StringMandatory
DATAA data array contains the data that needs to be played to the caller.
Types of data:
1. Digits (integer) - The IVR will announce the data digit-by-digit. Example: a phone number.
2/ Number (integer) - The IVR will announce a number. Example: amount of credits left in the caller account.
3. Date (String) - The IVR will announce the date. Date in ISO 8601 format: YYYY-MM-DD. Example: 2019-12-14.
4. DateTime (String) - Announcement of date and time, ISO 8601 format, Example: 2019-12-14T10:12:59.
StringMandatory

Say Method Response Example

 

{
"STATUS": 0,
"ACTION": "SAY_DIGITS",
"NEXT_LAYER": 2,
"NEXT_LAYER_IF_FAILED": 1,
"LANGUAGE": "EN",
"DATA": [
{
"RecordType": "Recording",
"Content": "9899115_20849570029.mp3"
}
{
"RecordType": "Digits",
"Content": "0501234567"
}
{
"RecordType": "Number",
"Content": "112"
}
{
"RecordType": "Date",
"Content": "2019-12-14"
}
{
"RecordType": "DateTime",
"Content": "2019-12-14T10:12:59"
}
{
"RecordType": "Recording",
"Content": "98972915_209570029.mp3"
}
]
}

1
          

        

 

Say Method Response Explanation

 

The Digits, Number, Date and DateTime content will play in the language that was requested in the
“LANGUAGE” field.

In this case, the data will be announced in English(“EN”).


The IVR will play the caller the data content in the order it was sent:


1. The caller will hear the recording - 9899115_20849570029.mp3.
2. Then the IVR will play the digits “zero, five, zero, one, two, three, four, five, six, seven”.
3. After that the number "one hundred and twelve".
4. Date – “fourteenth of December two thousand nineteen".
5. Date and time – “fourteenth of December two thousand nineteen at ten and twelve minutes and
fourteen seconds”.
6. The caller will hear the recording - 98972915_20897670025.mp3.


After playing the data that was sent, the caller will be directed to the layer that was specified in
NEXT_LAYER. In this case, the call will be directed to layer 2.

[
]

1
          

        
[
]

1
          

        

 

Dial Method

 

The DIAL functionality of Voicenter external IVR service can be used to direct calls to an external phone
number or to a Voicenter extension.

For example, if your representatives are working with their personal mobile phones during night shifts and you wish to direct some calls to a specific representative mobile.
With the DIAL functionality you can easily do that.
The initial request that is sent from Voicenter to your system is the same, as described above.
In order to use the "SAY" functionality we need to receive a response in the following format: POST- JSON.
Below is a table with the parameters you will need to use with a response example to provided afterwards.

 

Response Parameters

 

Field Name Description Type Remarks
STATUS0 - OK.
1 - Error has occurred on client's side.
IntegerRemarks
ACTIONDIALStringMandatory
CALLER_IDThe phone number that will be shown to dialed destination. Example “0722776772”.StringMandatory
CALLER_NAMEA name that will be shown to the dialed destination.
Only if the destination is a Voicenter extension.
StringOptional
MAX_CALL_ DURATIONTotal duration of the call(seconds). Actual call not include dialing duration.IntegerMandatory
MAX_DIAL_ DURATIONTotal dialing duration of the call(seconds). Not include the actual answered call duration.IntegerMandatory
NEXT_VO_IDIn case of the destination is not reachable, the Voicenter IVR layer that the call will be directed to.
Important- it does not include busy\voicemail\dialed to the destination and the destination did not answer.
Only in cases of some kind of malfunction with the destination.
IntegerMandatory
RECORDINGWhether to record the call? Accepts: “yes” or “no”.
The default behavior is not to record the call.
StringMandatory
TARGETSA data array that contains the requested call destination:
TYPE - accepts “PHONE” or “EXTENSION” (Voicenter Extensions). Value is case sensitive.
TARGET – accepts phone number or Voicenter extension SIP code.
Phone numbers outside Israel must be sent with international prefix.
StringMandatory
CUSTOM_ DATAInternal CRM information about the client that can be passed for pop-up screen or CDR logs purposes.StringMandatory

 

Dial Method Response Example

 

{
"STATUS": 0,
"ACTION": "DIAL",
"CALLER_ID": "0722776772",
"CALLER_NAME": "Voicenter",
"MAX_CALL_DURATION": 1800,
"MAX_DIAL_DURATION": 60,
"NEXT_VO_ID": 15,
"RECORDING": "yes",
"TARGETS": [
{
"TYPE": "PHONE",
"TARGET": "0501234567"
}
]
"CUSTOM_DATA": {
"CRM_cleint_ID": "12345",
"Last_ticket_ID": "222",
"Last_representative": "John Doe"
}
}

1
          

        

 

External Layer API – Setting Up Layers

 

General Description

 

Each layer in Voicenter IVR can direct the call to one of the following methods:

  1. Call – dial 1 or more extensions or external destinations. Once the first destination
    answers – it stops ringing the other destinations.
  2. Layer – transfer the caller to another IVR Layer.
  3. Queue – Transfer the caller to a Queue in the system.

IVR structure and Layers settings are configurable from Voicenter Cpanel, in the “Incoming
interface”.

Creating Layers to be used in the External IVR API is done in Voicenter Cpanel.


Once the IVR flow was determined and you finished creating the endpoint, please log in to Voicenter Cpanel.


Go the Settings -> DIDs -> click the IVR column of the desired DID to open the Incoming interface.

In this page – press the Layers menu (the puzzle icon), and click the layer to configure:

 

 

Under the "Layer settings" tab check "Allow mini external IVR" checkbox and configure
the following options:
MiniExternalUrl - Your system endpoint URL for this layer. This is where we are sending
you the request:

 

 

MiniExternalDTMFLen - If your IVR requires an input from the caller(DTMF), determine
what’s the maximum digits allowed. Once this limit has been reached the Request will be
sent.

Delay - When requesting a caller to dial digits – it usually takes a few seconds. Use this
field to determine how many seconds after the announcement the system will wait before
timing out(valid delay values are 1-9).

 

 

The IVR will finish waiting for one of the following:
1. The caller response until it reaches the max digits input ("MiniExternalDTMFLen" field).
2. The delay timeout (seconds configured in "Delay" field) has passed.

 

MiniExternalDefaultMethodData - Select a failover layer in case the endpoint configured in
MiniExternalUrl fails or times out.
If there is a problem to reach your endpoint, in order to prevent losing calls to
simply hung-up because of malfunction, we usually configure a default layer so calls will be directed to it.

 

[
]

1