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

Протестировать методы API можно на странице интерактивного обозревателя API и без написания кода
Некоторые ресурсы, описанные на странице, по умолчанию могут быть не доступны из-за типа приложения (см. Создание и авторизация приложений)

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

Описание структур данных

Интервал (IntervalItem)

Имя

Тип

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

Значение по умолчанию

Описание

Имя

Тип

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

Значение по умолчанию

Описание

conditions

Array[condition]

да

 

Список условий временных диапазонов интервала

name

string

да

 

Имя интервала

timezone

string

да

 

Временная зона интервала

Условие (Condition) 

Параметры должны быть заданы парно (если задан "start_time", то должен быть и "end_time"), кроме параметра "month", который может быть задан сам по себе.

Если заданы "start_datetime" и "end_datetime", то другие параметры будут игнорироваться. Все параметры (кроме "start_datetime" и "end_datetime") дополняют друг друга. Если определены, например, "month=7, start_dow=2, end_dow=3", то это подразумевает все понедельники и вторники июля.

Параметры с префиксом "start" должны быть меньше параметров с префиксом "end". Исключением является пара "start_dow/end_dow", где записью "start_dow=3, end_dow=1" можно указать все дни недели, кроме понедельника.

При первом совпадении по условию отрабатывает интервал, при отсуствии совпадений в условиях интервала - интервал не работает.

Имя

Тип

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

Значение по умолчанию

Описание

Имя

Тип

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

Значение по умолчанию

Описание

end_dow

long

нет

0

Конечный день недели 1-7 (1-воскресенье, 7-суббота)

Используется для интервала типа interval.

end_mday

long

нет

0

Конечный день месяца (1-31)

Используется для интервала типа interval.

end_time

string

нет

 

Время окончания в формате "hh:mm:ss"

Используется для интервала типа interval.

month

long

нет

0

Месяц действия в диапазоне 1-12

Используется для интервала типа interval.

sched_active_days

long

нет

0

Количество рабочих дней (минимум 1), начиная с даты начала (sched_start_date)

Используется для интервала типа scheduled_days

sched_skip_days

long

нет

0

Количество нерабочих дней (минимум 1), которые нужно пропустить до следующих рабочих (sched_active_days).
Например, при "sched_active_days=1", "sched_skip_days=2" рабочим днем будет 1-й, выходными - 2-й и 3-й, рабочим 4-й и нерабочими - 5-й и 6-й и т.д.

Используется для интервала типа scheduled_days

sched_start_date

string

нет

 

Дата начала работы в формате "YYYY-MM-DD", например: "2015-02-20"

Используется для интервала типа scheduled_days

start_datetime

string

нет

 

Дата начала в формате "YYYY-MM-DD hh:mm:ss", например: "2015-02-20 15:33:01"

Используется для интервала типа datetime_range.

end_datetime

string

нет

 

Дата окончания в формате "YYYY-MM-DD hh:mm:ss", например: "2015-02-20 16:34:00"

Используется для интервала типа datetime_range.

start_dow

long

нет

0

Начальный день недели 1-7 (1-воскресенье, 7-суббота)

Используется для интервала типа interval.

start_mday

long

нет

0

Начальный день месяца (1-31)

Используется для интервала типа interval.

start_time

string

нет

 

Время начала в формате "hh:mm:ss"

Используется для интервала типа interval.

type

string

нет

 

параметр респонса. может быть один из:

datetime_range - приоритетный тип интервала, будет возвращен если указаны условия start_datetime и end_datetime. В этом интервале указывается диапазон дней, когда интервал сработает.

scheduled_days- будет возвращен если указаны sched_* условия. С помощью этого интервала можно сделать схему обработки звонка, например, смена 3 рабочих дня через 4.

interval - будет вовзращен в случае других условий

 

usage

object

нет

null

{ 'task_scheduler': {}, # {task_sched_id: null} 'context_rule': {}, # {ext_id: [{context: 1, option: ‘start’, rule: 2}], } 'incom_rule': {} # {ext_id: [{rule: 1}], } }

Содержит в себе информацию об использовании интервала в Планировщиках задач, правилах входящего вызова и правилах контекста IVR
Актуально только для интервалов уровня клиент и добавочный

Пример

Для клиента с идентификатором 12 создать диапазон, отвечающий за понедельник-пятницу с 09:00 до 18:00 и субботу с 09:00 до 14:00:

{ "timezone": "Europe/Moscow", "conditions": [ { "start_datetime": null, "start_dow": 2, "start_time": "09:00:00", "month": null, "end_mday": null, "end_dow": 6, "end_time": "18:00:00", "start_mday": null, "end_datetime": null }, { "start_datetime": null, "start_dow": 7, "start_time": "09:00:00", "month": null, "end_mday": null, "end_dow": 7, "end_time": "14:00:00", "start_mday": null, "end_datetime": null } ], "id": 85, "client_id": 12, "name": "рабочее время" }

Ресурсы раздела "Клиент"

POST /client/{client_id}/interval/

Добавить временной интервал

Параметры URL

Имя

Тип

Имя

Тип

client_id

string

Параметры JSON

Имя

Тип

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

Имя

Тип

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

conditions

Array[condition]

да

name

string

да

timezone

string

да

Ресурс condition

Имя

Тип

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

Имя

Тип

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

end_datetime

string

нет

end_dow

long

нет

end_mday

long

нет

end_time

string

нет

month

long

нет

sched_active_days

long

нет

sched_skip_days

long

нет

sched_start_date

string

нет

start_datetime

string

нет

start_dow

long

нет

start_mday

long

нет

start_time

string

нет

Поля ответа

Имя

Тип

Имя

Тип

client_id

long

conditions

Array[interval_condition]

dealer_id

long

extension_id

long

id

long

name

string

timezone

string

Ресурс interval_condition

Имя

Тип

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

Имя

Тип

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

end_datetime

string

нет

end_dow

long

нет

end_mday

long

нет

end_time

string

нет

month

long

нет

sched_active_days

long

нет

sched_skip_days

long

нет

sched_start_date

string

нет

start_datetime

string

нет

start_dow

long

нет

start_mday

long

нет

start_time

string

нет

type 

string

нет

GET /client/{client_id}/interval/

Получить список временных интервалов

Параметры URL

Имя

Тип

Имя

Тип

client_id

string

Поля ответа

Имя

Тип

Имя

Тип

client_id

long

conditions

Array[interval_condition]

dealer_id

long

extension_id

long

id

long

name

string

timezone

string

Ресурс interval_condition

Имя

Тип

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

Имя

Тип

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

end_datetime

string

нет

end_dow

long

нет

end_mday

long

нет

end_time

string

нет

month

long

нет

sched_active_days

long

нет

sched_skip_days

long

нет

sched_start_date

string

нет

start_datetime

string

нет

start_dow

long

нет

start_mday

long

нет

start_time

string

нет

type 

string

нет

usage

object

нет

PUT /client/{client_id}/interval/{interval_id}

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

Параметры URL

Имя

Тип

Имя

Тип

client_id

string

interval_id

integer

Параметры JSON

Имя

Тип

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

Имя

Тип

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

conditions

Array[condition]

да

name

string

да

timezone

string

да

Ресурс condition

Имя

Тип

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

Имя

Тип

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

end_datetime

string

нет

end_dow

long

нет

end_mday

long

нет

end_time

string

нет

month

long

нет

sched_active_days

long

нет

sched_skip_days

long

нет

sched_start_date

string

нет

start_datetime

string

нет

start_dow

long

нет

start_mday

long

нет

start_time

string

нет

Поля ответа

Имя

Тип

Имя

Тип

client_id

long

conditions

Array[interval_condition]

dealer_id

long

extension_id

long

id

long

name

string

timezone

string

Ресурс interval_condition

Имя

Тип

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

Имя

Тип

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

end_datetime

string

нет

end_dow

long

нет

end_mday

long

нет

end_time

string

нет

month

long

нет

sched_active_days

long

нет

sched_skip_days

long

нет

sched_start_date

string

нет

start_datetime

string

нет

start_dow

long

нет

start_mday

long

нет

start_time

string

нет

type 

string

нет

GET /client/{client_id}/interval/{interval_id}

Получить временной интервал

Параметры URL

Имя

Тип

Имя

Тип

client_id

string

interval_id

integer

Поля ответа

Имя

Тип

Имя

Тип

client_id

long

conditions

Array[interval_condition]

dealer_id

long

extension_id

long

id

long

name

string

timezone

string

Ресурс interval_condition

Имя

Тип

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

Имя

Тип

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

end_datetime

string

нет

end_dow

long

нет

end_mday

long

нет

end_time

string

нет

month

long

нет

sched_active_days

long

нет

sched_skip_days

long

нет

sched_start_date

string

нет

start_datetime

string

нет

start_dow

long

нет

start_mday

long

нет

start_time

string

нет

type 

string

нет

usage

object

нет

Ресурсы раздела "Внутренний номер"