Versions Compared

Key

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

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

Ресурс "Звуковые файлы" позволяет загружать и управлять файлами звуков, которые в дальнейшем можно использовать для настройки голосовых приветствий, очередей, приветствий голосовой почты и т.п.

Загрузка звуковых файлов

Поддерживаются звуковые файлы в форматах wav и mp3. Максимальный размер файла – 10 мегабайт.

Замена контента звукового файла

Замена контента звукового файла возможна с помощью ресурса
POST /client/{client_id}/sound/{sound_id}

Table of Contents
Note

Content-Type при загрузке файлов
При загрузке файлов с помощью метода POST следует установить заголовок Content-Type в значение multipart/form-data с указанием параметра boundary, который содержит последовательность символов, разделяющую части тела запроса. Параметры звукового файла и сам файл передаются как поля формы. Во всех остальных методах, в том числе при обновлении информации о звуковом файле, следует использовать обычный Content-Type: application/json и передавать информацию в JSON-формате. Стоит отметить, что в большинстве случаев различные библиотеки для работы с веб-ресурсами генерируют тело запроса и заголовок Content-Type с параметром boundary автоматически.

Описание полей запроса

Параметр

Тип

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

Значение по умолчанию

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

Описание

title

string

да

Название звукового файла

file

file

да

Звуковой файл в формате wav или mp3. Максимальный размер файла – 10 мегабайт.
Не поддерживаются wav-файлы с кодированием типа Float. Не поддерживаются wav-файлы, в которых нет информации о формате: кодировании, количестве каналов, битрейте, частоте и т.д.

В случае успешной загрузки файла возвращается ресурс "Звуковой файл", содержащий в том числе идентификатор звукового файла (поле id), который используется для указания звука в ресурсах очереди, голосового приветствия и т.п.

Пример

Загрузка звукового файла test_sound.wav c именем “Файл приветствия”.

Tabs
[{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"html"},"content":[{"type":"text","text":"Request URL: https://hostname.domain/api/ver1.0/client/@me/sound/\nRequest Method: POST\nAuthorization: Bearer token\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryRJjeZXUAAoerF744\nHost: hostname.domain\n------WebKitFormBoundaryRJjeZXUAAoerF744\nContent-Disposition: form-data; name=\"file\"; filename=\"test_sound.wav\"\nContent-Type: audio/wav\n \n \n------WebKitFormBoundaryRJjeZXUAAoerF744\nContent-Disposition: form-data; name=\"title\"\n \nФайл приветствия\n------WebKitFormBoundaryRJjeZXUAAoerF744--"}]}]},"id":"5c4bc8bd-f7f6-483c-8bbf-5c370916dcd8","label":"HTTP-запрос    ","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":"метод","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/sound/"}]}]},{"type":"tableCell","attrs":{},"content":[{"type":"paragraph","content":[{"type":"text","text":"{"},{"type":"hardBreak"},{"type":"text","text":"”file”: ”test_sound.wav“,"},{"type":"hardBreak"},{"type":"text","text":"”title”: “Файл приветствия“"},{"type":"hardBreak"},{"type":"text","text":"}"}]}]}]}]},{"type":"paragraph","content":[]}]},"id":"3d8179b5-d0e6-40ba-8eff-364f1c562289","label":"Интерактивный обозреватель API     ","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"shell"},"content":[{"type":"text","text":"Загрузка звука через cURL\nuser@host$ curl -i -X POST -F file=@test_sound.wav -F\"title=Файл приветствия\" -H\"Authorization: Bearer TSyAxXtAsbE9Kl0iAVGG6LmnfEte8X\" https://host.domain/api/ver1.0/client/@me/sound/\nHTTP/1.1 100 Continue\nHTTP/1.1 201 CREATED\nServer: nginx/1.8.0\nDate: Tue, 11 Aug 2015 09:50:41 GMT\nContent-Type: application/json\nContent-Length: 150\nConnection: keep-alive\nAccess-Control-Allow-Origin: *\nAccess-Control-Allow-Methods: GET, POST, DELETE, PUT, PATCH, OPTIONS\nAccess-Control-Allow-Headers: Content-Type, api_key, Authorization\n{\"id\": 51, \"client_id\": 12, \"title\": \"Файл приветствия\", \"dealer_id\": null, \"filename\": \"test_sound.wav\"}"}]}]},"id":"f38dbd24-00e0-409c-b235-9f954cfffd00","label":"Программа cURL    ","type":"tab"},{"content":{"version":1,"type":"doc","content":[{"type":"codeBlock","attrs":{"language":"python"},"content":[{"type":"text","text":"#!/usr/bin/python\n# -*- coding: utf-8 -*-\n \nimport requests\nimport json\n \n# Установка параметров\nAPI_HOST = \"https://hostname.domain\"\nAPP_ID = \"APP_ID\"\nAPP_SECRET = \"APP_SECRET\"\nREDIRECT_URI = \"\"\n \n# Получение авторизации\nbody = {\n    'grant_type': 'client_credentials',\n    'client_id': APP_ID,\n    'client_secret': APP_SECRET,\n}\n \nrequest_url = \"{host}/oauth/token\".format(host=API_HOST)\nresponse = requests.post(request_url, data=body, verify=False)\n \nif response.status_code == 200:\n    # Получение токена доступа\n    access_token = response.json()['access_token']\nelif response.status_code == 401:\n    print 'Ошибка авторизации: {error}'.format(error=response.json()['error'])\n    exit(1)\nelse:\n    print 'Неизвестная ошибка'\n    exit(2)\n \n# Установка заголовка авторизации\nheaders = {\n    'Authorization': 'Bearer {access_token}'.format(access_token=access_token)  # Заголовок авторизации\n}\n \nfiles = {'file': open('test_sound.wav', 'rb')}\ndata = {'title': 'Файл приветствия'}\n \nrequest_url = \"{host}/api/ver1.0/client/@me/sound/\".format(host=API_HOST)\nresponse = requests.post(request_url, files=files, data=data, headers=headers)\nif response.status_code == 201:\n    file_info = response.json()\n    print file_info\nelse:\n    print response.text"}]}]},"id":"f9c9c173-12bc-489c-b8f7-b2da9aacb27e","label":"На языке Python    ","type":"tab"}]

Получение списка звуковых файлов

Получение всех доступных для использования клиенту или внутреннему номеру звуков осуществляется через соответствующий ресурс. Полученный список содержит информацию обо всех звуковых файлах, доступных для использования клиенту или внутреннему номеру, в том числе загруженных администратором или дилером клиента. 

Описание полей

Параметр

Тип

Описание

id

integer

Идентификатор звукового файла

title

string

Название звукового файла

client_id

integer

Идентификатор клиента, владеющего звуковым файлом. Может иметь значение null, если звук не принадлежит клиенту

dealer_id

integer

Идентификатор дилера, владеющего звуковым файлом. Может иметь значение null, если звук не принадлежит дилеру клиента

filename

string

Системное имя файла, которое может быть использовано, в частности, для проигрывания звука через функцию голосового меню “Call Interactive

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

Expand
titlePOST /client/{client_id}/sound/

POST /client/{client_id}/sound/

Добавить звуковой файл

Параметры URL

Имя

Тип

client_id

string

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

Параметр

Тип

Описание

title

stringНазвание звукового файла, обязательный параметр

file

fileЗвуковой файл в формате wav или mp3. Максимальный размер файла – 10 мегабайт. Обязательный параметр.
Не поддерживаются wav-файлы с кодированием типа Float. Не поддерживаются wav-файлы, в которых нет информации о формате: кодировании, количестве каналов, битрейте, частоте и т.д.

Поля ответа

Имя

Тип

dealer_id

long

id

long

client_id

long

title

string

filename

string

Expand
titleGET /client/{client_id}/sound/

GET /client/{client_id}/sound/

Получить список доступных клиенту звуковых файлов

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

Имя

Тип

id

array [integer]

own_only

boolean

title

array [string]

Поля ответа

Имя

Тип

dealer_id

long

id

long

client_id

long

title

string

filename

string

Expand
titlePOST /client/{client_id}/sound/{sound_id}

POST /client/{client_id}/sound/{sound_id}

Заменить контент звукового файла

Параметры URL

Имя

Тип

client_id

string

sound_id

integer

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

title

string

Название звукового файла, не обязательное поле, если не указан- сохранится старый title

file

file

Звуковой файл в формате wav или mp3. Максимальный размер файла – 10 мегабайт.
Не поддерживаются wav-файлы с кодированием типа Float. Не поддерживаются wav-файлы, в которых нет информации о формате: кодировании, количестве каналов, битрейте, частоте и т.д.

Поля ответа

Имя

Тип

dealer_id

long

id

long

client_id

long

title

string

filename

string

Expand
titlePUT /client/{client_id}/sound/{sound_id}

PUT /client/{client_id}/sound/{sound_id}

Обновить информацию о звуковом файле

Параметры URL

Имя

Тип

client_id

string

sound_id

integer

Параметры JSON

Имя

Тип

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

title

string

нет

Поля ответа

Имя

Тип

dealer_id

long

id

long

client_id

long

title

string

filename

string

Expand
titleGET /client/{client_id}/sound/{sound_id}

GET /client/{client_id}/sound/{sound_id}

Получить информацию о звуковом файле

Параметры URL

Имя

Тип

client_id

string

sound_id

integer

Поля ответа

Имя

Тип

dealer_id

long

id

long

client_id

long

title

string

filename

string

Expand
titleDELETE /client/{client_id}/sound/{sound_id}

DELETE /client/{client_id}/sound/{sound_id}

Удалить звуковой файл

Параметры URL

Имя

Тип

client_id

string

sound_id

integer

Expand
titleGET /client/{client_id}/sound/{sound_id}/download/

GET /client/{client_id}/sound/{sound_id}/download/

Получить звуковой файл

Параметры URL

Имя

Тип

client_id

string

sound_id

integer

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

Expand
titleGET /extension/{extension_id}/sound/

GET /extension/{extension_id}/sound/

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

Параметры URL

Имя

Тип

extension_id

string

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

Имя

Тип

title

array [string]

id

array [integer]

Поля ответа

Имя

Тип

dealer_id

long

id

long

client_id

long

title

string

filename

string

Expand
titleGET /extension/{extension_id}/sound/{sound_id}/download/

GET /extension/{extension_id}/sound/{sound_id}/download/

Получить звуковой файл

Параметры URL

Имя

Тип

extension_id

string

sound_id

integer