Для КС8а –выносов и Мини АТС
(безУКСовых АТС или выносов ВАМ)
--------==== KS to LAN
Server (K2L) ====--------
-
предназначен для общения с Цифровой Электронной
Автоматической Телефонной Станцией 'КВАНТ' и программами управления этой
станцией и взаимодействия с программами
тарификации типа
WinTariff32.
Как это происходит ? Очень просто -
компьютер с установленным сервером K2L подключается к ЦЭАТС 'КВАНТ'
посредством NULL-модемного кабеля, один конец которого воткнут в
COM-port компьютера, а другой - в COM-port ТЭЗа 'КС8x', входящего в
состав ЦЭАТС 'КВАНТ'.
После запуска K2L откроет COM-port,
проверит готовность станции и, если все в порядке, сообщит о готовности
к работе посредством веселенько-зелененькой надписи 'O N L I N E'
напротив имени соответствующего Блока Абонентских Линий (БАЛ) телефонной
станции (или злобненько-красненькой надписью сообщит об ошибке). Кстати,
каждый БАЛ программа K2L называет 'модулем'.
После того, как все модули станции
проверены, сервер K2L переходит в состояние ожидания соединения с
клиентом. В этом состоянии он отслеживает все события, происходящие со
станцией - перезапуски, пробегающие пакеты со статистикой или
тарификацией и т.д. Все эти события записываются в соответствующие LOG
или DAT - файлы, а о перезапусках сервер может отправлять уведомления на
указанный адрес электронной почты.
Клиенты к K2L подключаются через любые
физические или беспроводные линии, поддерживающие стек протоколов
TCP-IP. Наиболее часто это локальная сеть или модемное соединение,
однако в общем случае клиент и сервер K2L могут работать одновременно на
одной машине.
После того, как клиент подключен, он
получает возможность общаться со станцией - как в терминальном, так и в
пакетном режиме, а также получать накопленные сервером тарификационные
данные. Все прочие клиенты в это время могут только получать
тарификационные данные и ожидать, пока первый клиент отключится от
сервера.
*Это не
касается программы инсталлятора K2L, полученного по предварительной
договоренности, при этом никаких обязательных действий по настройке
производить не требуется.
Но, естественно, чтобы все вышеизложенное
стало реальностью, необходимо правильно сконфигурировать параметры
сервера K2L. Это достаточно просто, но для надежности требуются
некоторые пояснения.
Итак :
Все настройки и проч. делаются
только вручную*. Сервер НЕ содержит никаких конфигурационных
меню или диалогов. Меню 'Options' предназначено только для просмотра
текущих параметров и ни для чего более. В соответствии с последней модой
на конфигурационные файлы ВСЕ настройки хранятся в одном-единственном
файле формата XML. Этот файл должен называться K2L.XML и должен
находиться в той же директории, что и основной файл K2L.EXE.
Формат XML - это простой текстовый
формат, содержащий некую древовидную структуру. Файлы XML можно
редактировать обычным текстовым редактором, а увидеть эту самую
структуру можно, открыв его с помощью Microsoft Internet Explorer-а. Он
же сообщит об синтаксических ошибках, возможных при создании этого
файла.
Выглядит файл XML примерно так :
<?xml version="1.0"
<основной_тэг>
<тэг_1>
<тэг_1_1>
<тэг_1_1_1/>
</тэг_1_1>
</тэг_1>
<тэг_2/>
</основной_тэг> |
encoding= |
Windows |
1251
<!
<!
<!
<!
<!
<!
<!
<!
<! |
?> <!-- заголовок файла -->
- комментарий -->
- начало основного тэга -->
- начало первого тэга -->
- начало первого вложенного тэга
- еще один вложенный тэг целиком
- конец первого вложенного тэга -
- конец первого тэга -->
- второй тэг целиком -->
- конец основного тэга --> |
->
->
> |
Каждый тэг может иметь вложенные тэги,
данные и атрибуты и выглядит примерно так:
<Имя_Тэга/>
или
<Имя_Тэга Атрибут = "значение" Атрибут =
"значение"/>
или
<Имя_Тэга/>Данные_Тэга
или
<Имя_Тэга Атрибут = "значение"
<Вложенный_ТЭГ/> />Данные_Тэга
или даже
<Имя_Тэга Атрибут = "значение">
<Вложенный_ТЭГ/> Данные_Тэга </Имя_Тэга>
Рассмотрим файл K2L.XML. Основной тэг
этого файла должен иметь иметь имя <k2l_server>, т.е. файл должен
начинаться и заканчиваться так:
----------------------------------------------
<?xml version="1.0"
encoding="Windows-1251"?>
<k2l_server>Test Server
. . . . . .
</k2l_server>
В этом примере основной тэг K2L имеет
данные 'Test Server'. Эти данные представляют собой имя нашего сервера,
под которым он будет фигурировать в уведомлениях по электронной почте.
Итак, основной тэг <k2l_server> представляет из себя "корень" нашего
дерева. А вложенные тэги изображают "ветви". Вот какие вложенные тэги
может иметь наше дерево :
1) ТЭГ <regtext>. Обязательный. Содержит в данных строку регистрации
программы. Обычно записывается так:
<regtext>Строка регистрации
программы</regtext>
2) Тэг <modules> Обязательный. Содержит вложенные тэги <module> с
конфигурацией модулей и их подключения.
2.1) Тэг <module>. Родительский тэг <modules> должен содержать хотя бы
один тэг с таким именем. Данные тэга являются его именем. Может иметь
два атрибута:
2.1.a) Атрибут "TrmNum". Обязательный. Это номер данного модуля в общей
сети. Номера модулей могут быть от 0 до 255 и не должны повторяться.
2.1.b) Атрибут "Script". Необязательный. Это имя скрипта из п.6,
выполняемого после каждой перезагрузки этого модуля.
Также тэг <module> должен содержать
вложенный тэг <comport>
2.2.1) Tэг <comport>. Обязательный. Имеет
атрибуты - параметры
COM-порта.
2.2.1.a) Атрибут "Port". Oбязательный.
Имя COM-порта, например
Port = "COM1"
2.2.1.b) Атрибут "Baud" Необязательный,
по умолчанию 9600
2.2.1.c) Атрибут "DataBits".
Необязательный, по умолчанию 8
2.2.1.d) Атрибут "Parity".
Необязательный, по умолчанию "E"
Может быть "N", "O", или "E"
2.2.1.e) Атрибут "StopBits".
Необязательный, по умолчанию 1
3) Тэг <options>. Обязательный. Содержит
вложенные тэги с настройками сервера
3.1) Тэг <settings>. Содержит атрибуты -
технические параметры
3.1.a) Атрибут "ID". Обязательный. Уникальный идентификатор данного
сервера в общей сети.
3.1.b) Атрибут "CycleDelay". Необязательный. Задает минимальное время
выполнения одного цикла проверки модулей в миллисекундах. Минимально
возможное значение - 24, максималное - 100, однако более 55 не
рекомендуется. Если сервер сильно тормозит машину, то стоит увеличить
этот параметр. По умолчанию - 32
3.1.с) Атрибут "Priority".
Необязательный. Windows-приоритет сервера.
Может быть "HIGH", "REALTIME" или
"NORMAL" - по умолчанию.
3.1.d) Атрибут "FastExit". Необязательный. Если равен 1, то при закрытии
сервера не будет запрашиваться подтверждение. По умолчанию - 0.
3.1.e) Атрибут "AutoPopUp". Необязательный. Если равен 1, то при
рестартах станции окошко сервера будет всплывать поверх остальных окон.
По умолчанию - 0.
3.1.f) Атрибут "SendLog" Необязательный. Если равен 1, то для получения
терминального вывода станции клиенту необязательно посылать отдельный
запрос. По умолчанию - 0.
3.1.g) Атрибут "SaveData". Необязательный. Если равен 1, то сервер будет
сохранять все пакеты, пришедшие от станции, в отдельном файле. Этот файл
будет расположен в директории /data и иметь имя "ГГ-ММ-ДД.DAT".
"SaveData" по умолчанию равен 0
3.1.h) Атрибут "SaveBilling". Необязательный. Если равен 1, то сервер
будет сохранять все тарификационные пакеты, пришедшие от станции, в
отдельном файле. Этот файл будет расположен в директории /data и иметь
имя "ГГ-ММ-ДД.K8D". "SaveBilling" по умолчанию равен 0
3.2) Тэг <logging>. Необязательный. Атрибуты этого тэга определяют
режимы сохранения системных журналов.
3.2.a) Атрибут "SaveLog". Необязательный. Если равен 1, то сервер будет
сохранять весь терминальный вывод с подключенных модулей в директории
/log в файле "ГГ-ММ-ДД.LOG". По умолчанию равен 0
3.2.b) Атрибут "SaveSLog". Необязательный. Если равен 1, то сервер будет
сохранять журнал системных событий (системный лог) в директории /slog в
файле "ГГ-ММ-ДД.SLOG".По умолчанию равен 0
3.2.c) Атрибут "SysLogServer".
Необязательный. Это IP-адрес или
HostName так-называемого SysLogServera.
Протокол обмена с таким сервером и его назначение подробно описаны в
RFC3164. Для знающих скажу - Facility отсылаемых сообщений равно 16,
т.е. Local_Use_0. По умолчанию атрибут не задан.
3.3) Тэг <network>. Необязательный. Атрибуты определяют настройки
сетевых протоколов для общения с клиентами.
3.3.a) Атрибут "SysPort". Необязательный. Номер порта протокола UDP, на
котором сервер ждет клиентов. По умолчанию - 9022
3.3.b) Атрибут "CmdPort". Необязательный. Номер порта протокола UDP, по
которому сервер общается с клиентом. По умолчанию - не задан. При этом
произвольно выбирается системой.
3.3.c) Атрибут "TFTPPort".
Необязательный. Номер порта протокола
TFTP. Согласно RFC 1350,1782,1783,1784
должен быть (и по умолчанию есть) равен 69. Да-да, K2L умеет играть роль
TFTP-сервера, чтобы клиенты могли получать файлы с собранными пакетами
тарификации.
3.3.d) Атрибут "СheckTime".
Необязательный. Время проверки клиента
на доступность. Задается в циклах. 1 цикл
= 1000 / CycleDelay. По умолчанию - 15.
3.3.e) Атрибут "FreeTime". Необязательный. Время неответа клиента на
запросы, после которого клиент отключается принудительно. Задается в
циклах. Должен быть больше "CheckTime" По умолчанию равен 30.
3.4) Тэг <email>. Необязательный. Содержит атрибуты-настройки для
отправки уведомлений о перезагрузках станции по электронной почте.
3.4.a) Атрибут "SendNotice". Необязательный. Если равен 1, то
уведомления будут отправляться. По умолчанию - 0.
3.4.b) Атрибут "SMTPHost" Обязательный
при "SendNotice" = 1.
Имя сервера протокола SMTP.
3.4.c) Атрибут "UserName" Обязательный
при "SendNotice" = 1.
Имя пользователя на сервере протокола
SMTP.
3.4.d) Атрибут "Password" Обязательный
при "SendNotice" = 1.
Пароль пользователя на сервере протокола
SMTP.
3.4.d) Атрибут "MailFrom" Обязательный
при "SendNotice" = 1.
Адрес, с которого будет отправлено
письмо.
3.4.e) Атрибут "MailTo" Обязательный при
"SendNotice" = 1.
Адрес, на котроый будет отправлего
письмо.
4) Тэг <clients>. Необязательный. Содержит один или несколько тэгов
<client>, которые определяют адреса клиентов, которым разрешено
подключаться к серверу. Если отсутствует, то подключаться могут все.
4.1) Тэг <client>. см. пункт 4.
5) Тэг <passwords>. Обязательный.
Содержит один или несколько тэгов
<password>, которые определяют пароли
клиентов, которым разрешено
подключаться к серверу.
5.1) Тэг <password>. см. пункт 5.
6) Тэг <scripts>. Необязательный.
Содержит один или несколько тэгов-скриптов.
Название таких тэгов соответствуют именам
скриптов. Тэги-скрипты содержат вложенные тэги <cmd> - это просто
команды станции, и тэги <delay> - задержки в выполнении следующей
команды.
6.1) Тэг <cmd>. Пример: <cmd> VER
6.2) Тэг <delay>. Пример: <delay> 1000
Но лучше всего посмотреть все
вышесказанное на примере реального файла :
----------------------------------------------
<?xml version="1.0"
encoding="Windows-1251"?>
<k2l_server>Test Server
<regtext>Демонстрационная версия
программы</regtext>
<modules>
<module TrmNum="12">First
Module
<comport
Port = "COM1"
Baud = "9600"
DataBits = "8"
Parity = "E"
StopBits = "1"
/>
</module>
<module TrmNum="13"
Script="sample2">Second Module
<comport
Port = "COM2"
Baud = "9600"
DataBits = "8"
Parity = "E"
StopBits = "1"
/>
</module>
</modules>
<options>
<settings
ID="100"
CycleDelay="32"
Priority="HIGH"
FastExit="1"
AutoPopUp="1"
SendLog="1"
SaveBilling="0"
SaveData="0"
/>
<logging
SaveLog="1"
SaveSLog="1"
SysLogServer="0.0.0.0"
/>
<network
SysPort="9022"
CmdPort="0"
TFTPPort="69"
CheckTime="15"
FreeTime="30"
/>
<email
SendNotice="1"
SMTPHost="apollo.lv"
UserName="nikname"
Password="password"
MailFrom="supportkvant@gmail.com"
MailTo="37126514000@sms.lmt.lv"
/>
</options>
<clients>
<client>wincto3.nikname.lv</client>
<client>wincto2.nikname.lv</client>
<client>wincto1.nikname.lv</client>
<client>supportkvant@gmail.com</client>
<client>192.168.2.208</client>
</clients>
<passwords>
<password>default</password>
<password>nikname</password>
<password>phil</password>
</passwords>
<scripts>
<sample1>
<delay> 2000 </delay>
<cmd> VER </cmd>
<delay> 1000 </delay>
</sample1>
<sample2>
<cmd> TIME </cmd>
</sample2>
</scripts>
</k2l_server>
|