Общая информация:
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' -->
Для конфигурации шаблона используются тэги:
- Тэг отделяющий начало и конец конфигурации отдельного параметра
<property></property>
Если в поле должны быть использованы определенные символы, то в открывающем тэге необходимо будет указать параметр regexp
<property ename="Наименование" regexp="[^!~`№$%&\\\|/,{}()?+^\[\]"' а-яА-Я]*"> - Тэг определяющий тип параметра используется совместно с тэгом <property> основные используемые значения:
<etype></etype>
SEPARATOR - разделитель STR_255 – строка длинной 255 символов ENUM_INT – переключатель передающий в ноду числовое значение 0 или 1 ENUM_STR – переключатель передающий в ноду числовое значение FALSE или TRUE
- Тэг с наименованием которое будет отображаться перед полем для заполнения
<elabel> </elabel>
- Тэг с кратким описанием которое будет появляться при наведении на наименование или поле для заполнения:
<edescr></edescr>
- Тэг позволяющий скрывать или отображать параметр:
<evisibility></evisibility>
- Тэг который содержит ноду которую нужно будет переслать на терминал
<oid> </oid>
Один тэг <property> может содержать несколько <oid> с нодами
Как пример разберу создание шаблона для настройки PPPoE сервиса, VoIP и Wi-Fi f:
- После заполнения строк с версией и открывающего тега создадим разделитель для удобства просмотра
<property ename="PPP"> <etype>SEPARATOR</etype> <elabel>PPP</elabel> <evisibility>1</evisibility> </property> - После разделителя будут указаны Параметры конфигурирующие включение сервиса, логин и пароль, 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> - Далее создадим еще один разделитель который будет разделять настройки PPP и VoIP:
<property ename="VOIP"> <etype>SEPARATOR</etype> <elabel>VOIP</elabel> <evisibility>1</evisibility> </property> - Далее укажем настройки которые нужно будет применить для 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> - Укажем еще один разделитель который визуально отделит конфигурацию для Wi-Fi:
<property ename="WI-FI"> <etype>SEPARATOR</etype> <elabel>Wi-Fi</elabel> <evisibility>1</evisibility> </property> - После укажем перечислим настройки которые необходимо передать на 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> - Последним шагом будет закрывающий тэг который обозначает конец конфигурации
Ниже приведен полный файл конфигурации и как это будет выглядеть в графическом интерфейсе:
<?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="[^!~`№$%&\\\\|/,{}()?+^\[\]"' а-яА-Я]*">
<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>

