Общая информация:

XML шаблон создается отдельно под каждый тип ONT или для класса.

Название файла шаблона должно полностью соответствовать названию модели или названию класса.

Структура конфигурации xml шаблона схожа с языком HTML. В ней так же используются открывающие и закрывающие тэги между которыми указываются параметры или другие тэги участвующие в настройке терминала. Как пример открывающий и закрывающие тэги которые используются в начале файла и в конце:

<properties></properties>

Для указания комментария используются следующие символы:

<!--текст комментария-->


Первым шагом будет добавление пустого шаблона.

Для этого нужно в панели меню EMS нажать на подменю ACS и выбрать "Настройка XML-шаблонов параметров устройств". После чего откроется окно редактор шаблонов

Далее нужно перейти в нужный класс и нажать кнопку "Создать новый шаблон, Откроется окно с запросом ввода имени шаблона с уже указанным расширением .xml

Новый файл с шаблоном всегда будет начинаться со строки указывающей версию xml и используемой кодировкой, а так же в комментарии будет указано какой пользователь создал шаблон и когда:

<?xml version="1.0" encoding="UTF-8"?>
<!--
	 GUI.EMS Short params created 2026-01-30 03:40:13 by 'webLisA'
-->

Для конфигурации шаблона используются тэги:

  1. Тэг отделяющий начало и конец конфигурации отдельного параметра
    <property></property>

    Если в поле должны быть использованы определенные символы, то в открывающем тэге необходимо будет указать параметр regexp

    <property ename="Наименование" regexp="[^!~`№$%&amp;\\\|/,{}()?+^\[\]&quot;&apos; а-яА-Я]*">
  2. Тэг определяющий тип параметра используется совместно с тэгом <property> основные используемые значения:
    <etype></etype>

    SEPARATOR - разделитель
    STR_255 – строка длинной 255 символов
    ENUM_INT – переключатель передающий в ноду числовое значение 0 или 1
    ENUM_STR – переключатель передающий в ноду числовое значение FALSE или TRUE
  3. Тэг с наименованием которое будет отображаться перед полем для заполнения
    <elabel> </elabel>
  4. Тэг с кратким описанием которое будет появляться при наведении на наименование или поле для заполнения:
    <edescr></edescr> 
  5. Тэг позволяющий скрывать или отображать параметр:
    <evisibility></evisibility>
  6. Тэг который содержит ноду которую нужно будет переслать на терминал
    <oid> </oid>

    Один тэг <property> может содержать несколько <oid> с нодами


Как пример разберу создание шаблона для настройки PPPoE сервиса, VoIP и Wi-Fi f:

  1. После заполнения строк с версией и открывающего тега создадим разделитель для удобства просмотра
    <property ename="PPP">
            <etype>SEPARATOR</etype>
            <elabel>PPP</elabel>
            <evisibility>1</evisibility>
    </property>
  2. После разделителя будут указаны Параметры конфигурирующие включение сервиса, логин и пароль, vlan-id и разрешение редактировать сервис пользователю без прав администратора
    <!-- включение PPP сервиса-->
    
    <property ename="PPPoE enable">
        <etype>ENUM_STR</etype>
        <evalue>Disabled</evalue>
        <elabel>PPPoE enable</elabel>
        <enumManager>org.eltex.ems.web.common.propitem.enumManager.EnabledDisabledManager</enumManager>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.WANDevice.5.WANConnectionDevice.1.WANPPPConnection.1.Enable</oid>
    </property> 
    
    <!-- Логин от учетной записи PPP--->
    
    <property ename="ppp_login">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Login</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.WANDevice.5.WANConnectionDevice.1.WANPPPConnection.1.Username</oid>
    </property>
    
    <!-- Пароль от учетной записи PPP--->
    
    <property ename="ppp_password">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Password</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <epassword>yes</epassword>
        <oid>InternetGatewayDevice.WANDevice.5.WANConnectionDevice.1.WANPPPConnection.1.Password</oid>
    </property>
    
    <!-- VLAN для сервиса PPP--->
    
    <property ename="vlan id">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>VLAN ID</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.WANDevice.5.WANConnectionDevice.1.WANPPPConnection.1.X_BROADCOM_COM_VlanMuxID</oid>
    </property>
    
    <!-- Разрешение редактировать сервис пользователю без прав администратора--->
    
    <property ename="Allow user to setting PPP">
        <etype>ENUM_INT</etype>
        <evalue>0</evalue>
        <elabel>Разрешить настройку PPP пользователю</elabel>
        <evisibility>1</evisibility>
        <enumManager>org.eltex.ems.web.common.propitem.AcsEnableDisableManager</enumManager>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <oid>InternetGatewayDevice.WANDevice.5.WANConnectionDevice.1.WANPPPConnection.1.X_BROADCOM_COM_UserDefinedAuthData</oid>
    </property>  
  3. Далее создадим еще один разделитель который будет разделять настройки PPP и VoIP:
    <property ename="VOIP">
        <etype>SEPARATOR</etype>
        <elabel>VOIP</elabel>
        <evisibility>1</evisibility>
    </property>
  4. Далее укажем настройки которые нужно будет применить для VoIP (Сервер, включение 1 и 2 порта для телефонии, назначение на порты номера и пароля для авторизации):
    <!-- Указание сервера для авторизации--->
    <property ename="sip proxy">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>SIP proxy</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.ProxyServer</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServer</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.OutboundProxy</oid>
    </property>
    
    <!-- Включение 1 порта--->
    
    <property ename="port 1 enable">
        <etype>ENUM_STR</etype>
        <evalue>Disabled</evalue>
        <elabel>Port #1 enable</elabel>
        <enumManager>org.eltex.ems.web.common.propitem.enumManager.EnabledDisabledManager</enumManager>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.Enable</oid>
    </property>
    
    <!-- Указание номера для 1 порта--->
    
    <property ename="port 1 number">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Port #1 number</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.CallingFeatures.CallerIDName</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.DirectoryNumber</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.AuthUserName</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.URI</oid>
    </property>
    
    <!-- Указание пароля для 1 порта--->
    
    <property ename="port 1 password">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Port #1 password</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <epassword>yes</epassword>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.AuthPassword</oid>
    </property>
    
    <!-- Включение 1 порта--->
    
    <property ename="port 2 enable">
        <etype>ENUM_STR</etype>
        <evalue>Disabled</evalue>
        <elabel>Port #2 enable</elabel>
        <enumManager>org.eltex.ems.web.common.propitem.enumManager.EnabledDisabledManager</enumManager>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.Enable</oid>
    </property>
    
    <!-- Указание номера для 2 порта--->
    
    <property ename="port 2 number">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Port #2 number</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.CallingFeatures.CallerIDName</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.DirectoryNumber</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.SIP.AuthUserName</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.SIP.URI</oid>
    </property>
    
    <!-- Указание пароля для 2 порта--->
    
    <property ename="port 2 password">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Port #2 password</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <epassword>yes</epassword>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.SIP.AuthPassword</oid>
    </property>
    
    <!-- Разрешение редактировать сервис пользователю без прав администратора--->
    
    <property ename="Allow user to setting voip">
        <etype>ENUM_INT</etype>
        <evalue>0</evalue>
        <elabel>Разрешить настройку VOIP пользователю</elabel>
        <evisibility>1</evisibility>
        <enumManager>org.eltex.ems.web.common.propitem.AcsEnableDisableManager</enumManager>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <oid>InternetGatewayDevice.Services.VoiceService.1.X_BROADCOM_COM_UserDefinedData</oid>
    </property>
  5. Укажем еще один разделитель который визуально отделит конфигурацию для Wi-Fi:
    <property ename="WI-FI">
        <etype>SEPARATOR</etype>
        <elabel>Wi-Fi</elabel>
        <evisibility>1</evisibility>
    </property>
  6. После укажем перечислим настройки которые необходимо передать на ONT:
    <!-- Включение Wi-Fi--->
    
    <property ename="WifiEnable">
        <etype>ENUM_INT</etype>
        <enumManager>org.eltex.ems.web.common.propitem.enumManager.Enabled1Disabled0Manager</enumManager>
        <evalue>Disabled</evalue>
        <elabel>Включить Wi-Fi</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.LANDevice.1.WLANConfiguration.#1.Enable</oid>
    </property>
    
    <!-- Указание SSID Wi-Fi--->
    
    <property ename="WifiLogin" regexp="[^!~`№$%&\\\\|/,{}()?+^\[\]"' а-яА-Я]*">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Wi-Fi login</elabel>
        <edescr>Логин пользователя на Wi-Fi. Запрещены пробелы, русские буквы и символы !~`№$%\\|/,{}()?+^[]"'.</edescr>
        <ewrite>1</ewrite>
        <emessage>Запрещены пробелы, русские буквы и символы !~`№$%\\|/,{}()?+^[]"'.</emessage>
        <oid>InternetGatewayDevice.LANDevice.1.WLANConfiguration.#1.SSID</oid>
    </property>
    
    <!-- Назаначение пароля для подключения к Wi-Fi--->
    
    <property ename="Wifipassword" regexp="[^а-яА-Я]*">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Wi-Fi password</elabel>
        <ewrite>1</ewrite>
        <epassword>yes</epassword>
        <emessage>Запрещены русские буквы.</emessage>
        <oid>InternetGatewayDevice.LANDevice.1.WLANConfiguration.#1.PreSharedKey.1.X_ELTEX_RU_PreSharedKey</oid>
    </property> 
  7. Последним шагом будет закрывающий тэг который обозначает конец конфигурации

Ниже приведен полный файл конфигурации и как это будет выглядеть в графическом интерфейсе:

<?xml version="1.0" encoding="UTF-8"?>
<properties>

    <!--     ==================== ppp ======================== -->
    <property ename="PPP">
        <etype>SEPARATOR</etype>
        <elabel>PPP</elabel>
        <evisibility>1</evisibility>
    </property>

     <property ename="PPPoE enable">
        <etype>ENUM_STR</etype>
        <evalue>Disabled</evalue>
        <elabel>PPPoE enable</elabel>
	    <enumManager>org.eltex.ems.web.common.propitem.enumManager.EnabledDisabledManager</enumManager>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.WANDevice.5.WANConnectionDevice.1.WANPPPConnection.1.Enable</oid>
    </property> 

    <property ename="ppp_login">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Login</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.WANDevice.5.WANConnectionDevice.1.WANPPPConnection.1.Username</oid>
    </property>

    <property ename="ppp_password">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Password</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <epassword>yes</epassword>
        <oid>InternetGatewayDevice.WANDevice.5.WANConnectionDevice.1.WANPPPConnection.1.Password</oid>
    </property>

    <property ename="vlan id">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>VLAN ID</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.WANDevice.5.WANConnectionDevice.1.WANPPPConnection.1.X_BROADCOM_COM_VlanMuxID</oid>
    </property>

    <property ename="Allow user to setting PPP">
        <etype>ENUM_INT</etype>
        <evalue>0</evalue>
        <elabel>Разрешить настройку PPP пользователю</elabel>
        <evisibility>1</evisibility>
        <enumManager>org.eltex.ems.web.common.propitem.AcsEnableDisableManager</enumManager>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <oid>InternetGatewayDevice.WANDevice.5.WANConnectionDevice.1.WANPPPConnection.1.X_BROADCOM_COM_UserDefinedAuthData</oid>
    </property>

    <!--     ==================== VOIP ======================== -->
    <property ename="VOIP">
        <etype>SEPARATOR</etype>
        <elabel>VOIP</elabel>
        <evisibility>1</evisibility>
    </property>

    <property ename="sip proxy">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>SIP proxy</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.ProxyServer</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.RegistrarServer</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.SIP.OutboundProxy</oid>
    </property>

    <property ename="port1 enable">
        <etype>ENUM_STR</etype>
        <evalue>Disabled</evalue>
        <elabel>Port #1 enable</elabel>
        <enumManager>org.eltex.ems.web.common.propitem.enumManager.EnabledDisabledManager</enumManager>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.Enable</oid>
    </property>

    <property ename="port1 number">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Port #1 number</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.CallingFeatures.CallerIDName</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.DirectoryNumber</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.AuthUserName</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.URI</oid>
    </property>

    <property ename="port1 password">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Port #1 password</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <epassword>yes</epassword>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.1.SIP.AuthPassword</oid>
    </property>

    <property ename="port2 enable">
        <etype>ENUM_STR</etype>
        <evalue>Disabled</evalue>
        <elabel>Port #2 enable</elabel>
        <enumManager>org.eltex.ems.web.common.propitem.enumManager.EnabledDisabledManager</enumManager>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.Enable</oid>
    </property>

    <property ename="port2 number">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Port #2 number</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.CallingFeatures.CallerIDName</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.DirectoryNumber</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.SIP.AuthUserName</oid>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.SIP.URI</oid>
    </property>

    <property ename="port2 password">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Port #2 password</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <epassword>yes</epassword>
        <oid>InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.1.Line.2.SIP.AuthPassword</oid>
    </property>

    <property ename="Allow user to setting voip">
        <etype>ENUM_INT</etype>
        <evalue>0</evalue>
        <elabel>Разрешить настройку VOIP пользователю</elabel>
        <evisibility>1</evisibility>
        <enumManager>org.eltex.ems.web.common.propitem.AcsEnableDisableManager</enumManager>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <oid>InternetGatewayDevice.Services.VoiceService.1.X_BROADCOM_COM_UserDefinedData</oid>
    </property>

    <!--     ====================  Wi-Fi ================ -->
    <property ename="WI-FI">
        <etype>SEPARATOR</etype>
        <elabel>Wi-Fi</elabel>
        <evisibility>1</evisibility>
    </property>

    <property ename="WifiEnable">
        <etype>ENUM_INT</etype>
        <enumManager>org.eltex.ems.web.common.propitem.enumManager.Enabled1Disabled0Manager</enumManager>
        <evalue>Disabled</evalue>
        <elabel>Включить Wi-Fi</elabel>
        <edescr></edescr>
        <ewrite>1</ewrite>
        <evisibility>1</evisibility>
        <oid>InternetGatewayDevice.LANDevice.1.WLANConfiguration.#1.Enable</oid>
    </property>

    <property ename="WifiLogin" regexp="[^!~`№$%&amp;\\\\|/,{}()?+^\[\]&quot;&apos; а-яА-Я]*">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Wi-Fi login</elabel>
        <edescr>Логин пользователя на Wi-Fi. Запрещены пробелы, русские буквы и символы !~`№$%\\|/,{}()?+^[]"'.</edescr>
        <ewrite>1</ewrite>
        <emessage>Запрещены пробелы, русские буквы и символы !~`№$%\\|/,{}()?+^[]"'.</emessage>
        <oid>InternetGatewayDevice.LANDevice.1.WLANConfiguration.#1.SSID</oid>
    </property>

    <property ename="Wifipassword" regexp="[^а-яА-Я]*">
        <etype>STR_255</etype>
        <evalue></evalue>
        <elabel>Wi-Fi password</elabel>
        <ewrite>1</ewrite>
        <epassword>yes</epassword>
        <emessage>Запрещены русские буквы.</emessage>
        <oid>InternetGatewayDevice.LANDevice.1.WLANConfiguration.#1.PreSharedKey.1.X_ELTEX_RU_PreSharedKey</oid>
    </property>

</properties>