forum.bitel.ru
http://forum.bitel.ru/

TelnetServiceActivator sa.command Escape character
http://forum.bitel.ru/viewtopic.php?f=44&t=11539
Страница 1 из 1

Автор:  Alijon [ 20 апр 2016, 11:27 ]
Заголовок сообщения:  TelnetServiceActivator sa.command Escape character

Добрый день!

Подскажите пожалуйста.
На TelnetServiceActivator для использования скриптовых финкций на команде в Microtik-е, как можно исключить некоторые символы: ";", "$'' в команде:
Код:
sa.command.serv.enable={:global funcAdd do={:local tList; :local res; :if ([:len [/queue simple find name="Internet 5M" ....


Пробовал ставить "\" перед этими символами, не получилось.

Заранее спасибо!

Автор:  Alijon [ 20 апр 2016, 15:46 ]
Заголовок сообщения:  Re: TelnetServiceActivator sa.command Escape character

Симворл ";" - удалось заменить переменной, настройки команды выглядат так:
Код:
SPR=;
sa.command.serv.enable={:global funcAdd do={:local tList$param(SPR) :local res$param(SPR) :if ([:len [/queue simple find name="Internet 5M"]]>0)  ....


Но "$" -таким способом не получается, выдает ошибку:
Код:
SPR=;
CONTR=$vContr
sa.command.serv.enable={:global funcAdd do={:local tList$param(SPR) :local res$param(SPR) :if ([:len [/queue simple find name=$param(CONTR)]]>0)  ....


Код:
04-20/11:57:02 ERROR [sa-p-13-t-44] EventWorker - Error on device:1 - java.lang.StringIndexOutOfBoundsException: String index out of range: 1
ru.bitel.bgbilling.common.BGException: Error on device:1 - java.lang.StringIndexOutOfBoundsException: String index out of range: 1
        at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.doTask(ServiceActivatorDeviceWorker.java:489)
        at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.internalDoTaskImpl(AsyncEventWorker.java:211)
        at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.internalDoTask(AsyncEventWorker.java:183)
        at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.doTasks(AsyncEventWorker.java:109)
        at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runWorker(ServiceActivatorDeviceWorker.java:239)
        at ru.bitel.bgbilling.kernel.event.EventWorker.internalRunWorker(EventWorker.java:139)
        at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runImpl(ServiceActivatorDeviceWorker.java:145)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 1
        at java.lang.String.charAt(String.java:658)
        at java.util.regex.Matcher.appendReplacement(Matcher.java:772)
        at ru.bitel.common.util.MacrosFormat.formatImpl(MacrosFormat.java:149)
        at ru.bitel.common.util.MacrosFormat.format(MacrosFormat.java:84)
        at ru.bitel.common.util.MacrosFormat.format(MacrosFormat.java:35)
        at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.AbstractTerminalServiceActivator.executeCommands(AbstractTerminalServiceActivator.java:731)
        at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.AbstractTerminalServiceActivator.serviceEnable(AbstractTerminalServiceActivator.java:886)
        at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.AbstractTerminalServiceActivator.serviceModify(AbstractTerminalServiceActivator.java:853)
        at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorSet.serviceModify(ServiceActivatorSet.java:413)
        at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.doCommand(ServiceActivatorDeviceWorker.java:512)
        at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.doTask(ServiceActivatorDeviceWorker.java:485)
        ... 15 more

Автор:  Amir [ 20 апр 2016, 15:56 ]
Заголовок сообщения:  Re: TelnetServiceActivator sa.command Escape character

$ - вроде можно указать так: $$()

; - если команды указывать не одной строкой через ;, а отдельными параметрами:
sa.command.serv.enable.1=co;mmand1
sa.command.serv.enable.2=comm;and2

Ну и наверно можем добавить макрос для ; аналогично $$().

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/