Hc_valias - Управление виртуальными алиасами в рамках виртуальной АТС
Hc_valias_declare
Команда декларирует список виртуальных алиасов в рамках определенной виртуальной АТС, с возможностью указания определенной группы интерфейсов.
Аналог команды в CoCon:
domain/<DOMAIN>/alias/virtual/declare
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/valias_declare
Код HTTP-ответа:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:include schemaLocation="error.xsd" />
<!-- causeType-->
<xs:simpleType name="causeType">
<xs:restriction base="xs:string">
<xs:enumeration value="already_exists"/>
<xs:enumeration value="licence_limit"/>
<xs:enumeration value="domain_limit"/>
</xs:restriction>
</xs:simpleType>
<!-- warningType-->
<xs:complexType name="warningType">
<xs:attribute name="cause" type="causeType"/>
<xs:attribute name="domain" type="xs:string" use="required"/>
<xs:attribute name="interface" type="xs:string" use="required"/>
<xs:attribute name="address" type="xs:string" use="required"/>
</xs:complexType>
<!-- aliasType-->
<xs:complexType name="aliasType">
<xs:attribute name="domain" type="xs:string" use="required"/>
<xs:attribute name="interface" type="xs:string" use="required"/>
<xs:attribute name="address" type="xs:string" use="required"/>
<xs:attribute name="active" type="xs:boolean" use="required"/>
</xs:complexType>
<!-- successType-->
<xs:complexType name="successType">
<xs:sequence>
<xs:element name="alias" type="aliasType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- warningsType-->
<xs:complexType name="warningsType">
<xs:sequence>
<xs:element name="warning" type="warningType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- resultType-->
<xs:complexType name="resultType">
<xs:sequence>
<xs:element name="success" type="successType"/>
<xs:element name="warnings" type="warningsType"/>
</xs:sequence>
</xs:complexType>
<!-- in-->
<xs:element name="in">
<xs:complexType>
<xs:all>
<xs:element name="request">
<xs:complexType>
<xs:attribute name="domain" type="xs:string" use="required"/>
<xs:attribute name="context" type="xs:string" use="required"/>
<xs:attribute name="address" type="xs:string" use="required"/>
<xs:attribute name="group" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:choice>
<xs:element name="result" type="resultType" />
<xs:element name="error" type="errorType" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос:
http://192.168.1.21:9999/commands/valias_declare
<?xml version="1.0"?>
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="hc_valias_declare.xsd">
<request domain="biysk.local" context="ctx_from_local" address="240{600-602}" group="loc.gr"/>
</in>
Ответ:
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="hc_valias_declare.xsd">
<result>
<success>
<alias domain="biysk.local" interface="virtual:240600@biysk.local" address="240600" active="true"/>
<alias domain="biysk.local" interface="virtual:240601@biysk.local" address="240601" active="true"/>
<alias domain="biysk.local" interface="virtual:240602@biysk.local" address="240602" active="true"/>
</success>
<warnings/>
</result>
</out>
Hc_valias_list
Команда возвращает список виртуальных алиасов в рамках определенного домена, для определенной группы интерфейсов.
Аналог команды в CoCon:
domain/<DOMAIN>/alias/virtual/list
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/valias_list
Код HTTP-ответа:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа: aliases_list.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:include schemaLocation="aliases_list.xsd"/>
<!-- in-->
<xs:element name="in">
<xs:complexType>
<xs:all>
<xs:element name="request">
<xs:complexType>
<xs:attribute name="domain" type="xs:string" use="required"/>
<xs:attribute name="group" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:all>
<xs:element name="aliases">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="alias" type="aliasType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Пример 1:
Запрос: http://192.168.1.21:9999/commands/valias_list
<?xml version="1.0" encoding="UTF-8"?>
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="hc_valias_list.xsd">
<request domain="biysk.local" group="loc.gr"/>
</in>
Ответ:
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="hc_valias_list.xsd">
<aliases>
<alias domain="biysk.local" interface="virtual:240602@biysk.local" address="240602" active="true"/>
<alias domain="biysk.local" interface="virtual:240601@biysk.local" address="240601" active="true"/>
<alias domain="biysk.local" interface="virtual:240600@biysk.local" address="240600" active="true"/>
</aliases>
</out>
Пример 2:
Запрос: http://192.168.23.34:9999/commands/valias_list
<?xml version="1.0" encoding="UTF-8"?>
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="hc_valias_list.xsd">
<request domain="biysk.local"/>
</in
Ответ:
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="hc_valias_list.xsd">
<aliases>
<alias domain="biysk.local" interface="virtual:240602@biysk.local" address="240602" active="true"/>
<alias domain="biysk.local" interface="virtual:240601@biysk.local" address="240601" active="true"/>
<alias domain="biysk.local" interface="virtual:240600@biysk.local" address="240600" active="true"/>
</aliases>
</out>
Hc_valias_remove
Команда удаляет список виртуальных алиасов в рамках определенного домена, с возможностью указания определенной группы интерфейсов для фильтрации.
Аналог команды в CoCon:
domain/<DOMAIN>/alias/virtual/remove
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/valias_remove
Код 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">
<!-- aliasType-->
<xs:complexType name="aliasType">
<xs:attribute name="domain" type="xs:string" use="required"/>
<xs:attribute name="address" type="xs:string" use="required"/>
<xs:attribute name="group" type="xs:string" use="optional"/>
</xs:complexType>
<!-- aliasesType-->
<xs:complexType name="aliasesType">
<xs:sequence>
<xs:element name="alias" type="aliasType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- in-->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request">
<xs:complexType>
<xs:sequence>
<xs:element name="aliases" type="aliasesType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос:
http://192.168.1.21:9999/commands/valias_remove
<?xml version="1.0"?>
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="hc_valias_remove.xsd">
<request>
<aliases>
<alias domain="biysk.local" address="240601" group="loc.gr"/>
<alias domain="biysk.local" address="240602" group="loc.gr"/>
</aliases>
</request>
</in>
Ответ: 204