К оглавлению Взаимодействие с сервисом через внешние команды


Для изменения настроек пользователя и вообще для взаимодействия с сервисом из внешних приложений, была добавлена возможность выполнения сервисом команд заданых пользователем или внешней программой.
Для этого в каталоге сервиса существует подкаталог commands, в котором сервис постоянно проверяет наличие сигнальных файлов с расширением GO Наличие файла с таким расширением является для сервиса сигналом для начала выполнения пользовательских команд, которые располагаются в файле с таким же именем, но с расширением CMD.
Выполнение всех команд протоколируется в общем лог файле ..service\logs\commands.log. Кроме того сервис создаст файл с именем командного файла, но с расширением OK в каталоге ..service\commands. Данный файл представляет собой тот же командый файл, но перед каждой командой будет добавлен код ее выполнения. Коды возможных ошибок смотри в приложении.
Командные файлы представляют собой обычные текстовые файлы, где каждая строка представляет собой отдельную команду. Все текстовые параметры следует заключать в двойные кавычки, и вследствии этого, использование самого символа двойных кавычек в параметрах следует запретить.
Набор доступных команд:
КомандаДействие
USER "username" SETMONEY moneyУстанавливает на счету пользователя по имени "username", сумму в размере money
USER "username" ADDMONEY moneyДобавляет к счету пользователя по имени "username", сумму в размере money у.е.. Если число отрицательно, то произойдет вычитание со счета пользователя.
USER "username" ADDMONEY% moneyДобавляет к счету пользователя по имени "username", сумму в размере money процентов от текущего значения. Если число отрицательно, то произойдет вычитание со счета пользователя.
USER "username" SETTIME TOTAL time
USER "username" SETTIME MONTH time
USER "username" SETTIME WEEK time
USER "username" SETTIME DAY time
Устанавливает остаток времени TOTAL - всего, MONTH - в месяц, WEEK - в неделю, DAY - в день, пользователя по имени "username", в значение time секунд. Число должно быть положительным, в противном случае команда будет признана ошибочной.
USER "username" ADDTIME TOTAL time
USER "username" ADDTIME MONTH time
USER "username" ADDTIME WEEK time
USER "username" ADDTIME DAY time
Добавляет к остатку времени TOTAL - всего, MONTH - в месяц, WEEK - в неделю, DAY - в день, пользователя по имени "username", значение time секунд. Если число отрицательно, то произойдет уменьшение. В случае если результат операции будет являться отрицательным числом, значение будет установлено в нулевое.
USER "username" ADDTIME% TOTAL time
USER "username" ADDTIME% MONTH time
USER "username" ADDTIME% WEEK time
USER "username" ADDTIME% DAY time
Добавляет к остатку времени TOTAL - всего, MONTH - в месяц, WEEK - в неделю, DAY - в день, пользователя по имени "username", значение time процентов относительно текущего значения. Если число отрицательно, то произойдет уменьшение. В случае если результат операции будет являться отрицательным числом, значение будет установлено в нулевое.
USER "username" SETTRAF TOTAL traf
USER "username" SETTRAF MONTH traf
USER "username" SETTRAF WEEK traf
USER "username" SETTRAF DAY traf
Устанавливает остаток по трафику TOTAL - всего, MONTH - в месяц, WEEK - в неделю, DAY - в день, пользователя по имени "username", в значение traf байт. Число должно быть положительным, в противном случае команда будет признана ошибочной.
USER "username" ADDTRAF TOTAL traf
USER "username" ADDTRAF MONTH traf
USER "username" ADDTRAF WEEK traf
USER "username" ADDTRAF DAY traf
Добавляет к остатку по трафику TOTAL - всего, MONTH - в месяц, WEEK - в неделю, DAY - в день, пользователя по имени "username", значение traf байт. Если число отрицательно, то произойдет уменьшение. В случае если результат операции будет являться отрицательным числом, значение будет установлено в нулевое.
USER "username" ADDTRAF% TOTAL traf
USER "username" ADDTRAF% MONTH traf
USER "username" ADDTRAF% WEEK traf
USER "username" ADDTRAF% DAY traf
Добавляет к остатку по трафику TOTAL - всего, MONTH - в месяц, WEEK - в неделю, DAY - в день, пользователя по имени "username", значение traf процентов относительно текущего значения. Если число отрицательно, то произойдет уменьшение. В случае если результат операции будет являться отрицательным числом, значение будет установлено в нулевое.
USER "username" DIALIN YES/NO Устанавливает YES или отбирает NO, dial-in права у пользователя по имени "username".
USER "username" RESETTIME Производит сброс наработки по времени для пользователя "username"
USER "username" RESETTRAF Производит сброс наработки по трафику для пользователя "username"
USER "username" RESETSTATS Производит сброс статистики для пользователя "username"
USER "username" RESETMONEY Производит установку денежной суммы на счету пользователя "username", в соответствии с суммой заданной в тарифном плане
USER "username" PASSWORD "password" Производит изменение пароля пользователя "username" на новый - password
USER "username" MOVETOTRF "tariffname" moveflags Перевод пользователя по имени username на тарифный план tariffname.
Параметр moveflags это числовой параметр который составляется (с помощью суммирования) из следующих чисел:
1 - Сброс наработки по вермени и трафику после перевода
2 - Установка суммы на счету пользователя в соответствии с суммой заданой в тарифном плане
4 - Установка отсчета времени жизни аккаунта на время перевода
ADDUSER "username" "password" "NT Group" "RAE group" "fullname" "comments" "email" "ip" NTflags RAEflags Добавление пользователя username в систему и соответственно в RasAdminExt. Порядок и количество параметров менять нельзя, если параметр не задан, то используйте пустые двойные кавычки - "".

Следует подробнее пояснить параметры NTflags и RAEflags.

NTflags это числовой параметр который составляется (с помощью суммирования) из следующих чисел:
1 - Account disabled
2 - User can't change password
4 - Password don't expire
8 - Grant DialIn
16 - Add to local group (On Standalone servers)

RAEflags это также числовой параметр который составляется из следующих чисел:
1 - Не заносить информацию в общий лог
2 - Не заносить информацию в лог пользователя
4 - Разрешить одновременную работу
8 - Не взимать абонентную плату с пользователя
16 - Не сбрасывать наработку при первом подключении
32 - Не взимать абонентную плату до первого звонка
 

Общая схема правильного взаимодействия с сервисом:
  1. Создать текстовый файл с расширением CMD, содержащий необходимые команды (например ..service\commands\sample.cmd)
  2. Создать сигнальный файл с имененм таким же как и в п.1, но с расширением GO (например ..service\commands\sample.go)
  3. Обработать файл результата выполнения команд с именем как в п.1 и п.2, но с расширением OK (например ..service\commands\sample.ok)


Вернуться назад