Свадебное фото Полоцк, Новополоцк, вся Беларусь

Вернуться на libraphoto.com


Краткая справка
Чупакабра (исп. chupacabras, chupar - сосать и cabra - коза, дословно - "сосущий коз", "козий вампир")
- мифическое существо высасывающее кровь у домашних животных через 2 маленькие дырочки на шее.

В нашем случае Чупакабра выгружает данные из информикса через дырочки, оставленные разработчиком...

Для правообладателей:
При написания программы не использовалось никаких сторонних (бес-) платных библиотек,
для компиляции исходных текстов применялись freeware (GPL) средства разработки.
Поэтому использование данной программы не нарушает чьих бы то ни было авторских прав.

Chupacabra dowload

Ещё одна программа для просмотра ama данных si2000

Тарифика
Самая последняя Tarifica364.rar, скачать

Описание сервиса Chupacabra.exe

Введение,общая концепция построения

Изначально этот сервис создавался для выгрузки AMA-записей из Информикса в unl-файлы с целью выдачи распечаток и архивирования.
В фирменном Искрателовском софте эта функциональность существует "для галочки". Распечатка AMA за месяц отнимала несколько часов
рабочего времени и имела формат вывода на печать вызывавший ужас у работников абонентского отдела.
И мне ничего не оставалось делать, как написать пакет программ, для избавления от рутины.

Всё шло хорошо, AMA выгружалась, Информикс не переполнялся, распечатки абонентам выдавались.
Но не тут-то было...
Однажды я получил странную телеграмму с требованием обеспечить доступ к базе данных АПУС по корпоративной сети.
Выполнить это требование даже на уровне Ethernet не представлялось возможным,

т.к. Si2000 v5
  • имеет внутреннюю сеть со своим набором IP-адресов, которые нельзя менять
  • сеть на коаксиале
  • лицензия на ПО Искрател привязана к конфигурации сети
  • отсутствует защита от несанкционированного доступа к копьютеру MN и самой Si2000
  • отсутствие документированных стандартных интерфейсов (telnet, консоль и т.д.)
Список можно продолжить...
Для выполнения поставленной задачи было реализовано следующее решение:
  • Во внутреннюю сеть Si2000 добавляется ещё один PC.
    системные требования:
    • Минимальные. У меня работает Celeron 1000mHz
    • Windows 2000Prof\XP Prof
  • в него устанавливается 2 сетевые карты.Одна в сети Si2000, вторая в корпоративной сети.
    Программы для сетевой защиты(фаирволл,антивирус)
В качестве интерфейса взаимодействия с ЦТЭ на втором компьютере используется (тупо и просто)
расшаренная директория с файлами, согласно требованиям ЦТЭ.
Сервис Chupacabra может быть запущен как на MN так и на 2-ом компьютере,а также на обоих.

У меня Chupacabra, запущенная на MN, конвертирует AMA cdr bin файлы в AMA unl файлы и по сети Si2000
отправляет их на второй компьютер в расшаренную директорию для биллинга.
Chupacabra, запущенная на 2-м компьютере, выгружает из Информикса аварии, передаёт на компьютер дежурного в ЛАЗ,
формирует файл состояния аварий для ЦТЭ и занимается отключением\включением должников.

Примечание:

На компьютере, где вы хотите установить Chupacabra должны быть установлены
Data Sources (ODBC)
Informix NewEra 3.1
Вопросы установки и настройки ПО Informix NewEra 3.1 и выходят за рамки этой статьи.
Что делает сервис:
  • автоматическая выгрузка из Информикса AMA-записей в unl-файлы
  • формирование с фильтрацией unl-файла для биллинга
  • передача текущего состояния аварий на компьютер дежурного
  • архивирование AMA-записей в unl-файлах архиватором RAR
  • копирование/перенос CDR-файлов из T:\Transfer в указанное место
    При этом возможно:
    • раскладывать в дерево каталогов вида ..\Node\Year\Month\Day
    • сливать CDR-файлы за сутки в один.
  • выгрузка счётчиков (Meters) в указанное место
  • отключение и включение абонентов-должников
  • выгрузка статистики из PMG в указанное место
  • периодическое копирование любых файлов из одной директории в другую
  • выгрузка статистики для ИВЦ
  • Тестирование абонентских линий

Инсталляция

    Настройка второго компьютера:

    Рекомендуется использовать компьютер, на котором установлен MN-Client.
  1. Сетевая карта в сторону Si2000:
      Пример:
    • MCA_A IP 192.168.1.1
    • MCA_B IP 192.168.1.2
    • MN IP 192.168.1.3
    • 2ой комп.
      • IP 192.168.1.4
      • MASK 255.255.255.0
      • Gateway - пусто

  2. Сетевая карта в сторону корпоративной сети:
      Пример:
    • IP 10.140.8.30
    • MASK 255.255.255.0
    • Gateway ваш корпоративный сервер

  3. В настройках фаирволла разрешить:
    SYSTEM TCP(In) IP: (сервер ЦТЭ) port:139,445
    SYSTEM TCP/UDP(In) IP: (MN-server) port:137-139,445

  4. Создать директории (*прим. все директории можно называть по-другому, но везде одинаково)
    T:\TransferОбщая директория
    T:\Transfer\alarmДля аварий
    T:\Transfer\suspДля вкл\откл
    T:\Transfer\ltuДля тестирования АЛ

  5. Создать пользователя mnadmin с паролем, как на MN.
  6. Создать пользователя, под которым вы будете работать (sysadmin).
  7. Создать пользователя для ЦТЭ, например csapus (имя и пароль согласовать с ЦТЭ)
    добавить в группу Users

  8. Расшарить T:\Transfer. Имя шары согласовать с ЦТЭ.
    User limitMaximum allowed

    Permissions:
    csapuschange+read
    mnadminchange+read
    sysadminfull control
    Удалить строку "Все".

    Security:
    Administratorsfull control
    mnadminfull control
    csapuslist folders and contents+read+write

  9. Залогиниться под mnadmin на MN-server.
    Убедиться, что шара T:\Transfer видна с компьютера MN, скопировать туда какой-нибудь файл.

Если вы хотите установить Chupacabra на второй компьютер.

(прим. Требуется при использовании функциональности
передача текущего состояния аварий на компьютер дежурного)
  1. Убедитесь в наличии ODBC
    My Copmputer->Control Panel->Administrative tools->Data Sources(ODBC)
    В дистрибутив ОС Win2000/XP ODBC входит.
    Для Win NT4.0 ODBC необходимо установить самостоятельно, проще всего установив пакет MS Office97
    В самой ODBC ничего настраивать не надо.

  2. Убедитесь в наличии Informix NewEra 3.1. Вопросы установки и настройки (где взять, как сломать)
    выходят за рамки этой статьи :)

  3. Создать пользователя mnadmin с паролем, как на MN, причислить его к лику администраторов.
  4. В настройках фаирволла разрешить:
    Chupacabra.exe TCP(Out) IP: 192.168.1.3 (MN) port: 1526
    Chupacabra.exe TCP(In) IP: (комп. дежурного ЛАЗ) port:1973

Собственно инсталляция:

Chupacabra работает под юзером mnadmin.
  1. My Copmputer->Control Panel->Administrative tools->Local Security Policy->Local Polices->User Rights Assigment-> [Log on as service]
    добавте туда mnadmin
  2. Распакуйте архив в целевой каталог, например c:\Chupacabra
  3. загрузитесь под логином mnadmin или другого юзера с правами администратора
  4. запустите из командной строки chupacabra.exe -i
  5. сервис инсталлируется в остановленном состоянии. Теперь идём сюда:

    Start->Settings->Control Panel->Administrative Tools->Services->Chupacabra->Properties

    [Log On]
    This account [.\mnadmin]
    Password [ваш_пароль_мн_админа]
    Confurm Password [ваш_пароль_мн_админа]

    [General]
    Startyp type: Automatic
Перед запуском сервис необходимо настроить
Запуск сервиса:
Start->Settings->Control Panel->Administrative Tools->Services->Chupacabra->[>]

Деинсталляция сервиса:
запустите из командной строки chupacabra.exe -u

Настройка

На данный момент настройка осуществляется с помощью ключей в реестре.
Графический интерфейс предусмотрен в следующей версии.

Внимание!

Если вы не используете какую-либо функциональность, это не значит что её не надо настраивать!
По умолчанию вся функциональность включена.
Чтобы отключить неиспользуемую функциональность надо установить её таймер на число, большее чем кол-во секунд в сутках.
Каждая функциональность перечисленная в настраивается своим ключом реестра.
Образцы настроек находятся в архиве в виде готовых *.reg файлов
Для настройки нужной функциональности необходимо запустить соответствующий reg-файл
а затем с помощью редактора реестра изменить неподходящие настройки на свои
Рассмотрим этот процесс подробнее:
Значения цветов:
эти параметры менять не нужно
настраивается пользователем
изменяется программой
комментарий

Настройка параметров коннекта к Информиксу

Файл informix.reg
[HKEY_LOCAL_MACHINE\SOFTWARE\SubliSoft\Chupacabra\Informix]
ПараметрКомментарий
"Driver"="NewEra Informix7 Driver"Имя драйвера ВД
"DB name"="mncommon"таблица
"Server"="ol_ваш_сервер"имя вашего сервера MN
"DSN"=""Должно быть пустым
"UID"="mnadmin"мнадмин
"UID"="ваш_пароль_мнадмина"его пароль
Все параметры типа dword в шестнадцатеричной системе

автоматическая выгрузка из Информикса AMA-записей

Файл ama_unload.reg
[HKEY_LOCAL_MACHINE\SOFTWARE\SubliSoft\Chupacabra\AMA Manager]
ПараметрКомментарий
"AMA table"="phone_call_1" Основная таблица
"AMA Table2"="phone_call_2" Резервная таблица
"AMA time field"="start_time" Поле начала записи
"Unload"=dword:00008029 Битовая маска что и как выгружать. От балды менять не советую
"AMA Scan Interval"=dword:00000258 Периодичность проверки выгружен ли файл (600 сек)
"Fields for unloading"="cgpn,cdpn,start_time,pulse_count,call_duration,unscallcause" Список полей для выборочной выгрузки
"IVCWhereSQL"=" AND ccr_record = 1" Фильтр для биллинга (выдавать только тарифицируемые)
"Unloading time"=dword:00000004 Время выгрузки (04:00)
"Hotel Timer"=dword:00000000
"Separator for AMA unloading"="|" Сепаратор полей unl-файла
"Rar backup path"="t:\ama_arc\" Путь для выгрузки архивированной AMA
"AMA copy path"="E:\ama" Путь для копирования AMA в дерево каталогов вида ..\Node\Year\Month\Day
"Selectiv Unload Path"="" Путь для выборочной выгрузки AMA (по умолчанию не производится)
"IVCTransferPath"="\\polockmn2\Transfer\" Каталог для биллинга
"AMA Store Folder"="c:\si2000\files\amg\store" Куда выгружать AMA
"RAR temp path"="c:\temp" временная папка для распаковки архивированой AMA
"Ext App"=""зарезервировано
Если выгрузка не требуется параметру "Unloading time" присваивается значение, превышающее число часов в сутках.

передача текущего состояния аварий на компьютер дежурного

Прим.
на компьютер дежурного должна быть установлена программа AlarmMonitor,
сервис Chupacabra на компьютер с 2мя сетевыми картами.

Файл alarm.reg
[HKEY_LOCAL_MACHINE\SOFTWARE\SubliSoft\Chupacabra\alarm_srv]
ПараметрКомментарий
"Socket UID"="rgsdfvdsf"
"Socket Pwd"="gfngfbnfg"
"UID"="mnadmin"
"Pwd"="mnadmin"
"alarm table"="alr_fltind" таблица текущего сосотояния аварий
"Port"=dword:000007b5 Порт сервера
"Alarm Tmp File=c:\Chupacabra\AlarmTmp.unl" временный файл
"SQL Alarm"="SELECT * FROM alr_fltind WHERE mo_index=5" изменению подлежит параметр mo_index
"IVC Alarm File"файл алармов для ИВЦ
"IVC Alarm Interval"интервал выгрузки алармов для ИВЦ

Примечание для строки:

SQL Alarm"="SELECT * FROM alr_fltind WHERE mo_index=x

значение параметра mo_index софтвер MN ставит из каких-то своих внутренних соображений
и его значение надо узнать для вашего конкретного случая.
Для этого с помощью редактора баз данных станции, например программой Tarifica, надо открыть
таблицу mncommon\alr_fltind, найти там несколько актуальных на данный момент аварий, и посмотреть
поле mo_index. Это значение надо подставить в строку SQL Alarm"="SELECT * FROM alr_fltind WHERE mo_index=x

Ещё примечание:
После рестарта станции с переходом на другую сторону это значение тоже меняется. У меня 5<>6
Поэтому после рестарта станции надо повторить настройку

Для того,чтобы всё это работало,необходимо:
1.Настроить расшифровку портов\транков по местности (см. выше).
2.Проверить работу Si2000 Proxy Agent.
Для нас результатом деятельности этого агента является файл
c:\si2000\files\fmg\alarms.log и таблица common\alr_fltind

Если файла alarms.log нет,агента надо включить.
Включается Si2000 Proxy Agent
HKLM\SOFTWARE\IskraTEL\MN\CommonSetting\Services\TM_FM_CONNECTION = "TRUE"
затем рестарт MN.

Передача аварий диспетчеру с подсчётом процента

Эта функциональность анализирует текущее состояние аварий и подсчитывает процент неисправных каналов
от общего количества каналов в направлении и выставляет флаг срочности аварии.
Например:
Транкгруппа в направлении городской АТС, 270 каналов.
Из них 5 каналов заблокированы. Процент аварий = 1.85% Авария не срочная

Транкгруппа в направлении сельской АТС, 30 каналов.
Из них 5 каналов заблокированы. Процент аварий = 16.6% Авария срочная

На выходе формируется таблица аварий следующего вида:
Файл ..\IVC Alarm File\AlarmPercent.unl
TGLocaleЧисло транков в ТГАварийные транкиПроцентСрочностьДата возникновения
30АТС-43 исх 4ВГИ27010.3702012-04-04 11:21:31
135Рудня Бэта вх301033.312012-04-03 22:36:45
30АТС-43 исх 4ВГИ27020.7402012-04-04 11:21:31
После устранения аварии запись из файла удаляется.
Путь ..\IVC Alarm File.. ведёт в расшаренную папку корпоративной сети,
откуда файл AlarmPercent.unl читает централизованная диспечерская служба.
Для устранения коллизий одновременного чтения-записи файла, во время записи чтение недоступно.

Алгоритм

  1. Получаем от информикса тип объекта и номер.
  2. Читаем из логов дату возникновения
  3. Определяем ТГ
    • по номеру транка ищем транкгруппу в таблице TrLocale.unl
    • по номеру порта ищем транкгруппу в таблице PortTGLocale.unl
    • по номеру ANA ищем вирт. ТГ в таблице ModLocale.unl
  4. По ТГ определяем местность
  5. Добавляем расшифровку кода аварии из файла alarm_descr.unl
  6. Вычисляем процент аварийных каналов и срочность аварии.
  7. пишем результат в файл AlarmPercent.unl

Конфигурация

Файл alarm.reg
[HKEY_LOCAL_MACHINE\SOFTWARE\SubliSoft\Chupacabra\alarm_srv]
ПараметрКомментарий
"IVC Alarm File"\\2ойКомп\Дир\файл алармов для ИВЦ
"IVC Alarm Interval"интервал выгрузки алармов для ИВЦ
"alarms_log"\\Сервер MN\files\fmg\alarms.log

файл:
\\Сервер MN\files\fmg\alarms.log
используется для получения времени возникновения аларма.
для этого на MN должен быть запущен Proxy-Agent
Файл конфигурации TGLocale.unl
TGLocale ProtRSLTriggerTrCountPortCount
5Hi-ComDSS12820581
6CiscoDSS13020301
8EWSDSSN752051917
Значения полей:
ПараметрКомментарий
TGТранкгруппа
LocaleМестность расположения встречной АТС
Protoвнутренний протокол Si2000
RSLНомер РСЛ встречной АТС
Triggerпроцент, после которого авария считается "красной"
TrCountтранков в ТГ
PortCountПортов в ТГ

Файл конфигурации TrLocale.unl
Таблица содержит список всех транков Si2000. До 7200 транков.
TrunkPortCICTGRSL
132181
232282
932989
Значения полей:
ПараметрКомментарий
TrunkТранк
PortПорт
CICканал в E1 0-32
TGТранкгруппа
RSLНомер РСЛ встречной АТС

Таблица содержит кол-во транков и портов в каждой ТГ.
Файл конфигурации PortTGLocale.unl
TGPortWeight(TrCount)Dummy
5266301
5104281
6239301
Значения полей:
ПараметрКомментарий
TGТранкгруппа
PortПорт
Weight(TrCount)сколько каналов в транкгруппе пропадёт
DummyЗарезервировано

Таблица расшифровки кодов аварий Si2000 c русским переводом.
Файл конфигурации alarm_descr.unl
ErrorCodeDescriptionRus desckrSoundTimer
1600200Remoute trunk blockingУдалённая блокировка канала 60
1800010SSN7 - destination not activeSSN7 - Направление не активноtada.wav60
1800020SSN7 - signalling link not activeSSN7 - Сигнальный линк не активенtada.wav60
Список "красных" аварий.
Только эти аварии обрабатываются.
Файл конфигурации AlarmCode.unl
2000020
2000090
2000020
2000060
2000050
2000030
2000010
1600200
2400260

Контроль абонентских модулей организован абсолютно аналогично контролю каналов.
Каждому модулю присвоен виртуальный номер ТГ.
При остановке модуля все 240 для ANA или 640 для MLC абонентов становятся аварийными.

Если вынос состоит из нескольких модулей, каждый модуль всё равно является независимым.
При необходимости группировать модули в выносы необходимо для них указать один номер VirtTG,
а в поле TrCount общую ёмкость выноса.
Файл конфигурации ModLocale.unl
Trigger - триггер аварийности в процентах. Если процент аварий будет больше триггера, поднимется флаг срочности в файле для IVC
VirtTGLocale ProtoModSi TriggerTrCountWeight
301410000-410207 MLC1v5.2120640640
305417000-417239 АэродромASMI520240240
306417240-417479 АэродромASMI620240240
Значения полей:
ПараметрКомментарий
VirtTGуникальный номер виртуальной ТГ, начало отсчёта 300
LocaleНумерация, местность
Protoвнутренний протокол Si2000
ModSiНомер модуля Si2000
RemANAпорядковый номер выноса
TrCountЧисло абонентов в модуле
Weightне работает абонентов при остановке модуля

архивирование AMA-записей в unl-файлах архиватором RAR

Файл archivator.reg
[HKEY_LOCAL_MACHINE\SOFTWARE\SubliSoft\Chupacabra\Archivator]
ПараметрКомментарий
"Ext Archivator"="rar.exe" программа-архиватор
"Cmd Line Add"="a -ep" командная строка архиватора
"Cmd Line Extract"="e -o+" командная строка для распаковки
"Arch Ext"=".rar" расширение файла архива

копирование/перенос CDR-файлов из T:\Transfer в указанное место

(прим. необходими включить Remote Billing на MN-server).
Файл cdr_copy.reg
[HKEY_LOCAL_MACHINE\SOFTWARE\SubliSoft\Chupacabra\CDR Manager]
ПараметрКомментарий
"CopyCDRmode"=dword:00000315 Битовая маска что и как выгружать. От балды менять не советую
"ExFields"="DN@CdPn@" Зарезервировано
"ExValues"="" Зарезервировано
"IVCFields"="area_code...|"Список полей для выгрузки для ИВЦ
"Transfer Directory"="T:\transfer" Директория T:\transfer
"Local CDR Directory"="G:\archive" Путь для копирования CDR в дерево каталогов вида ..\Node\Year\Month\Day
"Billing Center Directory"="\\Polockmn2\Transfer"Каталог, откуда забирает ИВЦ
"CDR File Mask"="i2019*.ama"маска файлов бинарной AMA
"CDR Copy Interval"=dword:00000258 период проверки новых файлов в T:\transfer
Если выгрузка не требуется параметру "CDR Copy Interval" присваивается значение, превышающее число секунд в сутках.
New!
Теперь формирование AMA в unl-формате для биллинга может производится из cdr файлов, минуя загрузку в информикс и выгрузку из него!
битовая маска
Для использования необходимо:
  1. Включить Remote Billing на MN-server
  2. Отключить перенос cdr в Информикс
  3. Снять биты
    • Выгружать AMA
    • Фильтровать AMA для биллинга
    • Выгружать AMA
  4. Установить биты
    • файл AMA для ИВЦ из бинарника *.cdr

выгрузка счётчиков (Meters) в указанное место

Прим.
Выгрузка счётчиков происходит одновременно с выгрузкой AMA
Файл meters.reg
[HKEY_LOCAL_MACHINE\SOFTWARE\SubliSoft\Chupacabra\Meters Manager]
ПараметрКомментарий
"Meters Dir"="meters\week" Битовая маска что и как выгружать. От балды менять не советую
"Meters store path"="c:\si2000\files\amg\counter\" Куда выгружать
"mca host name"="192.168.1.2" IP активной стороны
"Meters file"="dayweek.301"

отключение и включение абонентов-должников

Старый алгоритм, отключение из файлов местного расчётного отдела.
пример файла
Отключение происходит раз в месяц, например, 26-го числа в 08:00

Файл nemezida.reg
[HKEY_LOCAL_MACHINE\SOFTWARE\SubliSoft\Nemezida]
ПараметрКомментарий
"Suspend Day"=dword:00000002"День отключения (2-е число)
"Suspend Hour"=dword:00000009" Время отключения (09:00)
"Resume file server path"="C:\Tarifica\1116"Путь, куда маркетинг кладёт списки включения
"Suspend file server path"="C:\Tarifica\1116"Путь, куда маркетинг кладёт списки отключения
"Resume Suffix"="res.txt" формат имени файла включения mmyyres.txt
"Susp Suffix"="044.otk" формат имени файла отключения mmyy044.otk
"Resume Col"=dword:00000000 столбик с номером включаемого абонентаподробнее
"Suspend Col"=dword:00000001 столбик с номером выключаемого абонентаподробнее
"Feature Set"=dword:00000011 Feature Set из CMG для должников
"Suspend Type"=dword:0000001eвсегда 30
"IOCcategory"=dword:0000000b 11=отключаем вх. 0=разрешены вх.
"Voice DN"="300106" номер фразы автоинформатора при звонке на отключенного
"Suspend file local path"="C:\si2000\Suspend" место для временных файлов
"Subscriber mask"="41" префикс наших абонентов в общем списке
"MCA Node"=dword:000007e3 наша Node

[HKEY_LOCAL_MACHINE\SOFTWARE\SubliSoft\Chupacabra\Nemezida]
ПараметрКомментарий
"Sus Scan Interval"=dword:00000078период проверки новых файлов включения/отключения (120 сек.)

Отключение и включение абонентов-должников из командного файла от биллинг-центра
New!

Эта функциональность позволяет удалённо включать и отключать должников путём помещения командных файлов
в определённую директорию локальной сети предприятия.
Функциональность работает как на MN-сервер, так и на MN-клиент.
Внимание! Старый алгоритм отключения (см. выше) по-прежнему работает.
чтобы его отключить параметру "Sus Scan Interval" присваивается значение, превышающее число секунд в сутках.

Предпочтительная конфигурация:
  • -MN-сервер
    одна сетевая карта, не подключен к корпоративной сети
  • -MN-клиент
    две сетевые карты, одна - в сеть Si2000, вторая в корпоративную сеть,
    установлен сервис Chupacabra и необходимые программы для обеспечения сетевой безопасности

Формат командного файла

полностью повторяет синтаксис командных файлов АТС-Ф
Пример файла:

+кОткл
/ Список абонентов отключаемых за неуплату
413001,413002,413004 413044 413025,
413041

Правила парсинга:
Файл nemezida.reg
[HKEY_LOCAL_MACHINE\SOFTWARE\SubliSoft\Nemezida]
ПараметрКомментарий
"Feature Set"=dword:00000011 Feature Set из CMG для должников
"Suspend Type"=dword:0000001eвсегда 30
"IOCcategory"=dword:0000000b 11=отключаем вх. 0=разрешены вх.
"Voice DN"="300106" номер фразы автоинформатора при звонке на отключенного
"Subscriber mask"="41|"список префиксов наших абонентов в общем списке
"MCA Node"=dword:000007e3 наша Node
"SubscrDigits"=dword:00000006Кол-во цифр в номере
"Suspend file local path"="C:\si2000\Suspend"Путь для файлов формата Si2000
"Plus Cmd"="+" Команда "Включить"
"Minus Cmd"="-" Команда "Отключить"
"Comment"="/"Признак комментария, строка игнорируется
"Suspend"="кОткл" Команда для отключения
"FixCmdLeng"=dword:00000001 Длина префикса "к"

Правила обработки файлов:
Файл nemezida_srv.reg
[HKEY_LOCAL_MACHINE\SOFTWARE\SubliSoft\Chupacabra\Nemezida]
ПараметрКомментарий
"Sus Scan Interval"=dword:00000078период проверки новых файлов включения/отключения от местного маркетинга(120 сек.)
"Susp IVC Interval"=dword:00000078период проверки новых файлов включения/отключения от биллинг-центра(120 сек.)
"SuspendPath"="e:\Temp"каталог, где искать файлы от биллинга
"Suspend"="Off*.txt"маска для поиска файлов
"SuspendinExt"="*.??#"маска для переименования файла, взятого в обработку
"SuspendedExt"="*.??+"маска для переименования обработанного файла
"SuspenErrExt"="*.??-" маска для переименования обработанного файла, содержавшего ошибки
Если отключение не требуется параметру "Susp IVC Interval" присваивается значение, превышающее число секунд в сутках.

Рассмотрим подробнее алгоритм отработки файлов, настроенный как в примере выше.

Каждые 120 сек. Чупакабра сканирует директорию e:\Temp
и ищет там файлы по маске Off*.txt. Например:
Off123.txt
Off345.txt
для каждого из файлов по очереди запускается парсинг, при этом файл переименовывается следующим образом:
в начало имени добавляется дата-время в виде
20111029123023
^___________^секунды
^_________^минуты
^_______^час
^_____^день
^___^месяц
^год
далее форматируется по маске "*.??#"
добавляется пользовательское название из исходного имени
Off123.txt от начала до символа "."
потом 2 символа остаются неизменными
последний заменяется на символ "#".
в результате получаем
20111029123023Off123.tx#
После успешного отключения этим же алгоритмом переименовываем файл в:
20111029123023Off123.tx+
При наличии синтаксических ошибок
20111029123023Off123.tx-
Сообщения об ошибках дописываются в это же файл в виде комментария.

Рассмотрим подробнее алгоритм парсинга.

файл может содержать информацию 3-х видов:
  • команда
    например, +кОткл
  • комментарий
    всё, что начинается символом "/"
  • список абонетских номеров
    номером считается любая последовательность цифр, длиной из параметра "Кол-во цифр в номере"
    номера отделяются друг от друга любым не-цифровым символом таблицы ASCII
Команда +кОткл состоит из:
  • полярность. + или -
  • фиксированая часть "к" длиной из параметра "Длина префикса "к""
  • собственно команда "Откл"
Все распознаваемые парсингом лексемы можно переименовать. Например,
кОткл заменить на кВыкл.

Тестирование АЛ по запросу ЦТЭ

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

Правила обработки файлов:
Файл ltu.reg
[HKEY_LOCAL_MACHINE\SOFTWARE\SubliSoft\LTU]
ПараметрКомментарий
"LTU Scan Interval"=dword:00000078период проверки новых файлов тестирования АЛ
"LTU Path"="e:\Temp"каталог, где искать файлы тестирования АЛ
"LTU File"="ltu*.txt"маска для поиска файлов
"LTU working Ext"="*.??#"маска для переименования файла, взятого в обработку
"LTU done Ext"="*.??+"маска для переименования обработанного файла
"LTU Error Ext"="*.??-" маска для переименования обработанного файла, содержавшего ошибки
"CmdPfx"="+"Префикс команды
"Comment"="//"символ комментария
"LtuRun"="LtuRun"имя команды тестирования
"Ats Prefix"="41|"список префиксов нашей АТС
"NumberLength"="6"длина номера нашей АТС
"FixCmdLeng"="1"Длина префикса команды
"LTU Result File"="res_ltu.txt"имя файла результатов
Если тестирование не требуется параметру "LTU Scan Interval" присваивается значение, превышающее число секунд в сутках.

Примечание

Имя команды LtuRun не должно содержать пробелов.
Имена файлов LTU File и LTU Result File не должны иметь одинаковый префикс.
Файл LTU Result File будет помещён в каталог LTU Path.
FixCmdLeng должен быть равен длине значения CmdPfx, иначе команда не будет распознана.
Тестирование происходит в течении 1 мин.

Внимание!!!

В файле ..rtdb\config\alarm\ModLocale.unl
Обязательно должно быть прописаны абонентские модули и Триггер аварийности

VirtTG|Locale|Proto|ModSi|Trigger|TrCount|Weight|
301|410000-410207 MLC1|v5.2|1|20|640|640|
305|417000-417239 Аэродром|ASMI|5|20|240|240|

MLC(B) имеет свой собственный Node, абонентским модулям ASMI (АТС-Ф) указывается Node MCA, в который они включены.

Пример файла ltu01.txt:

+LtuRun
// комментарий
419823
419345
418876

Пример файла res_ltu.txt (абоненты выноса на базе АТС-Ф):

exchid|ltu_msrmnt_req_id|portnr|result_date_time|modulenr|dn|altvolt_ab|dirvolt_ab|altvolt_ae|dirvolt_ae|altvolt_be|
dirvolt_be|resist_ab|resist_ae|resist_be|capacity_ab|capacity_ae|capacity_be|capacity_bell|
2019|3|196|2013 02 12 11 43 00|15|419836|0|0|0|0|0|0|40E+03|40E+03|40E+03|0.4952|0|0|0.4952|
2019|4|195|2013 02 12 11 43 00|15|419835|0|0|0|0|0|0|40E+03|40E+03|40E+03|2.858|0|0|2.858|


Пример файла res_ltu.txt (абоненты MLC Si2000):

exchid|ltu_msrmnt_req_id|portnr|result_date_time|modulenr|dn|altvolt_ab|dirvolt_ab|altvolt_ae|dirvolt_ae|altvolt_be|
dirvolt_be|resist_ab|resist_ae|resist_be|capacity_ab|capacity_ae|capacity_be|capacity_bell|
2020|5|104|2013 02 12 12 14 00|0|0|0|-0.009|0|-0.023|0|0|> 1E+06|> 1E+06|> 1E+06|0.176|0.225|0.22|0|
2020|6|103|2013 02 12 12 14 00|0|0|0|-0.01|0|-0.288|0|-0.53|340.1E+03|> 1E+06|> 1E+06|0.067|0.087|0.086|0|


значения полей файла res_ltu.txt:
Полезначение
exchidуникальный ID нашей АТС
ltu_msrmnt_req_idномер запроса на LTU
portnrномер порта абонента
result_date_timeвремя, когда произведёно измерение
modulenrномер абонентского модуля
dnномер абонента
altvolt_abпостороннее ~U A<>B
dirvolt_abпостороннее -U A<>B
altvolt_aeпостороннее ~U A<>Gnd
dirvolt_aeпостороннее -U A<>Gnd
altvolt_beпостороннее ~U B<>Gnd
dirvolt_beпостороннее -U B<>Gnd
resist_abсопротивление изоляции A<>B
resist_aeсопротивление изоляции A<>Gnd
resist_beсопротивление изоляции B<>Gnd
capacity_abёмкость A<>B
capacity_aeёмкость A<>Gnd
capacity_beёмкость B<>Gnd
capacity_bellёмкость звонка

выгрузка статистики из PMG в указанное место

Прим.
Выгрузка статистики происходит одновременно с выгрузкой AMA
Файл stat.reg
[HKEY_LOCAL_MACHINE\SOFTWARE\SubliSoft\Chupacabra\Stat Manager]
ПараметрКомментарий
"stat time field"="msrmnt_time"Для информикса
"Stat result table"="stat_result" Для информикса
"ChNN Begin"="20:00"Начало часа ЧННН
"ChNN End"="22:00"Окончание часа ЧННН
"stat type field"="stat_group_type"Для информикса
"Stat Export Path"="c:\si2000\files\pmg\store"куда выгружать статистику
"IVC Stat Interval"=900интервал, сек. между выгрузками статистики для ИВЦ
"Stat IVC Path"Откуда забирает статистику ИВЦ
"IVC Stat Hours"=0интервал, час. записей в одном файле
"IVC Stat Min"=15интервал, мин. записей в одном файле
Если выгрузка не требуется параметру "IVC Stat Interval" присваивается значение, превышающее число секунд в сутках.
Примечание:
Если надо группировать записи статистики за час в один файл настраиваем:
"IVC Stat Hours"=1
"IVC Stat Min"=0
"IVC Stat Interval"=3600
При таком варианте будет формироваться комплект файлов каждый час и они будут содержать
четыре 15-мин интервала.

Если не надо группировать записи статистики за час в один файл настраиваем:
"IVC Stat Hours"=0
"IVC Stat Min"=15
"IVC Stat Interval"=900
При таком варианте будет формироваться комплект файлов каждые 15мин и они будут содержать
один 15-мин интервал.
Теперь добавлена функциональность выгрузки статистики для ИВЦ.
Для этого необходимо настроить в MN непрерывный сбор статистики
C периодичностью "Stat IVC Interval" программа будет выгружать
статистику в каталог "Stat IVC Path".
формат имени файлов:
incYY_MM_DDHHMMSS.unl - входящие
outYY_MM_DDHHMMSS.unl - исходящие
pfxYY_MM_DDHHMMSS.unl - по префиксу

Внимание!
дата начала выгрузки декодируется из имени предыдущих файлов
*YY_MM_DDHHMMSS.unl
файлы хранятся в каталоге:
каталог_где_установлена_чупакабра/rtdb/last
поэтому перед началом работы необходимо в этот каталог
поместить пустые файлы, имена которых содержат дату начала выгрузки.
иначе программа будет выгружать от 01-01-2000.
Для предотвращения переполнения жёсткого диска компьютера выгруженные файлы из каталога "Stat IVC Path"
автоматически удаляются через сутки после выгрузки.
Возможно также произвольное удаление файлов, это не приводит к нарушению работы программы.

Настройки выгрузки

в каталоге rtdb\config\
Файл PrefixCounter.unl
содержит расшифровки счётчиков Si2000 для статистики по префиксам

exchid|Node|
msrmnt_time|Date & Time|
stat_group_id|Group|
stat_cntr1|Dialled Prefix|
stat_cntr2|Dialled Prefix, Inc. Call|
.....

Файл TgIncCounter.unl
содержит расшифровки счётчиков Si2000 для статистики по входящим ТГ

exchid|Node|
msrmnt_time|Date & Time|
stat_group_id|Group|
stat_cntr1|Seizures|
stat_cntr2|Seizures, Trans. Call|
stat_cntr3|Incompl. Dialling|
stat_cntr21|Incompl. Dialling, Trans. Call|
....
Файл TgOutCounter.unl
содержит расшифровки счётчиков Si2000 для статистики по исходящим ТГ

exchid|Node|
msrmnt_time|Date & Time|
stat_group_id|Group|
stat_cntr11|Seizures|
stat_cntr12|Inc. Seizures|
stat_cntr16|Unsuccessful|
stat_cntr30|Unsuccessful, Trans. Call|
....
в файле StatGroups.unl
указано, какие группы выгружать

inc|1|TgIncCounter.unl|
out|1|TgOutCounter.unl|
pfx|19|PrefixCounter.unl|

формат данных:
префикс имениномер статгруппыфайл расшифровки счётчиков
pfx 19PrefixCounter.unl
Эти файлы можно редактировать с целью изменения параметров выгрузки

периодическое копирование любых файлов из одной директории в другую

Функциональность предназначена для копирования тарификации из каталога станции в каталог биллига
Это нужно, например, если есть несколько станций и один сервер, откуда биллинг забирает файлы.
Файл tar.reg
[HKEY_LOCAL_MACHINE\SOFTWARE\SubliSoft\Chupacabra\Tar Manager]
ПараметрКомментарий
"Tar Copy Interval"=dword:0000012cинтервал копирования
"TarCfgPath"="e:\elsis\config.txt" файл конфигурации подробнее

формат файла отключений

мой маркетинг даёт такой файл:

1 418651 44510900-6 36 599.00 ПУПКИН Е.И. 2500.00
2 418344 44510900-6 36 599.00 ИВАНОВ Р.И. 2500.00
3 416571 44510900-6 36 599.00 ПЕТРОВ Е.Н. 2500.00

формат этого файла:
что-топробелномерпробелчто-то ещёперевод каретки
0__________1___________2
при этом номер столбика с абонентом 1, т.е. "Suspend Col"=dword:00000001
Частный случай такого формата - "номера в столбик"

418651
418344
416571

формат этого файла:
номерперевод каретки
0______
при этом номер столбика с абонентом 0, т.е. "Resume Col"=dword:00000000

формат файла копирования

формат этого файла:
\\Dpto\ATS_BETA\KARPEKI|T6%yy%mm*.tar|D:\BETA\TarifLoader
откуда|маска файлов|куда

Формат маски:
T6%yy%mm*.tar
где вместо %yy подставляется текущий год
вместо %mm подставляется текущий месяц
T6 индекс станции
*.tar любой суффикс и расширение tar
таким образом будут скопированы все файлы за текущий месяц

Применительно к Si2000 маска для i201920091203141511.ama будет такая:
i2019%yyyy%mm*.ama

Битовая маска для выгрузки

Для вычисления масок удобно использовить калькулятор в инженерном режиме.
ПараметрЗначение
Выгружать AMA0x00000001
Выгружать Счётчики0x00000002
Выгружать статистику0x00000004
Удалять выгруженную AMA из информикса0x00000008
Удалять выгруженную статистику из информикса0x00000010
Фильтровать AMA для биллинга0x00000020
выгрузить выбраные поля за выбраный период для выбраных абонентов
из файла WhereUnl.unl
0x00000040
выгрузить выбраные поля AMA за период 0x00000080
зарезервировано 0x00000100
выгрузит счётчики по FTP из станции 0x00000200
не показывать счётчики некоторых абонентов0x00000400
сформировать txt файл счётчиков для ИВЦ0x00000800
копировать txt файл счётчиков биллингу0x00001000
зарезервировано0x00002000
файл AMA для ИВЦ из бинарника *.cdr0x00004000
Архивировать AMA unl RAR-ом0x00008000
зарезервировано0x00010000
запустить внешнюю программу0x00020000
зарезервировано0x00040000

CDR-маска

ПараметрЗначение
удалять из t:\transfer после копирования0x00000001
копировать CDR в дерево каталогов0x00000002
дописываем к суммарному за день0x00000004
Автор программ свадебный фотограф Полоцк, Новополоцк Евгений Кормщиков
Ну вот и начался очередной 2020 сезон охоты на свадебных фотографов, а также фотографов на выпускной, в детский сад или школу. Найдите своего фотографа и вашими трофеями станут свадебные или семейные фотографии, выпускные фотоальбомы, фотокниги, и всё это - в наших городах Полоцке и Новополоцке. Удачной охоты!
Phone
All rights reserved © Powered by Evgeny Kormshchkov