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>

CODE

Пример:

Запрос:

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>
CODE

Ответ:

<?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>
CODE

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>
CODE


Пример 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>
CODE

Ответ:

<?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>
CODE

Пример 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
CODE

Ответ:

<?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>
CODE

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>

CODE

Пример:

Запрос:

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>
CODE

Ответ: 204