Протестировать методы API можно на странице интерактивного обозревателя API и без написания кода
Некоторые ресурсы, описанные на странице, по умолчанию могут быть не доступны из-за типа приложения (см. Создание и авторизация приложений)
Ресурс записи разговоров позволяет получить список доступных записей разговора клиента или внутреннего номера за определенный период, получить непосредственно файлы записи, а также удалить записи в диапазоне или поштучно.
Table of Contents |
---|
Описание структур данных
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля ресурса "Запись разговора" совпадают с полями ресурса “Информация о составных частях вызова (/cdr/)”, но, в отличие от CDR, поля record_uuid и record_file_size никогда не принимают значения null.
|
Получение списка записей разговора
Интервал получения и удаления списка указывается параметрами запроса start_datetime и end_datetime. Дата и время, содержащиеся в параметре end_datetime, не должны превышать последний день следующего за start_datetime месяца. Для получения данных за больший период следует делать несколько запросов.
При получении списка возможно указать параметр запроса order, который задает направление, в котором результирующий список будет отсортирован по полю init_time_gmt (по возрастанию или по убыванию).
Параметры запроса
Имя | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
start_datetime | YYYY-MM-DD HH:MM:SS | да | |
end_datetime | YYYY-MM-DD HH:MM:SS | да | |
order | asc or desc | нет | desc |
Получение статистики записей разговора
Параметры запроса
Имя | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
start_datetime | YYYY-MM-DD HH:MM:SS | да | |
end_datetime | YYYY-MM-DD HH:MM:SS | да |
Поля статистики записей разговора
Имя | Тип | Описание |
---|---|---|
files_size | long | Суммарный размер файлов записей |
records_count | long | Количество файлов записей |
Получение файлов записей разговора из хранилища
Если в системе присутствует внешнее хранилища записей разговора, то для получения ссылки на запись в хранилище необходимо воспользоваться следующим методом:
GET /client/{client_id}/record/{record_uuid}/storage_url/. В ответ API вернёт URL для получения записи из хранилища. Получение записи из хранилища не требует аутентификации. Ссылка является постоянной.
Info |
---|
Получение файлов записей с помощью ссылки на хранилище является наиболее предпочтительным и надёжным способом. |
Пример
Получение ссылки на запись из хранилища:
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":"GET"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"/client/@me/record/30-624835FEEE0E11E6A19D331E4D6A0606/storage_url/"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":" "}]}]}]}]},{"type":"paragraph","content":[]}]},"id":"39ecaf17-9764-4ce7-93ab-1349145463a0","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-X GET ${url}/client/@me/record/30-624835FEEE0E11E6A19D331E4D6A0606/storage_url/"}]}]},"id":"8dcf628d-361e-4ec3-8a23-3ea876ccfbb4","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/record/30-624835FEEE0E11E6A19D331E4D6A0606/storage_url/'\nheaders = {\n 'Authorization': f'Bearer {ACCESS_TOKEN}'\n}\nresponse = requests.get(url, headers=headers)\nprint(response.text)"}]}]},"id":"fee3a72f-3dce-411b-ab86-ffb4c6358996","label":"На языке Python3 ","type":"tab"}] |
Ответ системы:
Code Block | ||
---|---|---|
| ||
{ "record_url": "https://storage.hostname.ru/bd7zzrXD5395gn7FMgzKtB8zhZnNoYx8BdkX_HgNdeE2lnJjPMLcOR_1hQprGf-dW94wuTCNRAY6MDjMZ0zWIg==" } |
Получение файлов записей разговора из API
Для непосредственного получения файла записи разговора с сервера REST API нужно совершить GET-запрос на соответствующий нужному уровню пользователя ресурс, указав идентификатор записи:
GET /client/{client_id}/record/{record_uuid}
GET /extension_group/{ext_group_id}/record/{record_uuid}
GET /extension/{extension_id}/record/{record_uuid}
Данные файла записи будут возвращены в теле запроса, имя файла содержится в заголовке Content-Disposition.
Пример
Tabs |
---|
[{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"html"},"content":[{"type":"text","text":"GET /api/ver1.0/client/@me/record/30-7FD1F974054E11E68FD30968F8BBCB45 HTTP/1.1\nUser-Agent: Wget/1.15 (linux-gnu)\nAccept: */*\nHost: host.domain\nConnection: Keep-Alive\nAuthorization: Bearer token"}]}]},"id":"a3ff8ec3-e1e0-4370-b353-387c043c8d21","label":"HTTP-запрос ","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"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":"GET"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"/api/ver1.0/client/@me/record/30-7FD1F974054E11E68FD30968F8BBCB45"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[]}]}]}]},{"type":"paragraph","content":[]}]},"id":"0fd15c91-c783-4027-ae2a-33719743784a","label":"Интерактивный обозреватель API ","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"shell"},"content":[{"type":"text","text":"curl \\\n-H \"Authorization: Bearer ${access_token}\" \\\n-X GET ${url}/client/@me/record/30-7FD1F974054E11E68FD30968F8BBCB45"}]}]},"id":"a364e374-3ea8-487b-ab42-a759938f2fc7","label":"Программа cURL ","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"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/record/30-7FD1F974054E11E68FD30968F8BBCB45'\r\nheaders = {\r\n 'Authorization': f'Bearer {ACCESS_TOKEN}'\r\n}\r\nresponse = requests.get(url, headers=headers)\r\nprint(response.text)"}]}]},"id":"bcc2a624-5c63-4652-93c9-8cbb60a7345d","label":"На языке Python3 ","type":"tab"}] |
Ответ системы:
|
Получение файлов через базовую HTTP-аутентификацию
Существует возможность получить доступ к файлам записей разговоров, используя базовую HTTP-аутентификацию, вместо передачи OAuth2-токена. Подробнее этот способ описан на странице “Получение файлов через базовую HTTP-аутентификацию”.
Получение архива файлов записей разговора
Существует возможность получить архив с множеством файлов записей за период времени. Для этого необходимо воспользоваться специальным ресурсом API:
POST /client/{client_id}/record/archive/
передав в него временной диапазон и адрес электронной почты, на которую будет отправлена ссылка для загрузки архива. Размер файлов в архиве и диапазон дат ограничен. В течение часа невозможно запросить новый архив, не загрузив предыдущий. Коды возможных ошибок перечислены в подразделе “Возвращаемые коды и статусы”. Записи разговора по ссылке будут доступны в течение 12 часов.
Параметры JSON
Имя | Тип | Обяза-тельный | Описание |
---|---|---|---|
start_datetime | string (YYYY-MM-DD HH:MM:SS) | да | Начало диапазона в формате YYYY-MM-DD HH:MM:SS |
end_datetime | string (YYYY-MM-DD HH:MM:SS) | да | Конец диапазона в формате YYYY-MM-DD HH:MM:SS |
string | да | Адрес электронной почты для отправки ссылки на архив. Возможно перечисление нескольких адресов через запятую |
Ресурсы раздела "Клиент"
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET /client/{client_id}/record/ Получить список записей разговора клиента в за заданный интервал времени Параметры URL
Параметры запроса
Поля ответа
|
Expand | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
DELETE /client/{client_id}/record/ Удалить записи разговора клиента за заданный интервал времени Параметры URL
Параметры запроса
|
Expand | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||
POST /client/{client_id}/record/archive/ Запросить архив записей разговора за период Параметры URL
Параметры JSON
Поля ответа
|
Expand | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
GET /client/{client_id}/record/stats/ Получить статистику по записям разговора за заданный интервал времени Параметры URL
Параметры запроса
Поля ответа
|
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
GET /client/{client_id}/record/{record_uuid} Получить файл записи разговора Параметры URL
|
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
DELETE /client/{client_id}/record/{record_uuid} Удалить запись разговора Параметры URL
|
Ресурсы раздела "Группа внутренних номеров”
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET /extension_group/{ext_group_id}/record/ Получить список записей разговора группы внутренних номеров за заданный интервал времени Параметры URL
Параметры запроса
Поля ответа
|
Expand | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
GET /extension_group/{ext_group_id}/record/stats/ Получить статистику по записям разговора группы внутренних номеров за заданный интервал времени Параметры URL
Параметры запроса
Поля ответа
|
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
GET /extension_group/{ext_group_id}/record/{record_uuid} Получить файл записи разговора Параметры URL
|
Ресурсы раздела "Внутренний номер”
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET /extension/{extension_id}/record/ Получить список записей разговора внутреннего номера за заданный интервал времени Параметры URL
Параметры запроса
Поля ответа
|
Expand | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
GET /extension/{extension_id}/record/stats/ Получить статистику по записям разговора внутреннего номера за заданный интервал времени Параметры URL
Параметры запроса
Поля ответа
|
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
GET /extension/{extension_id}/record/{record_uuid} Получить файл записи разговора внутреннего номера Параметры URL
|