Versions Compared

Key

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

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

Данный ресурс предназначен для разграничения возможностей управления текущими вызовами с телефонного терминала: перехвата (pickup), подмены добавочных (phone_replace), подсказки (whisper), прослушки (eavesdrop).  Отсутствие правил подразумевает возможность перехвата вызова в пределах всей АТС и запрет на любые другие действия. 

Table of Contents

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

Expand
titleCallControlPermissions

Имя

Тип

Описание

allow_all

boolean

Позволяет разрешить глобально любые действия при значении true (все могут всех перехватывать, подменять и прослушивать)

pickup_all

boolean

Возможность перехвата вызова в пределах всей АТС (при значении false перехват возможен только в пределах pickup_share_groups). Значение по умолчанию – true

groups

Object

Содержит простое перечисление групп с именами внутренних номеров, внутренние номера могут быть в разных группах. Может быть не более 100 групп, в каждой из которых не более 200 внутренних номеров (проверка на их существование не производится)

pickup_share_groups

array

Группы, внутри которых возможен перехват без указания внутреннего номера, а при "pickup_all": false перехват возможен лишь в пределах групп. Если внутренний номер принадлежит нескольким группам перехвата и от его имени происходит перехват, то группы объединяются в одну

phone_replace_groups

array

Группы, внутри которых есть возможность подмены добавочных с помощью команды и секретного кода.

Anchor
phone_replace_groups
phone_replace_groups

eavesdrop_{ext}

array

Где суффикс "ext" – имя внутреннего номера: группы, которые может прослушивать внутренний номер ext. Если такой группы не найдено, то действие запрещено

whisper_{ext}

array

Где суффикс "ext" – имя внутреннего номера: группы, в которых внутренний номер ext может подсказывать. Если такой группы не найдено, то действие запрещено

Пример

Создать перехваты:

  • "100": возможен перехват без указания номера внутренних номеров "102", "101" и с указанием номера всех остальных ("pickup_all": true);

  • "101": возможен перехват без указания номера внутренних номеров "102", "100" и с указанием номера всех остальных ("pickup_all": true);

  • "102": возможен перехват без указания номера внутренних номеров "101", "100" и с указанием номера всех остальных ("pickup_all": true).

Создать группу подмены добавочных: "100" может подменять себя на "101" и наоборот

Прослушивание: "101" может прослушивать группы  "sales", "hr" (внутренние номера "102", "100" ). Никакие другие внутренние номера АТС не обладают правом прослушивания.

Подсказка: "100" может подключаться к диалогу в режиме подсказки к внутренним номерам группы "support" ("101").

Tabs
data[{"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":"метод"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"ресурс"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"данные"}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"PUT"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"/client/@me/call_control_group/"}]},{"type":"paragraph","content":[]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"{"},{"type":"hardBreak"},{"type":"text","text":"\"allow_all\": false,"},{"type":"hardBreak"},{"type":"text","text":"\"pickup_all\": true,"},{"type":"hardBreak"},{"type":"text","text":"\"groups\":"},{"type":"hardBreak"},{"type":"text","text":" {"},{"type":"hardBreak"},{"type":"text","text":"    \"support\": [\"100\", \"101\"],"},{"type":"hardBreak"},{"type":"text","text":"    \"sales\": [\"102\", \"101\"],"},{"type":"hardBreak"},{"type":"text","text":"    \"hr\": [\"100\", \"101\", \"103\"]"},{"type":"hardBreak"},{"type":"text","text":" },"},{"type":"hardBreak"},{"type":"text","text":"\"pickup_share_groups\": [\"support\", \"sales\"],"}]},{"type":"paragraph","content":[{"type":"text","text":"\"phone_replace_groups\": [\"support\"],"},{"type":"hardBreak"},{"type":"text","text":"\"eavesdrop_100\": [\"support\"],"},{"type":"hardBreak"},{"type":"text","text":"\"whisper_101\": [\"sales\", \"hr\"]"},{"type":"hardBreak"},{"type":"text","text":"}"}]}]}]}]},{"type":"paragraph","content":[]}]},"id":"1ab97921-e7ca-452f-965a-4a763b57f8d3","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 \\\r\n-H \"Authorization: Bearer ${access_token}\" \\\r\n-H \"Content-Type: application/json\" \\\r\n-d '{\r\n \"allow_all\": false,\n \"pickup_all\": true,\n \"groups\": {\n   \"support\": [\"100\", \"101\"],\n   \"sales\": [\"102\", \"101\"],\n   \"hr\": [\"100\", \"101\", \"103\"]\n },\n \"pickup_share_groups\": [\n \"support\",\n \"sales\"\n ],\n \"eavesdrop_100\": [\n \"support\"\n ],\n \"whisper_101\": [\n \"sales\",\n \"hr\"\n ]\n}' \\\r\n-X PUT ${url}/client/@me/call_control_group/"}]}]},"id":"59f02ace-6798-4ee6-8ed3-7c878969f35b","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\r\n\r\nimport requests\r\n\r\nurl = f'{URL}/client/@me/call_control_group/'\r\nheaders = {\r\n 'Authorization': f'Bearer {ACCESS_TOKEN}',\r\n 'Content-Type': 'application/json'\r\n}\r\ndata = '''{\r\n \"allow_all\": false,\n \"pickup_all\": true,\n \"groups\": {\n    \"support\": [\"100\", \"101\"],\n    \"sales\": [\"102\", \"101\"],\n    \"hr\": [\"100\", \"101\", \"103\"]\n },\n \"pickup_share_groups\": [\n \"support\",\n \"sales\"\n ],\n \"eavesdrop_100\": [\n \"support\"\n ],\n \"whisper_101\": [\n \"sales\",\n \"hr\"\n ]\n}'''\r\nresponse = requests.put(url, headers=headers, data=data)\r\nprint(response.text)"}]}]},"id":"fe3b5416-5aa2-4f51-b4b2-2d3f3e4d8438","label":"На языке Python3 ","type":"tab"}]
[{"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":"метод"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"ресурс"}]}]},{"type":"tableHeader","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"данные"}]}]}]},{"type":"tableRow","content":[{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"PUT"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"/client/@me/call_control_group/"}]},{"type":"paragraph","content":[]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"{"},{"type":"hardBreak"},{"type":"text","text":"\"allow_all\": false,"},{"type":"hardBreak"},{"type":"text","text":"\"pickup_all\": true,"},{"type":"hardBreak"},{"type":"text","text":"\"groups\":"},{"type":"hardBreak"},{"type":"text","text":"  {"},{"type":"hardBreak"},{"type":"text","text":"    \"support\": [\"100\", \"101\"],"},{"type":"hardBreak"},{"type":"text","text":"    \"sales\": [\"102\", \"101\"],"},{"type":"hardBreak"},{"type":"text","text":"    \"hr\": [\"100\", \"101\", \"103\"]"},{"type":"hardBreak"},{"type":"text","text":"  },"},{"type":"hardBreak"},{"type":"text","text":"\"pickup_share_groups\": [\"support\", \"sales\"],"}]},{"type":"paragraph","content":[{"type":"text","text":"\"phone_replace_groups\": [\"support\"],"},{"type":"hardBreak"},{"type":"text","text":"\"eavesdrop_100\": [\"support\"],"},{"type":"hardBreak"},{"type":"text","text":"\"whisper_101\": [\"sales\", \"hr\"]"},{"type":"hardBreak"},{"type":"text","text":"}"}]}]}]}]},{"type":"paragraph","content":[]}]},"id":"1ab97921-e7ca-452f-965a-4a763b57f8d3","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 \\\r\n-H \"Authorization: Bearer ${access_token}\" \\\r\n-H \"Content-Type: application/json\" \\\r\n-d '{\r\n  \"allow_all\": false,\n  \"pickup_all\": true,\n  \"groups\": {\n    \"support\": [\"100\", \"101\"],\n    \"sales\": [\"102\", \"101\"],\n    \"hr\": [\"100\", \"101\", \"103\"]\n  },\n  \"pickup_share_groups\": [\n    \"support\",\n    \"sales\"\n  ],\n  \"eavesdrop_100\": [\n    \"support\"\n  ],\n  \"whisper_101\": [\n    \"sales\",\n    \"hr\"\n  ]\n}' \\\r\n-X PUT ${url}/client/@me/call_control_group/"}]}]},"id":"59f02ace-6798-4ee6-8ed3-7c878969f35b","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\r\n\r\nimport requests\r\n\r\nurl = f'{URL}/client/@me/call_control_group/'\r\nheaders = {\r\n    'Authorization': f'Bearer {ACCESS_TOKEN}',\r\n    'Content-Type': 'application/json'\r\n}\r\ndata = '''{\r\n    \"allow_all\": false,\n    \"pickup_all\": true,\n    \"groups\": {\n        \"support\": [\"100\", \"101\"],\n        \"sales\": [\"102\", \"101\"],\n        \"hr\": [\"100\", \"101\", \"103\"]\n    },\n    \"pickup_share_groups\": [\n        \"support\",\n        \"sales\"\n    ],\n    \"eavesdrop_100\": [\n        \"support\"\n    ],\n    \"whisper_101\": [\n        \"sales\",\n        \"hr\"\n    ]\n}'''\r\nresponse = requests.put(url, headers=headers, data=data)\r\nprint(response.text)"}]}]},"id":"fe3b5416-5aa2-4f51-b4b2-2d3f3e4d8438","label":"На языке Python3    ","type":"tab"}]

Ответ системы:

Expand
titleРазвернуть
Code Block
languagejson
{
  "allow_all": false,
  "pickup_all": true,
  "groups": {
    "support": [
      "100",
      "101"
    ],
    "sales": [
      "102",
      "101"
    ],
    "hr": [
      "100",
      "101",
      "103"
    ]
  },
  "pickup_share_groups": [
    "support",
    "sales"
  ],
  "phone_replace_groups": [
    "support"
  ],
  "eavesdrop_100": [
    "support"
  ],
  "whisper_101": [
    "sales",
    "hr"
  ]
}

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

Expand
titlePUT /client/{client_id}/call_control_group/

PUT /client/{client_id}/call_control_group/

Параметры URL

Имя

Тип

client_id

string

Параметры JSON

Имя

Тип

call_control_groups 

string

Expand
titleGET /client/{client_id}/call_control_group/

GET /client/{client_id}/call_control_group/

Параметры URL

Имя

Тип

client_id

string