Протестировать методы API можно на странице интерактивного обозревателя API и без написания кода
Некоторые ресурсы, описанные на странице, по умолчанию могут быть не доступны из-за типа приложения (см. Создание и авторизация приложений)
Внутренний номер может быть адресован номерами разного типа:
абсолютный — имеет вид префикс_домена*префикс_клиента*имя_внутреннего_номера или префикс_клиента*имя_внутреннего_номера@имя_домена (например, 00500*0003*100 или 0003*100@somehost.com). Префиксы клиента и домена можно получить из ресурса “Клиент (/client/)”;
относительный — в пределах одного домена префикс_клиента*имя_внутреннего_номера (например, 0003*100) и просто имя_внутреннего_номера в пределах одного клиента (например, 100).
Вариант префикс_клиента*имя_внутреннего_номера является основным используемым при выдаче результатов и приеме параметров.
Будучи созданным, внутренний номер не может быть переименован. Возможно удаление с последующим созданием под другим именем.
Есть возможность объединения нескольких внутренних номеров в группу внутренних номеров.
При обновлении параметров внутреннего номера, находящегося в Bundle - несколько добавочных для одного сотрудника , синхронизирующиеся параметры (Список синхронизирующихся параметров) также обновятся и на остальных внутренних номерах в “bundle“ |
Внутренний номер (ExtensionItem)
|
Создание внутреннего номера типа 'phone':
[{"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"}] |
Ответ системы:
{ "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 } |
POST /client/{client_id}/extension/ Параметры URL
Параметры JSON
Поля ответа
|
GET /client/{client_id}/extension/ Параметры URL
Параметры JSON
Поля ответа
|
PUT /client/{client_id}/extension/{extension_id} Параметры URL
Параметры JSON
Поля ответа
|
GET /client/{client_id}/extension/{extension_id} Параметры URL
Поля ответа
|
DELETE /client/{client_id}/extension/{extension_id} Параметры URL
|
GET /extension_group/{ext_group_id}/extension/ Параметры URL
Параметры запроса
Поля ответа
|
PUT /extension_group/{ext_group_id}/extension/{extension_id} Параметры URL
Параметры JSON
Поля ответа
|
GET /extension_group/{ext_group_id}/extension/{extension_id} Параметры URL
Поля ответа
|
GET /extension/{extension_id}/extension/ Параметры URL
Поля ответа
|
PUT /extension/{extension_id}/extension/ Параметры URL
Параметры JSON
Поля ответа
|