Hc_ss_voicemail - Команды управления сервисом голосовой почты
Hс_ss_voicemail_mailbox_modify
Изменить сообщения голосовой почты.
Команда позволяет промаркировать определенные сообщения голосовой почты.
Варианты маркировки :
- save - сохранить выбранный файл
- delete - удалить выбранный файл
- mark-as-read - пометить файл прочитанным
- mark-as-unread - пометить файл не прочитанным
Аналог команды в CoCon:
domain/<DOMAIN>/ss/voicemail/mailbox/modify
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/ss_voicemail_mailbox_modify
Код http ответа
204 – в случае успеха;
404 – в случае ошибки (с указанием ошибки в теле ответа).
Xsd схема XML запроса/ответа
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- modifyType -->
<xs:simpleType name="modifyType">
<xs:restriction base="xs:string">
<xs:enumeration value="mark-as-read"/>
<xs:enumeration value="mark-as-unread"/>
<xs:enumeration value="save"/>
<xs:enumeration value="delete"/>
</xs:restriction>
</xs:simpleType>
<!-- modifyRecordType-->
<xs:complexType name="modifyRecordType">
<xs:attribute name="action" type="modifyType" use="required"/>
<xs:attribute name="url" type="xs:string" use="required"/>
</xs:complexType>
<!-- requestType-->
<xs:complexType name="requestType">
<xs:sequence>
<xs:element name="modify" type="modifyRecordType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="domain" type="xs:string" use="required"/>
<xs:attribute name="address" type="xs:string" use="required"/>
</xs:complexType>
<!-- in-->
<xs:element name="in">
<xs:complexType>
<xs:all>
<xs:element name="request" type="requestType"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Пример 1
Запрос на изменение существующей записи: http://192.168.1.21:9999/commands/ss_voicemail_mailbox_modify. При этом файл перемещается в папку с именем save/.
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ss_voicemail_mailbox_modify.xsd">
<request domain="biysk.local" address="240473">
<modify action = "save" url = "http://system.restfs.ecss:9990/domain/biysk.local/subscribers/240473/voicemail/new/2019-11-15-09-53-32-83854416370.wav"/>
</request>
</in>
Ответ: 204
Пример 2
Запрос на изменение НЕ существующей записи (записи после изменения): http://192.168.1.21:9999/commands/ss_voicemail_mailbox_modify Файла в папке new уже нет.
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ss_voicemail_mailbox_modify.xsd">
<request domain="biysk.local" address="240473">
<modify action = "save" url = "http://system.restfs.ecss:9990/domain/biysk.local/subscribers/240473/voicemail/new/2019-11-15-09-53-32-83854416370.wav"/>
</request>
</in>
Ответ: 404
<?xml version="1.0" encoding="UTF-8"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ss_voicemail_mailbox_modify.xsd">
<error cmd="hc_ss_voicemail_mailbox_modify" reason="nothing_to_modify" body="{error,nothing_to_modify}"/>
</out>
Пример 3
Запрос на изменение записи по не существующему адресу: http://192.168.1.21:9999/commands/ss_voicemail_mailbox_modify
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ss_voicemail_mailbox_modify.xsd">
<request domain="biysk.local" address="240999">
<modify action = "save" url = "http://system.restfs.ecss:9990/domain/biysk.local/subscribers/240464/voicemail/new/2017-12-10-10-49-31-240471.wav"/>
</request>
</in>
Ответ: 404
<?xml version="1.0" encoding="UTF-8"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ss_voicemail_mailbox_modify.xsd">
<error cmd="hc_ss_voicemail_mailbox_modify" reason="wrong_address" body="{error,wrong_address}"/>
</out>
Пример: 4
Пометить запись голосовой почты как прочитанную.
Запрос:
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ss_voicemail_mailbox_modify.xsd">
<request domain="biysk.local" address="240473">
<modify action = "mark-as-read" url = "http://system.restfs.ecss:9990/domain/biysk.local/subscribers/240473/voicemail/new/2019-11-15-09-53-32-83854416370.wav"/>
</request>
</in>
Ответ: 204
Пример: 5
Удалить запись голосовой почты .
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ss_voicemail_mailbox_modify.xsd">
<request domain="biysk.local" address="240473">
<modify action = "delete" url = "http://system.restfs.ecss:9990/domain/biysk.local/subscribers/240473/voicemail/save/2019-11-15-09-53-32-83854416370.wav"/>
</request>
</in>
Ответ: 204
Начиная с версии 3.14.4 теперь можно использовать вместо указания URL символ * для удаления всех записей в vmail box.
Hс_ss_voicemail_mailbox_show
Просмотреть сообщения голосовой почты.
Аналог команды в CoCon:
domain/<DOMAIN>/ss/voicemail/mailbox/show
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/ss_voicemail_mailbox_show
Код http ответа
204 – в случае успеха;
404 – в случае ошибки (с указанием ошибки в теле ответа).
Xsd схема XML запроса/ответа
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- recordType-->
<xs:complexType name="recordType">
<xs:attribute name="from" type="xs:string" use="required"/>
<xs:attribute name="time" type="xs:string" use="required"/>
<xs:attribute name="duration" type="xs:integer" use="required">
<xs:annotation>
<xs:documentation xml:lang="en">
The duration of the calls' record (sec).
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="url" type="xs:string" use="required"/>
</xs:complexType>
<!-- requestType-->
<xs:complexType name="requestType">
<xs:attribute name="domain" type="xs:string" use="required"/>
<xs:attribute name="address" type="xs:string" use="required"/>
</xs:complexType>
<!-- responseType-->
<xs:complexType name="responseType">
<xs:sequence>
<xs:element name="unread" minOccurs="0" maxOccurs="unbounded" type="recordType"/>
<xs:element name="read" minOccurs="0" maxOccurs="unbounded" type="recordType"/>
<xs:element name="save" minOccurs="0" maxOccurs="unbounded" type="recordType"/>
</xs:sequence>
<xs:attribute name="size" type="xs:integer" use="required">
<xs:annotation>
<xs:documentation xml:lang="en">
The size of the mailbox (sec).
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- in-->
<xs:element name="in">
<xs:complexType>
<xs:all>
<xs:element name="request" type="requestType"/>
</xs:all>
</xs:complexType>
</xs:element>
<!-- out-->
<xs:element name="out">
<xs:complexType>
<xs:all>
<xs:element name="response" type="responseType"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос на просмотр списка голосовых сообщений:
http://192.168.1.21:9999/commands/ss_voicemail_mailbox_show
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ss_voicemail_mailbox_show.xsd">
<response size="6">
<unread url="http://system.restfs.ecss:9990/domain/biysk.local/subscribers/240473/voicemail/new/2019-11-15-09-53-32-83854416370.wav" duration="6" time="15.11.2019 02:53:32" from="83854416370"/>
</response>
</out>
Ответ:200
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ss_voicemail_mailbox_show.xsd">
<response size="6">
<unread url="http://system.restfs.ecss:9990/domain/biysk.local/subscribers/240473/voicemail/new/2019-11-15-09-53-32-83854416370.wav" duration="6" time="15.11.2019 02:53:32" from="83854416370"/>
</response>
</out>