Звуковые файлы для воспроизведения при удержании абонентами домена (waitonhold_domain)
Обзор
Предоставляет доступ к файлам домена, используемым для воспроизведения мелодии ожидания в телефонных звонках удерживаемому абоненту. По умолчанию каталог пуст.
Состав файлов произволен. При постановке на удержание воспроизводится случайный файл из каталога. Если каталог домена пуст, то удерживаемому абоненту воспроизводятся мелодии ожидания по умолчанию waitonhold
Для кросс-доменных звонков мелодия удержания определяется доменом абонента, инициировавшего постановку на удержание.
Каталог располагается в категории автоматически синхронизирующихся каталогов :SYNC.
Доступ к каталогу из сценариев происходит с помощью префикса категории каталогов ":SYNC_DOMAIN_DATA/waitonhold".
Доступно только в рабочих доменах.
Запросы
| HTTP verb | Endpoint | Описание |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Заливка группы файлов
Загрузка в коллекцию производится с помощью Content-Type: multipart/formdata.
В запросе может быть один или несколько файлов.
Файлы размещаются под именами, указанными в заголовках Content-Disposition каждой части.
Если файл с указанным именем уже существует, то он не сохраняется и возвращает ошибку. В зависимости от Content-Type и наличия успешно размещенных файлов в запросе может быть возвращен неудачный HTTP-ответ, либо информация о неудаче в теле HTTP-ответа 200 OK.
Запрос
POST /rest/v1/fs/targets/waitonhold_domain 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="domain_hold_music.wav"
Content-Transfer-Encoding: binary
BINARY BODY OF 'domain_hold_music.wav'
-----------boundary_69df8120352a996e--
Получение списка файлов
Запрос
| Имя | Тип | Описание |
|---|---|---|
|
|
Фильтр по значениям полей. |
|
|
Список полей для вывода. Доступные поля для выдачи: name, size, last_modified. |
|
|
Смещение в списке файлов, подлежащих выдаче. |
|
|
Максимальное количество файлов в списке. |
|
|
Порядок сортировки файлов в списке. |
|
|
При значении Считается после применения фильтра: с параметром |
GET /rest/v1/fs/targets/waitonhold_domain HTTP/1.1
Ответ
Время в поле last_modified возвращается в UTC.
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
[
{
"name": "domain_hold_melody.wav",
"size": 1277539,
"last_modified": "2025-11-15 13:26:03"
},
{
"name": "nutcracker3.mp3",
"size": 2186022,
"last_modified": "2024-12-25 00:00:00"
}
]
Скачивание файла
Запрос
| Имя | Тип | Описание |
|---|---|---|
|
|
Тип выдачи. По умолчанию
|
GET /rest/v1/fs/targets/waitonhold_domain/domain_hold_music.wav?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/waitonhold_domain/domain_hold_music.wav HTTP/1.1
Content-Type: application/octet-stream
BINARY BODY OF 'domain_hold_music.wav'
PUT /rest/v1/fs/targets/waitonhold_domain/domain_hold_music.wav HTTP/1.1
Content-Type: multipart/form-data; boundary=-----------boundary_69df8120352a996e
-----------boundary_69df8120352a996e
Content-Type: application/octet-stream
Content-Disposition: form-data; name="domain_hold_music.wav"; filename="domain_hold_music.wav"
Content-Transfer-Encoding: binary
BINARY BODY OF 'domain_hold_music.wav'
-----------boundary_69df8120352a996e--
Получение мета-информации о файле
Возвращает мета-информацию о файле, содержащую в том числе размер в заголовке Content-Length.
Запрос
| Имя | Тип | Описание |
|---|---|---|
|
|
Тип выдачи. По умолчанию
|
HEAD /rest/v1/fs/targets/waitonhold_domain/domain_hold_music.wav?attachment=true HTTP/1.1
Получение мета-информации о файле (METADATA)
Возвращает размер и время изменения файла в формате JSON. В отличие от метода HEAD,
сведения приходят в теле ответа и не требуют разбора заголовков.
Метод нестандартный и принимается в двух равнозначных формах: собственно методом
(METADATA /rest/v1/fs/targets/waitonhold_domain/domain_hold_music.wav) и методом POST по пути с суффиксом
(POST /rest/v1/fs/targets/waitonhold_domain/domain_hold_music.wav!metadata). Подробно — Нестандартные методы в пути.
Запрос не должен содержать тела ни в одной из форм: запрос с телом трактуется как заливка файла.
Особенности
-
Время в поле
mtimeвозвращается в UTC в формате RFC 3339. -
Контрольная сумма содержимого возвращается только по запросу с параметром
hasha=true. Без параметра содержимое файла не читается, поэтому запрос дёшев независимо от размера файла.
Запрос
| Имя | Тип | Описание |
|---|---|---|
|
|
Добавить в ответ контрольную сумму содержимого. По умолчанию Вычисление требует чтения файла целиком, поэтому на больших файлах параметр следует указывать только по явной необходимости. |
POST /rest/v1/fs/targets/waitonhold_domain/domain_hold_music.wav!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.
Подробно: Мета-информация и Операции над каталогами.