Планировщик (/task_scheduler/)

Планировщик позволяет поставить задачу callback на определенное время в будущем. Система позволяет создать несколько планировщиков, которые можно назвать “очередью задач”.

В каждой очереди задач можно включить или отключить исполнение задачи.

 

Создается очередь планировщика следующим ресурсом:

POST /client/{client_id}/task_scheduler/

Создать очередь задач

Параметры URL

Название

Тип

Описание

Название

Тип

Описание

client_id

string

Обязательный

Параметры запроса (JSON)

Название

Тип

Описание

Название

Тип

Описание

comment

string

Обновить комментарий

status

string

Можно сделать 'on' (включить) , а может сделать 'off' (выключить).

name

string

Имя задачи

concurrent_task_limit

integer

Изменить ограничение на количество одновременных callback

interval_id

integer

id интервала Временные интервалы (/interval/)

Поля ответа

Название

Тип

Описание

Название

Тип

Описание

comment

string

Заданный комментарий

status

string

Либо выключен 'off', либо включен 'on'. По умолчанию: off

name

string

Заданное имя очереди при создании задачи

concurrent_task_limit

integer

Ограничение на количество одновременных callback

create_date_utc

string

Дата создания очереди (post) в utc в форматеYYYY-MM-DD HH:MM:SS

id

integer

Resource id.

interval_id

integer

id интервала Временные интервалы (/interval/)

Параметры очереди можно обновить:

PUT /client/{client_id}/task_scheduler/{scheduler_id}

Обновить задачу

Параметры URL

Название

Тип

Описание

Название

Тип

Описание

scheduler_id

string

Обязательный

client_id

string

Обязательный

Параметры запроса (JSON)

Название

Тип

Описание

Название

Тип

Описание

comment

string

Обновить комментарий

status

string

Можно сделать 'on' (включить) , а может сделать 'off' (выключить).

concurrent_task_limit

integer

Изменить ограничение на количество одновременных callback

interval_id

integer

id интервала Временные интервалы (/interval/)

Поля ответа

Название

Тип

Описание

Название

Тип

Описание

comment

string

Заданный комментарий

status

string

Либо выключен 'off', либо включен 'on'. По умолчанию: off

name

string

Заданное имя очереди при создании задачи

concurrent_task_limit

integer

Ограничение на количество одновременных callback

create_date_utc

string

Дата создания очереди (post) в utc в форматеYYYY-MM-DD HH:MM:SS

id

integer

Resource id.

interval_id

integer

id интервала Временные интервалы (/interval/)

Уточнить информацию по очереди:

GET /client/{client_id}/task_scheduler/{scheduler_id}

Получить информацию о очереди

Параметры URL

Название

Тип

Описание

Название

Тип

Описание

scheduler_id

string

Обязательный

client_id

string

Обязательный

Поля ответа

Название

Тип

Описание

Название

Тип

Описание

comment

string

Заданный комментарий

status

string

Либо выключен 'off', либо включен 'on'. По умолчанию: off

name

string

Заданное имя очереди при создании задачи

concurrent_task_limit

integer

Ограничение на количество одновременных callback

create_date_utc

string

Дата создания (post) очереди в utc в форматеYYYY-MM-DD HH:MM:SS

id

integer

Resource id.

interval_id

integer

id интервала Временные интервалы (/interval/)

sched_task_count

integer

Количество запланированных задач

task_count

integer

Количество всех задач

last_call_date

string

Дата последнего звонка в очереди в utc в форматеYYYY-MM-DD HH:MM:SS

Добавить задачу (или сразу несколько задачь) в очередь:

Добавить задачи (может быть добавлена одна)

POST /client/{client_id}/task_scheduler/{scheduler_id}/tasks/

 

Параметры URL

Название

Тип

Описание

Название

Тип

Описание

scheduler_id

string

Обязательный

client_id

string

Обязательный

Параметры запроса (JSON)

Название

Тип

Описание

Название

Тип

Описание

tasks

array of tasks

Массив задач - обязательный параметр

Должен содержать одну задачу или более

Массив задач JSON:

Name

Type

Description

Name

Type

Description

name

string

Имя задачи

a_number

string

Номер, который будет вызван первым

b_number

string

Номер, который будет вызван вторым

callback_params

object

Набор необязательных параметров callback + extended_a_numbers, за исключением a_number, b_number, variables

extended_a_numbers - список дополнительных номеров a_number
Формат:

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

extension_id

integer

Id добавочного, за счет которого будет совершаться вызов

global_expires

integer

Период времени в секундах, когда задача акутуальна. C момента начала выполнения.

try_count

integer

Максимальное количество попыток callback (попыток соединить “a_number” и “b_number”) . По умолчанию: 1 максимум: 50

try_again_pause

integer

Пауза перед следующей попыткой соединения (в секундах). Максимальное значение - 864000

try_count_caller

integer

Максимальное количество попыток вызова первого номера (“a_number”, “extended_a_numbers”) . Если установлено в 0, то используется только счетчик “try_count”. Если после установления соединения с первым номером второй вызвать не удалось, то “try_count_caller“ продолжает уменьшаться с того значения, на котором был после установления соединения c первым номером. По достижении 0 задача больше не пытается повториться независимо от значения “try_count”

По умолчанию: 0 максимум: 50.

try_again_pause_caller

integer

Используется, если “try_count_caller“>0: пауза (в секундах) до следующей попытки установить соединение с “a_number”. Максимальное значение - 864000

url_before

string

URL, куда уйдет событие перед началом срабатывания задачи

url_before_again

string

URL, куда уйдет событие перед повторной попыткой обзвона

url_success

string

URL, куда уйдет событие в случае успеха задачи (успешное соединение А и Б номеров)

url_after

string

URL, куда уйдет событие по результату задачи

start_time_utc

string

Время начала старта задачи по utc в форматеYYYY-MM-DD HH:MM:SS

(может быть указано кол-во секунд, через это время будет старт задачи после ее создания)

variables

object

Переменные для callback. Максимальный размер значения каждой переменной - 200 символов

attempts_src_ani_numbers

list

Упорядоченный список src_ani для callback по попыткам задачи. Берется по порядку попыток.

attempts_dst_ani_numbers

list

Упорядоченный список dst_ani для callback по попыткам задачи. Берется по порядку попыток.

interval_timezone

string

Тайм зона для интервала из планировщика конкретного таска.

 

Поля ответа

Название

Тип

Описание

Название

Тип

Описание

status

string

Одно из 'scheduled', 'executed', 'delayed', 'finished'

'finished' - выполненная задача

'delayed' - отложена после неуспешной попытки соединения на try_again_pause

'executed' - задача была запущена

По умолчанию, еще не выполненные со статусом: 'scheduled'

a_number

string

 

b_number

string

 

callback_params

object

 

extension_id

integer

 

global_expires

integer

 

scheduler_id

integer

id очереди

finish_result

string

Либо успех: 'success', либо неуспех: 'failed'.

cdr

string

uuid звонка, до обвзона это поле пустое, далее, по результату обзвона (status= ‘executed’ ) uuid можно использовать в ресурсе /client/{client_id}/call_history/{call_uuid}

try_count

integer

 

try_again_pause

integer

 

start_time_utc

string

 

try_count_caller

integer

 

try_again_pause_caller

integer

 

url_before

string

 

url_before_again

string

 

url_after

string

 

url_success

string

 

create_date_utc

string

Время создания задачи по utc в форматеYYYY-MM-DD HH:MM:SS

id

integer

id задачи

name

string

 

finish_comment

string

Тут может быть уточнена причина неуспеха

variables

object

 

attempts_src_ani_numbers

list

 

attempts_dst_ani_numbers

list

 

interval_timezone

string

 

Уточнить параметры задачи:

GET /client/{client_id}/task_scheduler/{scheduler_id}/task/{task_id}

 

Параметры URL

Название

Тип

Описание

Название

Тип

Описание

scheduler_id

string

Обязательный

client_id

string

Обязательный

task_id

integer

Обязательный

 

Поля ответа

Название

Тип

Описание

Название

Тип

Описание

status

string

Одно из 'scheduled', 'executed', 'delayed', 'finished', 'delayed_asr', 'delayed_concurrent_task', 'delayed_interval'.

'finished' - выполненная задача

'delayed' - отложена по try_again_pause

'delayed_asr' - отложена по причине большого количества неуспешных вызовов (ASR)

'delayed_concurrent_task' - отложена по причине установленного лимита на очереди concurrent_task_limit

'delayed_interval' - отложена по причине установленного на очереди interval

'executed' - задача была запущена

По умолчанию, еще не выполненные со статусом: 'scheduled'

a_number

string

Номер, который будет вызван первым

b_number

string

Номер, который будет вызван вторым

callback_params

object

Набор необязательных параметров callback. На данный момент доступны: extended_a_numbers, caller_id_name и caller_id_number.

extended_a_numbers - список дополнительных номеров a_number

extension_id

integer

Id добавочного, за счет которого будет совершаться вызов

global_expires

integer

Период времени в секундах, когда задача акутуальна. C момента начала выполнения.

scheduler_id

integer

id очереди

finish_result

string

Либо успех: 'success', либо неуспех: 'failed'.

cdr

string

uuid звонка, до обвзона это поле пустое, далее, по результату обзвона (status= ‘executed’ ) uuid можно использовать в ресурсе /client/{client_id}/call_history/{call_uuid}

try_count

integer

Максимальное количество попыток callback

try_again_pause

string

Пауза перед следующей попыткой обзвона (в секундах)

start_time_utc

integer

Время начала старта задачи по utc в форматеYYYY-MM-DD HH:MM:SS

url_before

string

URL, куда уйдет событие перед началом срабатывания задачи

url_before_again

string

URL, куда уйдет событие перед повторной попыткой обзвона

url_after

string

URL, куда уйдет событие по результату задачи.
(Не придет, если указан url_success и задача успешная)

url_success

string

URL, куда уйдет событие в случае успеха задачи (успешное соединение А и Б номеров)

create_date_utc

string

Время создания задачи по utc в форматеYYYY-MM-DD HH:MM:SS

id

integer

id задачи

name

string

имя задачи

finish_comment

string

Тут может быть уточнена причина неуспеха

variables

object

Переменные для callback

attempts_src_ani_numbers

list

Упорядоченный список src_ani для callback по попыткам задачи. Берется по порядку попыток.

attempts_dst_ani_numbers

list

Упорядоченный список dst_ani для callback по попыткам задачи. Берется по порядку попыток.

interval_timezone

string

Тайм зона для интервала из планировщика конкретного таска.

По аналогии с ресурсами создания\управлениями можно:

Уточнить список всех очередей:

GET /client/{client_id}/task_scheduler/

Удалить конкретную очередь:

DELETE /client/{client_id}/task_scheduler/{scheduler_id}

Уточнить список задач в очереди:

GET /client/{client_id}/task_scheduler/{scheduler_id}/task/

И удалить конкретную задачу в очереди:

DELETE /client/{client_id}/task_scheduler/{scheduler_id}/task/{task_id}