Scheduler (/task_scheduler/)
- esnata (Unlicensed)
- UCom4B Doc Writer
- Ilya Titaev
- Dmitri Savolainen
The scheduler allows to set the callback task at a specific time in the future. The system allows to create several schedulers which can be called as a "task queue".
In each task queue is possible to enable or disable the task execution.
The scheduler queue is created by the following resource:
POST /client/{client_id}/task_scheduler/
Create the queue tasks
URL Parameters
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
client_id | string | mandatory |
Request Parameters (JSON)
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
comment | string | Update the comment |
status | string | Can change to 'on' (switch on) or change to 'off' (switch off) |
name | string | A task name |
concurrent_task_limit | integer | Change the limit on the number of simultaneous callback |
Response field
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
comment | string | The specified comment |
status | string | Either it is switched off 'off' or is switched on 'on'. By default is off |
name | string | The specified queue name when creating a task |
concurrent_task_limit | integer | The limit on the number of simultaneous callback |
create_date_utc | string | The date of queue creation (post) in utc in the format YYYY-MM-DD HH:MM:SS |
id | integer | Resource ID |
The queue parameters can be updated:
PUT /client/{client_id}/task_scheduler/{scheduler_id}
Update the task
URL Parameters
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
scheduler_id | string | Mandatory |
client_id | string | Mandatory |
Request Parameters (JSON)
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
comment | string | Update the comment |
status | string | Can change to 'on' (switch on) or change to 'off' (switch off) |
concurrent_task_limit | integer | Change the limit on the number of simultaneous callback |
Request field
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
comment | string | The specified comment |
status | string | Either it is switched off 'off' or is switched on 'on'. By default is off |
name | string | The specified queue name when creating a task |
concurrent_task_limit | integer | The limit on the number of simultaneous callback |
create_date_utc | string | The date of queue creation (post) in utc in the format YYYY-MM-DD HH:MM:SS |
id | integer | Resource ID |
Clarify the information on the queue:
GET /client/{client_id}/task_scheduler/{scheduler_id}
Get the information regarding the queue
URL Parameters
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
scheduler_id | string | Mandatory |
client_id | string | Mandatory |
Request field
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
comment | string | The specified comment |
status | string | Either it is switched off 'off' or is switched on 'on'. By default is off |
name | string | The specified queue name when creating a task |
concurrent_task_limit | integer | The limit on the number of simultaneous callback |
create_date_utc | string | The date of queue creation (post) in utc in the format YYYY-MM-DD HH:MM:SS |
id | integer | Resource ID |
sched_task_count | integer | Count of sheduled tasks |
task_count | integer | Count of all tasks |
last_call_date | string | The date of last call in the queue in utc in the format YYYY-MM-DD HH:MM:SS |
Add a task (or several tasks at once) to the queue:
Add tasks (one can be added)
POST /client/{client_id}/task_scheduler/{scheduler_id}/tasks/
URL Parameters
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
scheduler_id | string | Mandatory |
client_id | string | Mandatory |
Request Parameters (JSON)
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
tasks | array of tasks | Array of tasks - the required parameter Must contain one or more tasks |
The array of tasks JSON:
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
name | string | A task name |
a_number | string | The number that will be called first |
b_number | string | The number that will be called second |
callback_params | object | A set of optional callback parameters + extended_a_numbers. Except of a_number, b_number, variables extended_a_numbers list extends a_number {“caller_id_name”: "string", |
extension_id | integer | ID of the extension at the expense of which the call will be made |
try_count | integer | The maximum number of callback attempts. By default: 1 maximum 50 |
try_again_pause | integer | Pause before next dialing attempt (in seconds) |
try_count_caller | integer | Maximum number of attempts to call the first number (“a_number”, “extended_a_numbers”). If set to 0, then only the “try_count” counter is used. If after establishing a connection with the first number the second call could not be made, then “try_count_caller“ continues to decrease from the value it had after establishing a connection with the first number. Once it reaches 0, the task no longer tries to repeat itself, regardless of the “try_count” value |
try_again_pause_caller | integer | Used if “try_count_caller“>0: pause (in seconds) before next attempt to establish connection with “a_number”. Maximum value is 864000 |
url_before | string | URL where the event will go before the task starts |
url_before_again | string | URL where the event will go before trying to call again |
url_success | string | URL where the event will go if the task is successful (successful connection of A and B numbers) |
url_after | string | URL where the event will go by the result of the task |
start_time_utc | string | The time of the start task by utc in the format YYYY-MM-DD HH: MM: SS (the number of seconds can be specified, after this time the task will start) |
callback_params | object | A set of optional callback parameters + extended_a_numbers, except for a_number, b_number, variables extended_a_numbers - list of additional a_numbers {"caller_id_name": "string", |
variables | object | Variables for callback. Maximum size of each variable's value - 200 characters. |
attempts_src_ani_numbers | list | Ordered list of src_ani for callback by task attempts. Taken in the order of attempts. |
attempts_dst_ani_numbers | list | Ordered list of dst_ani for callback by task attempts. Taken in the order of attempts. |
interval_timezone | string | Time zone for the interval from the scheduler of a specific task. |
Respond field
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
status | string | One of 'scheduled', 'executed', 'delayed', 'finished'. 'finished' -completed task 'delayed' - delayed by 'executed' - he task has been started Default, not yet completed with status: 'scheduled' |
a_number | string | The number that will be called first |
b_number | string | The number that will be called second |
extension_id | integer | ID of the extension, due to which the call will be made |
scheduler_id | integer | Queue ID |
finish_result | string | Either it is success: 'success' or is failure: 'failed' |
cdr | string | uuid of the call, before the call, this field is empty, then, based on the call result (status = ‘executed’), uuid can be used in the resource /client/{client_id}/call_history/{call_uuid} |
try_count | integer |
|
try_again_pause | integer |
|
try_count_caller | integer |
|
try_again_pause_caller | integer |
|
start_time_utc | integer |
|
url_before | string |
|
url_before_again | string |
|
url_after | string |
|
url_success | string |
|
create_date_utc | string | Time of the task creation by utc in the format YYYY-MM-DD HH: MM: SS |
id | integer | Task ID |
name | string |
|
finish_comment | string | Here the reason of the failure can be clarified |
callback_params | object |
|
variables | object |
|
attempts_src_ani_numbers | list |
|
attempts_dst_ani_numbers | list |
|
interval_timezone | string |
|
Clarify the task parameters:
GET /client/{client_id}/task_scheduler/{scheduler_id}/task/{task_id}
URL Parameters
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
scheduler_id | string | Mandatory |
client_id | string | Mandatory |
task_id | integer | Mandatory |
Respond field
Name | Type | Description |
---|
Name | Type | Description |
---|
Name | Type | Description |
---|
Name | Type | Description |
---|---|---|
status | string | One of 'scheduled', 'executed', 'delayed', 'finished', 'delayed_asr', 'delayed_concurrent_task', 'delayed_interval'. 'finished' -completed task 'delayed' - delayed by 'delayed_asr' - delayed due to high number of failed calls (ASR) 'delayed_concurrent_task' - delayed due to the set limit on the task_scheduler 'delayed_interval' - delayed due to task_scheduler 'executed' - he task has been started Default, not yet completed with status: 'scheduled' |
a_number | string | The number that will be called first |
b_number | string | The number that will be called second |
extension_id | integer | Extension ID, due to which the call will be made |
scheduler_id | integer | Queue ID |
finish_result | string | Either it is success: 'success' or is failure: 'failed' |
cdr | string | uuid of the call, before the call, this field is empty, then, based on the call result (status = ‘executed’), uuid can be used in the resource /client/{client_id}/call_history/{call_uuid} |
try_count | integer | The maximum number of callback attempts |
try_again_pause | string | Pause before the next call attempt (in seconds) |
start_time_utc | integer | Start time of the start task by utc in the format YYYY-MM-DD HH: MM: SS |
url_before | string | URL where the event will go before the task starts |
url_before_again | string | URL where the event will go before trying to call again |
url_after | string | URL where the event will go by the result of the task |
url_success | string | URL where the event will go if the task is successful (successful connection of A and B numbers) |
create_date_utc | string | Time of the task creation by utc in the format YYYY-MM-DD HH: MM: SS |
id | integer | Task ID |
name | string | Task name |
finish_comment | string | Here the reason of the failure can be clarified |
callback_params | object | A set of optional callback parameters. Currently available: extended_a_numbers, caller_id_name and caller_id_number. extended_a_numbers - list of additional a_number numbers |
variables | object | Variables for callback. Maximum size of each variable's value - 200 characters. |
attempts_src_ani_numbers | list | Ordered list of src_ani for callback by task attempts. Taken in the order of attempts. |
attempts_dst_ani_numbers | list | Ordered list of dst_ani for callback by task attempts. Taken in the order of attempts. |
interval_timezone | string | Time zone for the interval from the scheduler of a specific task. |
By analogy with the creation of resources\controls, you can:
Clarify the list of all queues:
GET /client/{client_id}/task_scheduler/
Delete a specific queue:
DELETE /client/{client_id}/task_scheduler/{scheduler_id}
Clarify the list of tasks in the queue:
GET /client/{client_id}/task_scheduler/{scheduler_id}/task/
And delete a specific task in the queue:
DELETE /client/{client_id}/task_scheduler/{scheduler_id}/task/{task_id}