You can test API methods on the interactive API browser page and without writing code
Some of the resources described on the page may not be available by default due to the type of application (see Creating and authorizing applications).
The context is a pre-formed set of rules that can be referenced in the settings. Each context contains the following options:
start - describes the actions when entering the context;
timeout - describes the actions when a timeout occurs (the client did not make any choice during the specified period of time);
invalid – actions that occur when the client selects an option that is not configured.
In addition to the required context options, additional ones can be added (for example, what happens when you type the sequence "100"). All options perform the hangup (hang up) action by default, and this action must be overridden to set the required logic.
The so-called "entry_context" is assigned to the IVR - it gets a call after coming to the voice menu. It can also be called the main context.
The type of voice greeting can be 'background' or 'foreground'. In the case of "background", the system is ready to accept the tone set at any time, and "foreground" obliges the user to listen to the recording until the end and only then make a choice (if the possibility of such a choice is configured).
Description of data structures
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Expand | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||
|
Expand | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Expand | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|
Examples
For a client with a unique ID 12, you need to create a voice menu (IVR) with the number "071", when entering which the following rules apply:
Play the foreground music file "advertising.wav" 1 time;
Play the background music file "hello.wav" and, if the client does not select it, automatically transfer it to the internal number 050;
When dialing "1", the call is transferred to the mobile phone +7(987)6543210;
When you dial "2", the call is transferred to the internal number 002;
Allow direct dialing of three-digit internal numbers.
1. Using the Sound Files resource (/sound/), you need to download the hello.wav and advertising.wav files:
…
…
…
System response:
Code Block | ||
---|---|---|
| ||
{ "id": 51, "client_id": 12, "title": "my welcome file", "dealer_id": null, "filename": "hello.wav" } |
Code Block | ||
---|---|---|
| ||
{ "id": 52, "client_id": 12, "title": "my ad file", "dealer_id": null, "filename": "advertising.wav" } |
IDs of new files: hello.wav "id": 51; advertising.wav "id": 52
2. Using the resource Internal number (/extension/), create an internal number of the type " IVR":
…
…
…
System response:
Code Block | ||
---|---|---|
| ||
{ "status": "active", "domain": "sip.ringme.ru", "create_date": "2020-03-20 17:11:10", "name": "000*071", "dial_rule_limit": null, "extension_group_id": null, "label": "test IVR", "caller_id_name": null, "client_id": 12, "extra_params": null, "message_did": null, "dial_rule_id": null, "ani_rfc3325": false, "type": "ivr", "id": 204, "did_as_transfer_caller_id": null } |
ID of the new internal number "id": 204
3. Create a context that will be the main one (entry_context):
…
…
…
System response:
Code Block | ||
---|---|---|
| ||
{ "name": "Main context", "inter_digit_timeout": 2000, "timeout": 5000, "extra_params": null, "allow_any_dial": true, "id": 1, "digit_len": 3, "description": null } |
Context ID "id": 1
4. Now you can bind this context as the main one to our IVR, at the same time we specify "sleep-time", which allows you to set a pause from the arrival of the call in the IVR before the start of any actions of the "entry_context" context":
…
…
…
System response:
Code Block | ||
---|---|---|
| ||
{ "lifetime_exp_action": "hangup", "entry_context": 1, "lifetime_exp_transfer_dst": null, "vm_enabled": false, "vm_greeting": null, "lifetime": 1800, "vm_attach_file": true, "sleep_time": 5000, "vm_mailto": null } |
5. As noted earlier, each context already has a “start” option. Let's configure it to play the foreground music file "advertising.wav":
…
…
…
Expand | |||||
---|---|---|---|---|---|
| |||||
|
6. Next, play the hello.wav file in the background by analogy:
…
…
…
Expand | |||||
---|---|---|---|---|---|
| |||||
|
7. Now, in the "Main Context" context, we will add the ability to process the selection " 1":
…
…
…
Expand | |||||
---|---|---|---|---|---|
| |||||
|
8. And we will indicate what action should be performed when selecting "1" - transfer to mobile +7(987)6543210:
…
…
…
Expand | |||||
---|---|---|---|---|---|
| |||||
|
9. By analogy, we will add a call to the internal number "002" by dialing "2":
…
…
…
Expand | |||||
---|---|---|---|---|---|
| |||||
|
…
…
…
Expand | |||||
---|---|---|---|---|---|
| |||||
|
10. If there is no choice, the call should be automatically transferred to the internal number "050". As already noted, there is a "timeout" option in the context, with which you can set this action:
…
…
…
Expand | |||||
---|---|---|---|---|---|
| |||||
|
11. As a result, you can view all the available context options:
…
…
…
System response:
Code Block | ||
---|---|---|
| ||
[ { "digits": "start" }, { "digits": "timeout" }, { "digits": "invalid" }, { "digits": "2" }, { "digits": "1" } ] |
Resources of the section "Voice menu (ivr)"
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
PUT /extension/{extension_id}/ivr/ Update the voice menu configuration URL Parameters
JSON parameters
Response fields
|
Expand | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
GET /extension/{extension_id}/ivr/ Get the voice menu configuration URL Parameters
Response fields
|
Expand | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||
POST /extension/{extension_id}/ivr/context/ Add voice menu context URL Parameters
JSON parameters
Response fields
|
Expand | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
GET /extension/{extension_id}/ivr/context/ Get a list of voice menu contexts URL Parameters
Response fields
|
Expand | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||
PUT /extension/{extension_id}/ivr/context/{context_id} Update the voice menu context URL Parameters
JSON parameters
Response fields
|
Expand | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||
GET /extension/{extension_id}/ivr/context/{context_id} Get the voice menu context URL Parameters
Response fields
|
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
DELETE /extension/{extension_id}/ivr/context/{context_id} Delete the voice menu context URL Parameters
|
Expand | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
POST /extension/{extension_id}/ivr/context/{context_id}/options/ Add a voice menu context option URL Parameters
JSON parameters
Response fields
|
Expand | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
GET /extension/{extension_id}/ivr/context/{context_id}/options/ Get a list of voice menu context options URL Parameters
Response fields
|
Expand | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
DELETE /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits} Remove the voice menu context option URL Parameters
|
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
POST /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}/rules/ Add a voice menu context rule URL Parameters
JSON parameters
Response fields
|
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}/rules/ Get a list of voice menu context rules URL Parameters
Response fields
|
Expand | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
PUT /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}/rules/order/ Update the order of the voice menu context options rules URL Parameters
JSON parameters
Response fields
|
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
GET /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}/rules/order/ Get the order of the voice menu context options rules URL Parameters
Response fields
|
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PUT /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}/rules/{rule_id} Update a voice menu context rule URL Parameters
JSON parameters
Response fields
|
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}/rules/{rule_id} Get a voice menu context rule URL Parameters
Response fields
|
Expand | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
DELETE /extension/{extension_id}/ivr/context/{context_id}/options/{option_digits}/rules/{rule_id} Delete a voice menu context rule URL Parameters
|