Голосовая почта

Обзор

Управляет архивом голосовых сообщений, размещенных в ящике номера конкретной учетной записи SIP, прикрепленной к авторизованному пользователю.

Архив - коллекция в хранилище данных, дублирующая голосовые сообщения, обслуживаемые микросервисом vmail.
В качестве идентификаторов используются UUID, а исходные идентификаторы голосовых сообщений содержатся в поле 'nativeId'.
Операции с архивом не влияют на функционирование сервиса голосовой почты и индикаторов MWI.

Ящик голосовой почты имеет тот же номер, что и учетная запись, которой он принадлежит.
Доступ к нему осуществляется компонентом сценария "Голосовая почта".
Для того, чтобы оставить сообщение голосовой почты, используется код абонентской функции 'voicemail_send', при вызове номера которого необходимо номер дополнять номером ящика.
Как альтернатива, может быть создан сценарий IVR с паузой в 10-20 секунд перед снятием трубки, размещающий голосовую почту (самостоятельно или путем перевода на номер абонентской функции с расширением), и назначен в качестве параллельного номера.

Управление голосовой почтой (прослушивание, удаление) возможно с помощью сценариев IVR и кода абонентской функции 'voicemail'.
При прослушивании сообщений с помощью телефона через код абонентской функции, происходит автоматическое изменение состояния сообщения из 'new' в 'listened'.
Архив отражает эти изменения.

Коллекция по полному пути доступна пользователям для подписки на изменения через websocket subscr, а также на операции CRUD через websocket rest.

Запросы

HTTP verb Endpoint Описание

GET

/rest/v1/user/sip/accounts/<AccountID>/archive_voicemail_messages

Получение списка сообщений голосовой почты из архива

GET

/rest/v1/user/sip/accounts/<AccountID>/archive_voicemail_messages/<Date>

Получение списка сообщений голосовой почты из архива

CLEAR

/rest/v1/user/sip/accounts/<AccountID>/archive_voicemail_messages

Очистка архива голосовых сообщений

GET

/rest/v1/user/sip/accounts/<AccountID>/archive_voicemail_messages/<Date>/<Id>

Получение метаданных голосового сообщения из архива

PATCH

/rest/v1/user/sip/accounts/<AccountID>/archive_voicemail_messages/<Date>/<Id>

Установка статуса 'ошибка' архивному голосовому сообщению

DELETE

/rest/v1/user/sip/accounts/<AccountID>/archive_voicemail_messages/<Date>/<Id>

Удаление голосового сообщения из архива

GET

/rest/v1/user/sip/accounts/<AccountID>/archive_voicemail_messages/<Date>/<Id>/recording

Получение файла записи голосового сообщения из архива

Для всех запросов:
Тип домена: рабочий

Получение списка сообщений голосовой почты из архива

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

В списке присутствуют все указанные сообщения за интервал времени, привязанные к номеру абонента.
Если используется Endpoint с датой, то исходным множеством являются все сообщения за эту дату.
В противном случае необходимо указывать GET-параметр 'interval'.

Запрос

Пример запроса
GET /rest/v1/user/sip/accounts/c7e163c6-8b5e-cb6e-7bf4-441a912ff0b9/archive_voicemail_messages?inteval=["2022-10-28","2022-10-29"] HTTP/1.1

GET /rest/v1/user/sip/accounts/c7e163c6-8b5e-cb6e-7bf4-441a912ff0b9/archive_voicemail_messages/2022-10-28 HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json

[
  {
    "id": "c2043c10-0184-1ec8-cb0b-7cd30a921f58",
    "nativeId": "20221028-161946505-13.wav",
    "dateTime": "2022-10-28T16:19:46.505Z",
    "from": "9274137274",
    "messageState": "new",
    "statusText": null,
    "listenedDateTime": null,
    "archivedDateTime": null,
    "recording": {
      "author_id": "",
      "hasha": "md5;1A55FB50B63CF31DBEFE5FC680D0798C",
      "link": "fs://00000000-0000-0000-0000-000000000000/attachments_auto/test.okteller.ru/telephony/VoicemailMessages/2022-10-28/c2/04/3c/10-0184-1ec8-cb0b-7cd30a921f58/recording/content",
      "mtime": "2022-10-28T13:19:46Z",
      "name": "20221028-162946505-13.wav",
      "size": 21804
    },
    "size": 21804
  },
  {
    "id": "21d27ce0-0184-1ec7-cf64-7cd30a921f58",
    "nativeId": "20221028-162842083-13.wav",
    "dateTime": "2022-10-28T16:28:42.083Z",
    "from": "13",
    "messageState": "archived",
    "statusText": null,
    "listenedDateTime": null,
    "archivedDateTime": "2022-10-28T13:29:21Z",
    "recording": {
      "author_id": "",
      "hasha": "md5;242335DB1542623B292E594F018079FA",
      "link": "fs://00000000-0000-0000-0000-000000000000/attachments_auto/test.okteller.ru/telephony/VoicemailMessages/2022-10-28/21/d2/7c/e0-0184-1ec7-cf64-7cd30a921f58/recording/content",
      "mtime": "2022-10-28T13:28:42Z",
      "name": "20221028-162842083-13.wav",
      "size": 388442
    },
    "size": 388442
  }
]

Очистка архива голосовых сообщений

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

Удаление сообщений из архива производится с применением интервала в 3 года.
Если в архиве находятся более ранние сообщения, их очистка возможна через одиночные удаления, через отсоединение партиции БД и каталогов с датами в файловом хранилище, а также путем полной очистки коллекции 'telephony/VoicemailMessages' администратором.

Удаление сообщений, не переведенных в состояние 'archived' через абонентскую функцию или компонентом IVR-сценария "Голосовая почта".

Запрос

Пример запроса
CLEAR /rest/v1/user/sip/accounts/c7e163c6-8b5e-cb6e-7bf4-441a912ff0b9/archive_voicemail_messages HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 204 No Content

Получение метаданных голосового сообщения из архива

Запрос

Пример запроса
GET /rest/v1/user/sip/accounts/c7e163c6-8b5e-cb6e-7bf4-441a912ff0b9/archive_voicemail_messages/2022-10-28/21d27ce0-0184-1ec7-cf64-7cd30a921f58 HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "21d27ce0-0184-1ec7-cf64-7cd30a921f58",
  "nativeId": "20221028-162842083-13.wav",
  "dateTime": "2022-10-28T16:28:42.083Z",
  "from": "13",
  "messageState": "archived",
  "statusText": null,
  "listenedDateTime": null,
  "archivedDateTime": "2022-10-28T13:29:21Z",
  "recording": {
    "author_id": "",
    "hasha": "md5;242335DB1542623B292E594F018079FA",
    "link": "fs://00000000-0000-0000-0000-000000000000/attachments_auto/test.okteller.ru/telephony/VoicemailMessages/2022-10-28/21/d2/7c/e0-0184-1ec7-cf64-7cd30a921f58/recording/content",
    "mtime": "2022-10-28T13:28:42Z",
    "name": "20221028-162842083-13.wav",
    "size": 388442
  },
  "size": 388442
}

Установка статуса 'ошибка' архивному голосовому сообщению

Устанавливает статус 'error' и опционально текст описания ошибки в поле 'statusText'.

Статус ошибки - конечный. Его дальнейшего изменения не предусмотрено.

Запрос

Пример запроса
PATCH /rest/v1/user/sip/accounts/c7e163c6-8b5e-cb6e-7bf4-441a912ff0b9/archive_voicemail_messages/2022-10-28/21d27ce0-0184-1ec7-cf64-7cd30a921f58 HTTP/1.1
Content-Type: application/json

{
  "messageState": "error",
  "statusText": "Какое-то описание ошибки"
}

Ответ

Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "20221011-135436307-13",
  "dt": "2022-10-11T13:54:36.307Z",
  "from_number": "13",
  "status": "listened"
}

Удаление голосового сообщения из архива

Удаляет указанное голосовое сообщение.
Не влияет на сервис голосовой почты и MWI.
Если исходное голосовое соообщение к моменту удаления из архива еще не удалено, доступ к нему останется через компонент сценария и абонентскую функцию 'voicemail'.

Запрос

Пример запроса
DELETE /rest/v1/user/sip/accounts/c7e163c6-8b5e-cb6e-7bf4-441a912ff0b9/archive_voicemail_messages/2022-10-28/21d27ce0-0184-1ec7-cf64-7cd30a921f58 HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 204 No Content

Получение файла записи голосового сообщения из архива

Можно скачать записи как архивных сообщений, так и новых и уже прослушанных.
Не влияет на сервис голосовой почты и MWI, не влечет перемещения исходного голосового сообщения из ящика новых в ящик прослушанных сообщений.

Запрос

Пример запроса
GET /rest/v1/user/sip/accounts/c7e163c6-8b5e-cb6e-7bf4-441a912ff0b9/archive_voicemail_messages/2022-10-28/21d27ce0-0184-1ec7-cf64-7cd30a921f58/recording HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 200 OK
Content-Type: media/x-wav

BINARY BODY OF RECORING