Versions Compared

Key

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

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

Внутренний номер является основной единицей АТС, выполняющей определенный перечень функций в соответствии с заданным типом. Ресурс служит для управления наиболее абстрактными свойствами внутреннего номера. Для специфических параметров внутренних номеров в зависимости от типа есть отдельные разделы (например, ресурс /phone/ для внутренних номеров типа "телефонный терминал").

Table of Contents

Внутренний номер может быть адресован номерами разного типа:

  • абсолютный — имеет вид префикс_домена*префикс_клиента*имя_внутреннего_номера или префикс_клиента*имя_внутреннего_номера@имя_домена (например, 00500*0003*100 или 0003*100@somehost.com). Префиксы клиента и домена можно получить из ресурса “Клиент (/client/)”;

  • относительный — в пределах одного домена префикс_клиента*имя_внутреннего_номера (например, 0003*100) и просто имя_внутреннего_номера в пределах одного клиента (например, 100).

Вариант префикс_клиента*имя_внутреннего_номера является основным используемым при выдаче результатов и приеме параметров.

Будучи созданным, внутренний номер не может быть переименован. Возможно удаление с последующим созданием под другим именем.

Есть возможность объединения нескольких внутренних номеров в группу внутренних номеров.

Info

При обновлении параметров внутреннего номера, находящегося в Bundle - несколько добавочных для одного сотрудника , синхронизирующиеся параметры (Список синхронизирующихся параметров) также обновятся и на остальных внутренних номерах в “bundle“

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

Expand
titleРазвернуть

Внутренний номер (ExtensionItem)

Имя

Тип

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

Описание

ani_rfc3325

boolean

нет

Предназначено для вставки в поле P-Asserted-Identity внешнего номера, на который пришел вызов в АТС, в случае дальнейшей переадресации вызова с данного внутреннего номера на другой внешний номер (не использовать без необходимости, о возможностях и последствиях использования необходимо уточнить у провайдера телефонии)

caller_id_name

string

нет

Отображаемое имя при исходящем вызове

client_id

long

да

Идентификатор клиента, которому принадлежит внутренний номер

create_date 

string

нет

Дата создания внутреннего номера

dial_rule_id 

long

нет

Идентификатор правила набора

dial_rule_limit

long

нет

Лимит количества правил набора

did_as_transfer_caller_id 

string

нет

Внешний номер АТС, на который изначально пришел вызов, отображаемый при дальнейшей переадресации номера

domain

string

нет

Домен клиента

extension_group_id

long

нет

Идентификатор группы, которой принадлежит внутренний номер

extra_params

string

нет

Дополнительные параметры

id

long

да

Уникальный идентификатор внутреннего номера

label

string

нет

Display Name внутреннего номера. Отображается на вызываемом терминале при исходящих вызовах (если поддерживается)

message_did

string

нет

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

name

string

да

префикс_клиента*имя_внутреннего_номера или просто имя_внутреннего_номера (в этом случае префикс будет дописан автоматически). Разрядность номера в пределах клиента одинакова и определяется его свойствами

status

string

нет

Статус внутреннего номера:

  • 'active' – активен;

  • 'blocked' – заблокирован

type

string

да

Тип внутреннего номера. Параметры настройки, зависящие от типа, находятся в соответствующих разделах:

caller_id_group_id

long

нет

Идентификатор группы АОНов, доступных для подстановки при исходящих (не внутренних) вызовах

client_public_caller_id_number

string

нет

Используемое в данным момент значине АОНа из группы “caller_id_group_id

Пример

Создание внутреннего номера типа 'phone':

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/@me/extension/"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"{"},{"type":"hardBreak"},{"type":"text","text":" \"status\": \"active\","},{"type":"hardBreak"},{"type":"text","text":" \"type\": \"phone\","},{"type":"hardBreak"},{"type":"text","text":" \"name\": \"100\","},{"type":"hardBreak"},{"type":"text","text":" \"label\": \"Иванов Петр\""},{"type":"hardBreak"},{"type":"text","text":"}"}]}]}]}]},{"type":"paragraph","content":[]}]},"id":"6fdf78ba-8e4e-4289-9d65-4f33b441e89e","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    \"status\": \"active\",\n    \"type\": \"phone\",\n    \"name\": \"100\",\n    \"label\": \"Иванов Петр\"\n}' \\\n-X POST ${url}/client/@me/extension/"}]}]},"id":"e647a5a1-1b5c-4ae3-acb0-bb5b21d46229","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/extension/'\nheaders = {\n    'Authorization': f'Bearer {ACCESS_TOKEN}',\n    'Content-Type': 'application/json'\n}\ndata = '''{\n    \"status\": \"active\",\n    \"type\": \"phone\",\n    \"name\": \"100\",\n    \"label\": \"Иванов Петр\"\n}'''\nresponse = requests.post(url, headers=headers, data=data)\nprint(response.text)"}]}]},"id":"2169245e-eb5d-415d-8388-eba5457db6bf","label":"На языке Python3","type":"tab"}]

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

Code Block
languagejson
{
  "status": "active",
  "domain": "sip.ringme.ru", 
  "create_date": "2020-03-16 12:11:13", 
  "name": "000*100", 
  "dial_rule_limit": null, 
  "extension_group_id": null, 
  "label": "Иванов Петр", 
  "caller_id_name": null, 
  "client_id": 12,
  "extra_params": null, 
  "message_did": null, 
  "dial_rule_id": null, 
  "ani_rfc3325": false, 
  "type": "phone", 
  "id": 190, 
  "did_as_transfer_caller_id": null,
  "caller_id_group_id": null,
  "client_public_caller_id_number": null
}

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

Expand
titlePOST /client/{client_id}/extension/

POST /client/{client_id}/extension/
Добавить внутренний номер

Параметры URL

Имя

Тип

client_id

string

Параметры JSON

Имя

Тип

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

caller_id_name

string

нет

dial_rule_id 

long

нет

dial_rule_limit

long

нет

did_as_transfer_caller_id 

string

нет

extension_group_id

long

нет

extra_params

string

нет

label

string

нет

message_did

string

нет

name

string

да

status

string

нет

type

string

да

caller_id_group_id

long

нет

client_public_caller_id_number

string

нет

Поля ответа

Имя

Тип

ani_rfc3325

boolean

caller_id_name

string

client_id

long

create_date 

string

dial_rule_id 

long

dial_rule_limit

long

did_as_transfer_caller_id 

string

domain

string

extension_group_id

long

extra_params

string

id

long

label

string

message_did

string

name

string

status

string

type

string

caller_id_group_id

long

client_public_caller_id_number

string

Expand
titleGET /client/{client_id}/extension/

GET /client/{client_id}/extension/
Получить список внутренних номеров клиента

Параметры URL

Имя

Тип

client_id

string

Параметры JSON

Имя

Тип

status

array [string]

name

array [string]

id

array [string]

client_id

string

extension_group_id

array [string]

per_page

integer

type

array [string]

page

integer

Поля ответа

Имя

Тип

ani_rfc3325

boolean

caller_id_name

string

client_id

long

create_date 

string

dial_rule_id 

long

dial_rule_limit

long

did_as_transfer_caller_id 

string

domain

string

extension_group_id

long

extra_params

string

id

long

label

string

message_did

string

name

string

status

string

type

string

caller_id_group_id

long

client_public_caller_id_number

string

Expand
titlePUT /client/{client_id}/extension/{extension_id}

PUT /client/{client_id}/extension/{extension_id}
Обновить внутренний номер

Параметры URL

Имя

Тип

extension_id

integer

client_id

string

Параметры JSON

Имя

Тип

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

caller_id_name

string

нет

dial_rule_id 

long

нет

dial_rule_limit

long

нет

did_as_transfer_caller_id 

string

нет

extension_group_id

long

нет

extra_params

string

нет

label

string

нет

message_did

string

нет

status

string

нет

caller_id_group_id

long

нет

client_public_caller_id_number

string

нет

Поля ответа

Имя

Тип

ani_rfc3325

boolean

caller_id_name

string

client_id

long

create_date 

string

dial_rule_id 

long

dial_rule_limit

long

did_as_transfer_caller_id 

string

domain

string

extension_group_id

long

extra_params

string

id

long

label

string

message_did

string

name

string

status

string

type

string

caller_id_group_id

long

client_public_caller_id_number

string

Expand
titleGET /client/{client_id}/extension/{extension_id}

GET /client/{client_id}/extension/{extension_id}
Получить данные о внутреннем номере

Параметры URL

Имя

Тип

extension_id

integer

client_id

string

Поля ответа

Имя

Тип

ani_rfc3325

boolean

caller_id_name

string

client_id

long

create_date 

string

dial_rule_id 

long

dial_rule_limit

long

did_as_transfer_caller_id 

string

domain

string

extension_group_id

long

extra_params

string

id

long

label

string

message_did

string

name

string

status

string

type

string

caller_id_group_id

long

client_public_caller_id_number

string

Expand
titleDELETE /client/{client_id}/extension/{extension_id}

DELETE /client/{client_id}/extension/{extension_id}
Удалить внутренний номер

Параметры URL

Имя

Тип

extension_id

integer

client_id

string

Ресурсы раздела "Группа внутренних номеров"

Expand
titleGET /extension_group/{ext_group_id}/extension/

GET /extension_group/{ext_group_id}/extension/
Получить список внутренних номеров, входящих в данную группу

Параметры URL

Имя

Тип

ext_group_id

string

Параметры запроса

Имя

Тип

status

array [string]

name

array [string]

caller_id_name

array [string]

type

array [string]

id

array [string]

Поля ответа

Имя

Тип

ani_rfc3325

boolean

caller_id_name

string

client_id

long

create_date 

string

dial_rule_limit

long

did_as_transfer_caller_id 

string

domain

string

extension_group_id

long

extra_params

string

id

long

label

string

message_did

string

name

string

status

string

type

string

caller_id_group_id

long

client_public_caller_id_number

string

Expand
titlePUT /extension_group/{ext_group_id}/extension/{extension_id}

PUT /extension_group/{ext_group_id}/extension/{extension_id}
Обновить внутренний номер

Параметры URL

Имя

Тип

ext_group_id

string

extension_id

integer

Параметры JSON

Имя

Тип

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

caller_id_name

string

нет

dial_rule_limit

long

нет

extra_params

string

нет

label

string

нет

password

string

нет

status

string

нет

client_public_caller_id_number

string

нет

Поля ответа

Имя

Тип

ani_rfc3325

boolean

caller_id_name

string

client_id

long

create_date 

string

dial_rule_limit

long

did_as_transfer_caller_id 

string

domain

string

extension_group_id

long

extra_params

string

id

long

label

string

message_did

string

name

string

status

string

type

string

client_public_caller_id_number

string

Expand
titleGET /extension_group/{ext_group_id}/extension/{extension_id}

GET /extension_group/{ext_group_id}/extension/{extension_id}
Получить информацию о внутреннем номере

Параметры URL

Имя

Тип

ext_group_id

string

extension_id

integer

Поля ответа

Имя

Тип

ani_rfc3325

boolean

caller_id_name

string

client_id

long

create_date 

string

dial_rule_limit

long

did_as_transfer_caller_id 

string

domain

string

extension_group_id

long

extra_params

string

id

long

label

string

message_did

string

name

string

status

string

type

string

client_public_caller_id_number

string

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

Expand
titleGET /extension/{extension_id}/extension/

GET /extension/{extension_id}/extension/
Получить данные о внутреннем номере

Параметры URL

Имя

Тип

extension_id

string

Поля ответа

Имя

Тип

ani_rfc3325

boolean

caller_id_name

string

client_id

long

create_date 

string

dial_rule_id 

long

dial_rule_limit

long

did_as_transfer_caller_id 

string

domain

string

extension_group_id

long

extra_params

string

id

long

label

string

message_did

string

name

string

status

string

type

string

client_public_caller_id_number

string

Expand
titlePUT /extension/{extension_id}/extension/

PUT /extension/{extension_id}/extension/
Обновить внутренний номер

Параметры URL

Имя

Тип

extension_id

string

Параметры JSON

Имя

Тип

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

client_public_caller_id_number

string

нет

Поля ответа

Имя

Тип

ani_rfc3325

boolean

caller_id_name

string

client_id

long

create_date 

string

dial_rule_id 

long

dial_rule_limit

long

did_as_transfer_caller_id 

string

domain

string

extension_group_id

long

extra_params

string

id

long

label

string

message_did

string

name

string

status

string

type

string

client_public_caller_id_number

string