Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

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

Table of Contents

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

Интервал (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

Code Block
{
    '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:

Tabs
[{"content":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"В разделе "},{"type":"text","text":"authentication","marks":[{"type":"strong"}]},{"type":"text","text":" в поля "},{"type":"text","text":"client_id","marks":[{"type":"strong"}]},{"type":"text","text":" и "},{"type":"text","text":"client_secret","marks":[{"type":"strong"}]},{"type":"text","text":"  требуется ввести полученные при регистрации приложения значения "},{"type":"text","text":"Application_ID","marks":[{"type":"strong"}]},{"type":"text","text":" и "},{"type":"text","text":"Application_Secret","marks":[{"type":"strong"}]},{"type":"text","text":", затем нажать на кнопку \""},{"type":"text","text":"Try it out!","marks":[{"type":"strong"}]},{"type":"text","text":"\". Если данные приложения верны, в ответ вернётся токен доступа ("},{"type":"text","text":"access_token","marks":[{"type":"strong"}]},{"type":"text","text":"). Полученный токен доступа следует ввести в поле \""},{"type":"text","text":"Access Token Field","marks":[{"type":"strong"}]},{"type":"text","text":"\" вверху страницы и сохранить его нажатием кнопки \""},{"type":"text","text":"Set Token","marks":[{"type":"strong"}]},{"type":"text","text":"\"."}]},{"type":"table","attrs":{"isNumberColumnEnabled":false,"layout":"default"},"content":[{"type":"tableRow","content":[{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"метод","marks":[{"type":"strong"}]}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"ресурс","marks":[{"type":"strong"}]}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"данные","marks":[{"type":"strong"}]}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"POST"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"/client/12/interval/"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"{"},{"type":"hardBreak"},{"type":"text","text":"\"timezone\": \"Europe/Moscow\","},{"type":"hardBreak"},{"type":"text","text":"\"conditions\": ["},{"type":"hardBreak"},{"type":"text","text":"{"},{"type":"hardBreak"},{"type":"text","text":"\"start_dow\": 2,"},{"type":"hardBreak"},{"type":"text","text":"\"end_dow\": 6,"},{"type":"hardBreak"},{"type":"text","text":"\"start_time\": \"09:00:00\","},{"type":"hardBreak"},{"type":"text","text":"\"end_time\": \"18:00:00\""},{"type":"hardBreak"},{"type":"text","text":"},"},{"type":"hardBreak"},{"type":"text","text":"{"},{"type":"hardBreak"},{"type":"text","text":"\"start_dow\": 7,"},{"type":"hardBreak"},{"type":"text","text":"\"end_dow\": 7,"},{"type":"hardBreak"},{"type":"text","text":"\"start_time\": \"09:00:00\","},{"type":"hardBreak"},{"type":"text","text":"\"end_time\": \"14:00:00\""},{"type":"hardBreak"},{"type":"text","text":"}"},{"type":"hardBreak"},{"type":"text","text":"],"},{"type":"hardBreak"},{"type":"text","text":"\"name\": \"рабочее время\""},{"type":"hardBreak"},{"type":"text","text":"}"}]}]}]}]},{"type":"paragraph","content":[]}]},"id":"fa625bda-0804-48bb-bf96-3fae77439c58","label":"Интерактивный обозреватель API    ","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"Для отправки запросов с помощью программы cURL установим значения переменных "},{"type":"text","text":"url ","marks":[{"type":"strong"}]},{"type":"text","text":"и "},{"type":"text","text":"access_token","marks":[{"type":"strong"}]},{"type":"text","text":":"}]},{"type":"paragraph","content":[{"type":"text","text":"export url=\"https://<hostname>/api/ver1.0\"","marks":[{"type":"code"}]},{"type":"text","text":" "},{"type":"hardBreak"},{"type":"text","text":"(где hostname — hostname API-сервера провайдера IP-телефонии),"}]},{"type":"paragraph","content":[{"type":"text","text":"export access_token=\"8SNsrS0jV35vfmKqKeKtRrHfpbg4UX\"","marks":[{"type":"code"}]},{"type":"text","text":" "},{"type":"hardBreak"},{"type":"text","text":"(полученный токен доступа)."}]},{"type":"paragraph","content":[{"type":"text","text":"Отправим запрос:"}]},{"type":"codeBlock","attrs":{"language":"shell"},"content":[{"type":"text","text":"curl \\\n-H \"Authorization: Bearer ${access_token}\" \\\n-H \"Content-Type: application/json\" \\\n-d '{\n  \"timezone\": \"Europe/Moscow\",\n  \"conditions\": [\n  {\n    \"start_dow\": 2,\n    \"end_dow\": 6,\n    \"start_time\": \"09:00:00\",\n    \"end_time\": \"18:00:00\"\n  },\n  {\n    \"start_dow\": 7,\n    \"end_dow\": 7,\n    \"start_time\": \"09:00:00\",\n    \"end_time\": \"14:00:00\"\n  }\n  ],\n  \"name\": \"рабочее время\"\n}' \\\n-X POST ${url}/client/@me/interval/"}]}]},"id":"be5e60f0-c474-40a0-b1e5-6c174ce11030","label":"Программа cURL    ","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"Для отправки запросов на языке Python установим значения переменных URL и ACCESS_TOKEN:"}]},{"type":"paragraph","content":[{"type":"text","text":"URL = \"https://<hostname>/api/ver1.0\"","marks":[{"type":"code"}]},{"type":"hardBreak"},{"type":"text","text":"(где hostname — hostname API-сервера провайдера IP-телефонии),"}]},{"type":"paragraph","content":[{"type":"text","text":"ACCESS_TOKEN = \"8SNsrS0jV35vfmKqKeKtRrHfpbg4UX\"","marks":[{"type":"code"}]},{"type":"hardBreak"},{"type":"text","text":"(полученный токен доступа)."}]},{"type":"codeBlock","attrs":{"language":"python"},"content":[{"type":"text","text":"#!/usr/bin/python\n\nimport requests\n\nurl = f'{URL}/client/@me/interval/'\nheaders = {\n    'Authorization': f'Bearer {ACCESS_TOKEN}',\r\n    'Content-Type': 'application/json'\r\n}\r\ndata = '''{\r\n    \"timezone\": \"Europe/Moscow\",\n    \"conditions\": [\n    {\n        \"start_dow\": 2,\n        \"end_dow\": 6,\n        \"start_time\": \"09:00:00\",\n        \"end_time\": \"18:00:00\"\n    },\n    {\n        \"start_dow\": 7,\n        \"end_dow\": 7,\n        \"start_time\": \"09:00:00\",\n        \"end_time\": \"14:00:00\"\n    }\n    ],\n    \"name\": \"рабочее время\"\n}'''\r\nresponse = requests.post(url, headers=headers, data=data)\nprint(response.text)"}]}]},"id":"746442e6-e162-41f2-a971-948c679b5fe6","label":"На языке Python3    ","type":"tab"}]
Expand
titleОтвет системы:
Code Block
languagejson
{
  "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": "рабочее время"
}

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

Expand
titlePOST /client/{client_id}/interval/

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

нет

Expand
titleGET /client/{client_id}/interval/

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

нет

Expand
titlePUT /client/{client_id}/interval/{interval_id}

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

нет

Expand
titleGET /client/{client_id}/interval/{interval_id}

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

нет

Expand
titleDELETE /client/{client_id}/interval/{interval_id}

DELETE /client/{client_id}/interval/{interval_id}

Удалить временной интервал

Параметры URL

Имя

Тип

client_id

string

interval_id

integer

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

Expand
titleGET /extension/{extension_id}/interval/

GET /extension/{extension_id}/interval/

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

Параметры URL

Имя

Тип

extension_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

нет