Звуковые файлы сценариев голосовой почты (voicemail)
Обзор
Предоставляет доступ к файлам, используемым при воспроизведении в системных IVR-сценариях голосовой почты.
Состав используемых файлов фиксирован и ограничен, изначально файлы попадают в каталог из ассетов. Состав зависит от содержания системных сценариев voicemail и voicemail_send (ассет), которые могут быть изменены при сборке продукта.
Каталог располагается в категории автоматически синхронизирующихся каталогов :SYNC.
Создаваемые в домене сценарии для управления голосовой почтой используют собственные файлы и могут не обращаться к этому хранилищу.
Доступ к каталогу из сценариев происходит с помощью префикса категории каталогов ":SYNC_COMMON/voicemail".
Доступно только в мастер-домене.
Запросы
| HTTP verb | Endpoint | Описание |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Заливка группы файлов
Загрузка в коллекцию производится с помощью Content-Type: multipart/formdata.
В запросе может быть один или несколько файлов.
Файлы размещаются под именами, указанными в заголовках Content-Disposition каждой части.
Если файл с указанным именем уже существует, то он не сохраняется и возвращает ошибку. В зависимости от Content-Type и наличия успешно размещенных файлов в запросе может быть возвращен неудачный HTTP-ответ, либо информация о неудаче в теле HTTP-ответа 200 OK.
Запрос
POST /rest/v1/fs/targets/voicemail HTTP/1.1
Content-Type: multipart/form-data; boundary=-----------boundary_69df8120352a996e
-----------boundary_69df8120352a996e
Content-Type: application/octet-stream
Content-Disposition: form-data; name="filename"; filename="01.mp3"
Content-Transfer-Encoding: binary
BINARY BODY OF '01.mp3'
-----------boundary_69df8120352a996e--
Получение списка файлов
Запрос
| Имя | Тип | Описание |
|---|---|---|
|
|
Фильтр по значениям полей. |
|
|
Список полей для вывода. Доступные поля для выдачи: name, size, last_modified. |
|
|
Смещение в списке файлов, подлежащих выдаче. |
|
|
Максимальное количество файлов в списке. |
|
|
Порядок сортировки файлов в списке. |
|
|
При значении Считается после применения фильтра: с параметром |
GET /rest/v1/fs/targets/voicemail HTTP/1.1
Ответ
Время в поле last_modified возвращается в UTC.
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
[
{
"name": "01.mp3",
"size": 70985,
"last_modified": "2019-09-20 10:50:14"
},
{
"name": "ding.wav",
"size": 14758,
"last_modified": "2018-04-28 12:10:21"
},
{
"name": "hold_music.wav",
"size": 1596292,
"last_modified": "2019-09-20 10:50:14"
}
]
Скачивание файла
Запрос
| Имя | Тип | Описание |
|---|---|---|
|
|
Тип выдачи. По умолчанию
|
GET /rest/v1/fs/targets/voicemail/01.mp3?attachment=true HTTP/1.1
Перезаливка существующего файла
Производит замену файла.
Загрузка одного файла производится либо с помощью Content-Type: multipart/formdata,
либо с произвольным Content-Type не являющимся мультипартом.
Если загрузка происходит с Content-Type: multipart/formdata,
то будет сохранён только первый файл (первая часть имеющая поле filename в заголовке
Content-Disposition), а само название файла будет проигнорировано.
Имя файла всегда берётся из URL.
Запрос с Content-Type: application/octet-stream и нулевой длиной тела создаёт пустой файл.
Запрос без тела, без Content-Type и без заголовка X-Era-Source отвергается с кодом 400:
по такому запросу невозможно определить намерение.
Метод PUT имеет ещё одно значение, отличающееся формой запроса: Перемещение и переименование файла.
Запрос
PUT /rest/v1/fs/targets/voicemail/01.mp3 HTTP/1.1
Content-Type: application/octet-stream
BINARY BODY OF '01.mp3'
PUT /rest/v1/fs/targets/voicemail/01.mp3 HTTP/1.1
Content-Type: multipart/form-data; boundary=-----------boundary_69df8120352a996e
-----------boundary_69df8120352a996e
Content-Type: application/octet-stream
Content-Disposition: form-data; name="01.mp3"; filename="01.mp3"
Content-Transfer-Encoding: binary
BINARY BODY OF '01.mp3'
-----------boundary_69df8120352a996e--
Получение мета-информации о файле
Возвращает мета-информацию о файле, содержащую в том числе размер в заголовке Content-Length.
Запрос
| Имя | Тип | Описание |
|---|---|---|
|
|
Тип выдачи. По умолчанию
|
HEAD /rest/v1/fs/targets/voicemail/01.mp3?attachment=true HTTP/1.1
Получение мета-информации о файле (METADATA)
Возвращает размер и время изменения файла в формате JSON. В отличие от метода HEAD,
сведения приходят в теле ответа и не требуют разбора заголовков.
Метод нестандартный и принимается в двух равнозначных формах: собственно методом
(METADATA /rest/v1/fs/targets/voicemail/01.mp3) и методом POST по пути с суффиксом
(POST /rest/v1/fs/targets/voicemail/01.mp3!metadata). Подробно — Нестандартные методы в пути.
Запрос не должен содержать тела ни в одной из форм: запрос с телом трактуется как заливка файла.
Особенности
-
Время в поле
mtimeвозвращается в UTC в формате RFC 3339. -
Контрольная сумма содержимого возвращается только по запросу с параметром
hasha=true. Без параметра содержимое файла не читается, поэтому запрос дёшев независимо от размера файла.
Запрос
| Имя | Тип | Описание |
|---|---|---|
|
|
Добавить в ответ контрольную сумму содержимого. По умолчанию Вычисление требует чтения файла целиком, поэтому на больших файлах параметр следует указывать только по явной необходимости. |
POST /rest/v1/fs/targets/voicemail/01.mp3!metadata HTTP/1.1
Ответ
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"size" : 3836,
"mtime" : "2026-07-01T16:47:31Z"
}
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"size" : 3836,
"mtime" : "2026-07-01T16:47:31Z",
"hasha" : "md5;9f86d081884c7d659a2feaa0c55ad015"
}
Перемещение и переименование файла
Перемещает или переименовывает файл в пределах раздела, не передавая его содержимое.
Выполняется методом PUT по пути назначения с заголовком X-Era-Source и пустым телом.
В заголовке указывается путь источника относительно корня раздела.
Операции над корнем раздела
Помимо перечисления и заливки файлов, корень раздела поддерживает два метода.
| Запрос | Действие |
|---|---|
|
Описание раздела и сведения о его корне: поддерживаемые операции, ограничения, число элементов верхнего уровня. |
|
Очистка раздела: удаляется всё содержимое, сам раздел остаётся. Операция рекурсивна и требует подтверждения ключом. |
Удалить раздел нельзя: DELETE по пути корня всегда возвращает 405.
Подробно: Мета-информация и Операции над каталогами.
См. также
-
Ассеты: звуковые файлы
-
Ассеты: сценарии по умолчанию