Opened 6 years ago

Last modified 6 years ago

#372 new улучшение

Окно VE-01: групповое редактирование параметров

Reported by: san Owned by: alx
Priority: низкий Milestone: 2 очередь
Component: web-интерфейс (sw) Keywords:
Cc:

Description (last modified by san)

Было бы неплохо дать пользователю возможность изменять значения настроек одновременно в нескольких канальных окончаниях. Например, понадобилось добавить в регулярное выражение всех FxS что-то и если окончаний много, то через веб-интерфейс делать это не удобно. Выручает то, что можно взять конфиг файл и воспользоваться функцией автозамены в текстовом редакторе. Но всё-же удобней было бы если такие возможности были в веб-интерфейсе.

p.s.
Во время написания #371 у меня возникла идея: разрешить пользователю создавать шаблоны(переменные) и использовать их в полях настроек.
Например пользователь создаёт шаблон $MY_IP$ = 192.168.0.254, а в поле SIP URI окончаний пишет: 333@$MY_IP$.
Или шаблон $LOCAL_NUMS$ = 23[5,6]\d{2}, и потом использует его в полях рег. выражениями как-то так: ^(?!$LOCAL_NUMS$)
При изменении шаблона, изменения автоматически попадают во все места где он используется.

Change History (5)

comment:1 by san, 6 years ago

Description: modified (diff)

in reply to:  description comment:2 by alx, 6 years ago

Было бы неплохо дать пользователю возможность изменять значения настроек одновременно в нескольких канальных окончаниях.

Дублирует ve:#113.

Я не возражаю, если ты сможешь сформулировать алгоритм и предложить вариант пользовательского интерфейса. До сих пор сформулировать такое предложение никто не смог...

возникла идея: разрешить пользователю создавать шаблоны(переменные) и использовать их в полях настроек.

Я не понял мысль о шаблонах. Как сейчас выглядит процесс:

  1. Создаются канальные окончания.

Как предлагается делать в описании тикета:

  1. Создаются шаблоны.
  2. Создаются канальные окончания с использованием шаблонов в конфигурационных параметрах.

Насколько я вижу, в предложенном варианте действий больше, чем в уже существующем. В чем же улучшение? В голову приходит только случай, когда, например, SIP-прокси имеет очень длинное имя, например proxy.sip.my.very.long.domain.name, и оператор создает шаблон $P=proxy.sip.my.very.long.domain.name - тогда вместо proxy.sip.my.very.long.domain.name можно будет вводить $P. Да и то это работает только если такое имя требуется вводить в нескольких разных полях. Для создания нескольких однотипных канальных окончаний есть функция клонирования, в которой существующее окончание является шаблоном для нового...

При изменении шаблона, изменения автоматически попадают во все места где он используется.

Насколько я понимаю, шаблон используется "в местах" лишь в течение относительно короткого промежутка времени между созданием канального окончания (с использованием шаблона) и его записью в плату, то есть он существует в течение нескольких минут. Учитывая это, степень полезности данной функции мне не кажется очень высокой...

comment:3 by san, 6 years ago

Дублирует ​ve:#113.

Странно, специально искал но не нашел его.
В любом случае этот тикет больше к вебморде, чем к ve-01, предлагаю закрыть ve:#113, а этот оставить.

Про шаблоны.
В моей идее предлагается поля настроек в которые введены имена шаблонов, так и сохранять с именами шаблонов. А подстановку значений делать когда значение поля куда-нибудь понадобилось.

in reply to:  3 comment:4 by alx, 6 years ago

Replying to san:

В моей идее предлагается поля настроек в которые введены имена шаблонов, так и сохранять с именами шаблонов.

Тогда это предложение стоит перенести в sip_ua - ведь это платам VE-01 и VE-02 ты предлагаешь добавить новый функционал по подстановке шаблонов...

И здесь возникает еще один нехороший момент. Сейчас при вводе значений конфигурационных параметров веб-интерфейс выполняет проверку (более или менее полную) валидности значений перед передачей конфигурации плате VE-01/VE-02. Если пользователь по ошибке ввел недопустимое значение, он сразу получит сообщение типа "Значение такого-то параметра должно быть в диапазоне 10...99". То есть оператор сразу увидит, где и какую ошибку он допустил. Если же значением параметра будет какой-то шаблон, то при изменении значения шаблона веб-интерфейс не будет знать, где значение этого шаблона будет использовано, и поэтому не сможет проверить допустимость введенного значения. В результате получится, что оператор ввел новое значение шаблона, записал (успешно) шаблон в плату и пошел довольный домой. А о том, что плата новое значение не приняла, так как оно оказалось недопустимым, он и не узнает (если только не посмотрит ей в лог)...

in reply to:  3 comment:5 by alx, 6 years ago

Replying to san:

Дублирует ​ve:#113.

В любом случае этот тикет больше к вебморде, чем к ve-01, предлагаю закрыть ve:#113, а этот оставить.

Ты в качестве примера use case пишешь: "Например, понадобилось добавить в регулярное выражение всех FxS что-то". Для выполнения этой задачи веб-интерфейс для каждого канального окончания (хорошо, для каждого канального окончания типа FXS) должен:

  • запросить у платы конфигурацию канального окончания;
  • модифицировать значение конфигурационного параметра;
  • записать модифицированную конфигурацию обратно в плату.

Так делать, конечно, можно, но как-то очень неоптимально получается - если канальных окончаний много, то и вычитывать придется большой объем информации. Даже с учетом того, что последний пункт можно оставить на нажатие "Применить"... Ты, наверное, замечал, что если канальных окончаний много, то информация в диалог конфигурации платы загружается с заметной задержкой, несколько секунд. А ведь это всего лишь читается список канальных окончаний, где их тип и URI (и еще PCM-код с реальным именем за каким-то чертом, надо убрать!). Полная конфигурация же длиннее в разы! Сколько будет вычитываться конфигурация 250 канальных окончаний? Несколько минут? Не будет ли лучше просто передать указание о добавлении чего-то непосредственно плате VE-01, чтобы она уже у себя внутри все быстро сделала?

Хотя, с другой стороны, в SW-01 есть механизм кеширования, его можно задействовать для чтения конфигурации без реального запроса к VE-01...

Note: See TracTickets for help on using tickets.