Scheduler (/task_scheduler/)

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
Format:

{“caller_id_name”: "string",
“caller_id_number“: "string",
“extended_a_numbers”: list}

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
Format:

{"caller_id_name": "string",
"caller_id_number": "string",
"extended_a_numbers": list}

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 try_again_pause

'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 try_again_pause

'delayed_asr' - delayed due to high number of failed calls (ASR)

'delayed_concurrent_task' - delayed due to the set limit on the task_scheduler concurrent_task_limit

'delayed_interval' - delayed due to task_scheduler interval

'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}