Внимание ! Эти макросы под WR не работают. Дата последнего изменения : 09.07.04 Изменения от 09.07.04 : 1.Добавлен макрос GETCON. 2.Добавлен макрос LOAD. Изменения от 12.02.04 : 1.Упрощен интерфейс макроса NUMP. 2.Добавлен макрос OCB. Изменения от 18.03.03 : (связаны с доработкой макросов PBA и NSERV для J-статива. В Соликамске таких станций нет, поэтому большое спасибо Сергею Петрову с Кунгура за сотрудничество.) 1.Макрос PBA теперь выдает гораздо больше информации : показывает E/J/? тип статива, ALCB/ALCN/ISTB/ISTC - тип платы, SCALSV обрабатывающий вызов або- нента. Кроме того, его теперь можно вызывать указав RIT. Выдается предуп- реждение, если оборудование задействовано не для обычного абонента, а для SPC, MSN, GDN, DDI, IDN, IEN, PRA. 2.Макрос NSERV на J-станции зацикливался при подсчете NSERV:5 (RNGDN), даже если на станции нет ни одного абонента с такой услугой - устранено. 3.Специально для станций, где абонентская сигнализация по умолчанию DIALSET, в архив добавлен вариант макроса NSERV.DLS. Грузить его как обычно, т.е. inc nserv.dls. ACHTUNG: остерегайтесь вносить изменения в макросы использующие DBS ACC, если не знаете описания работы этой команды ! Содержание help'а : ------------------- 1.COP - поиск строки в тарификационной записи 2.PBA - получить данные для замены отказавшей абонентской платы 3.TREE - быстрое нахождение ошибок в DID'ах 4.NSERV - найти номера абонентов с наиболее популярными в России услугами (файл nserv.dls - версия того же макроса для импульсного набора по умолчанию) 5.MEAGRP - поиск абонентов с определенными значениями MEAGRP 6.SUBGRP - поиск абонентов с определенными значениями SUBGRP 7.NUMP - получить план нумерации станции, т.е. список соответствия DN-EN 8.PRESALLO - проверить/установить Presentation Allowed 9.OCB - вывести список абонентов с ограничениями по Outgoing Call Barring. (Каждый макрос находится в отдельном одноименном файле с расширением MAC) 10.Файл crt.mac, макросы : CRTI - создать входящую TKG CRTO - создать исходящую TKG EXTT - расширить число каналов TKG REDT - сократить число каналов TKG 11.Файл endis.mac, макросы : DISN и DISN1 - to disable lot of subscribers ENN и ENN1 - to enable lot of subscribers TESN1 - to test (14) lot of subscribers 12.Файл remcrsub.mac, макросы : REMSUB - to remove lot of subscribers CRASUB - to create lot of analog subscribers CRISUB - to create lot of ISDN subscribers MDFSUB - to modify lot of subscribers 13.GETCON - альтернативный макросу TNST2M 14.LOAD - построение списка загруженности абонентских процессоров --------------------------------------------- 1.Антитеррористический макрос COP - найти строку в тарификационной записи. Предназначен для ловли злоумышленников в течение того времени, пока тарификационная информация (detailed billing) находится в памяти процессоров S-12. Обычно это около часа, однако бывали случаи нахождения звонков недельной(!) давности. COP ищет строку в R_AMADATA по всем процессорам станции, где эта relation присутствует. Если написать COP:63434, то он найдет входящие и исходящие звонки для этого телефона. Поскольку скорость поиска не зависит от длины строки, можно например написать для исходящих COP:xxx63434 (xxx - зональный префикс, в Соликамске он 253 - см. ниже) и для входящих COP:63434FFFFFFFFFF, впрочем это дело вкуса. Найденный фрагмент помечается инвертированием. Можно задать через запятую до 8 строк поиска (телефонов). При этом время сканирования станции ATS-7 Соликамск (~16000 номеров): Число параметров Время поиска 1 ~ 4 мин 2 ~ 6 мин 3 ~ 8 мин ............... В качестве строки поиска можно задать, например, и COP:#31* - поиск набора услуги. Разрешенные символы для строки поиска 0..9, F,*,#. Поиск по маске принципиально невозможен. При вызове без параметров COP: выдается короткий help. При первом запуске запоминаются типы процессоров, где присутствует R_AMADATA. После этого макрос исправляет свой текст в памяти PTCE и при последующих запусках работает быстрее, так как не обращается к процессорам, где этой relation заведомо нет. Для станции с большим количеством процессоров с R_AMADATA (т.е. не междугородной и не узловой) выигрыш по времени однако невелик (данные для станции ~ 16000 номеров) : Поиск Время поиска одной строки (мин:сек) первый запуск 4:27 последующие запуски 3:54 Пример выдачи :  >COP:77170 ............... DATE START T CAT CALLING CALLED DURAT PULSES TC RC R M ITKG OTKG B ------------------------------------------------------------------------------ 1302 125052 0 010 25370094 77170FFFFFFFFFF 000017 000001 00 00 0 0 0000 0000 3 1302 125645 0 010 25370094 77170FFFFFFFFFF 000011 000001 00 00 0 0 0000 0000 3 1302 125939 0 010 25370070 77170FFFFFFFFFF 000011 000001 00 00 0 0 0000 0000 3 1302 130232 0 010 25370070 77170FFFFFFFFFF 000016 000001 00 00 0 0 0000 0000 3 1302 134201 0 247 25370008 77170FFFFFFFFFF 000045 000001 00 00 0 0 0000 0000 3 1302 134201 4 010 25377170 3425370070FFFFF 000045 000001 20 03 0 0 0000 0000 3 1302 135917 0 010 25370070 77170FFFFFFFFFF 000016 000001 00 00 0 0 0000 0000 3 .................................. Каждая точка означает : найден очередной процессор с R_AMADATA. --------------------------------------------- 2.PBA - получить данные для замены отказавшей абонентской платы (ALCB, ISTB и иже с ними). Позволяет оператору не давать 39-ю команду, поэтому не менее популярен, чем COP. Примеры вызова :  >PBA:5370668 ;аналоговый абонент, E-статив LOCATION DN NA NBR PLACE SMCL ALCB STATE E-RACK SCAL REM -------- ------- ---- ---- ---------- ---- --------- -------- -------- ---- --- HOST 5370668 0031 0157 002-B-4-07 0020 0153-0160 11111111 8 SUBSCR 000F SUB  >PBA:7156000 ;аналоговый абонент, J-статив LOCATION DN NA NBR PLACE SMCL ALCB STATE J-RACK SCAL REM -------- ------- ---- ---- ---------- ---- --------- -------- -------- ---- --- PS2 7156000 0214 0001 043-A-2-01 0001 0001-0016 11111111 11111111 000E SUB  >PBA:5348426 ;ISDN абонент, E-статив LOCATION DN NA NBR PLACE SMCL ISTB STATE E-RACK SCAL REM -------- ------- ---- ---- ---------- ---- --------- -------- -------- ---- --- HOST 5348426 0033 0179 002-B-2-45 0023 0177-0184 11111616 8 SUBSCR 0026 SUB  >PBA:33,179 ;можно указать EN LOCATION DN NA NBR PLACE SMCL ISTB STATE E-RACK SCAL REM -------- ------- ---- ---- ---------- ---- --------- -------- -------- ---- --- HOST 5348426 0033 0179 002-B-2-45 0023 0177-0184 11111616 8 SUBSCR 0026 SUB  >PBA:2,B,2,45 ;или RIT LOCATION DN NA NBR PLACE SMCL ISTB STATE E-RACK SCAL REM -------- ------- ---- ---- ---------- ---- --------- -------- -------- ---- --- HOST 5348424 0033 0177 002-B-2-45 0023 0177-0184 11111616 8 SUBSCR 0026 SUB ;поэкспериментируйте сами на предмет выдачи в следующих случаях : ??? - абонент удален и на его месте ничего не создано SPC - полупостоянное соединение MSN - базовый или дополнительный многопользовательский номер DDI - номер принадлежит удаленной станции, подцепленной с помощью базового доступа GDN - номер базовый для группы серийного поиска IDN - номер принадлежит группе серийного поиска IEN - оборудование используется как базовый доступ для подсоединения удаленной станции PRA - номер принадлежит удаленной станции, подцепленной с помощью первичного доступа  >:PBA 7160000 ;в последнем случае вывод будет короче обычного : LOCATION PRA NA NBR PLACE DTCL -------- ------- ---- ---- ---------- ---- HOST 7160000 0512 ???? 001-E-6-29 0001 LOCATION программа берет из r_rsu_name.d_rsu_1, так что если у Вас оно определяется неверно, исправьте этот домен командой <378:1="r_rsu_name",2="d_lce_id"&0&"....H",3="d_rsu_1"&0&".......",4,show. --------------------------------------------- 3.TREE - предназначен для быстрого нахождения ошибок в DID'ах ; путем сравнения строк этих DID'ов. ;Так как источники на дереве более-менее однородны, то и строки ; DID'ов должны быть более-менее одинаковы. ;Макрос работает в режиме read-only, однако во избежание сбоев в его ; работе лучше не запускать его во время его работы команды ; MODIFY-DID(83) и MODIFY-DEST(715). ;Им можно проверить : ; 1.Все дерево >TREE:1 ; 2.Ветку дерева >TREE:1,810 или >TREE:1,81035290065743... ; 3.Гроздь >TREE:1,8 ;Макрос работает и с деревьями, имеющими ссылки на COMMON TREE, ; но не работает с самими COMMON TREE. ;На дереве могут быть зависимости TIMEDEP, ORIGDEP, CATDEP. ; В этом случае он возьмет самую первую строчку в базе изо всех вариантов, ; а остальные проигнорирует. Это связано с тем, что при дальнейшем услож- ; нении макроса мы сталкиваемся с проблемой переполнения стэка в MPTMON'е. ;Можно задать 16-ричный префикс >TREE:12,B1С например. ;ROUTEBLOCK'и в любом случае разбираются целиком по транкгруппам, ; кроме переключаемых (ком. MODIFY-RTEBL-CONTROL). ;Ниже показаны примеры выдачи. ; SCO означает источник ; DESTGRP - назначение ; IFLS - входящие флаги в том же порядке, что и по команде DISPLAY_DID(84) ; EOS - конец сигнализации (особенно актуально для 8-го дерева) ; DGTPREP - подготовку цифр ; OFLS - исходящие флаги в том же порядке, что и по команде DISPLAY_DID(84) ; DF - количество обрезаемых цифр ; DT - тип доступа (LOCAL=0 и т.д.) >TREE:19,64 - конкретный префикс ORDPTREE 19 64, CPX= 68, DESTACC= 66, DESTDID= 11 SCO DESTGRP IFLS EOS DGTPREP OFLS DF DT ------------------------------------------------------------------------------ TKGID&CL_CHERN_L CL_CZBK_L_O FFFF NOTAPPL NOTAPPL FFFFFFF 01 00 TKGID&CL_CZBK_L_I CL_CZBK_L_O FFFF NOTAPPL NOTAPPL FFFFFFF 01 00 TKGID&CL_RODN_L_I CL_CZBK_L_O FFFF NOTAPPL NOTAPPL FFFFFFF 01 00 TKGID&CL_VMO_L CL_CZBK_L_O FFFF NOTAPPL NOTAPPL FFFFFFF 01 00 TKGID&CL_GOR_L CL_CZBK_L_O FFFF NOTAPPL NOTAPPL FFFFFFF 01 00 TKGID&CL_POL_L CL_CZBK_L_O FFFF NOTAPPL NOTAPPL FFFFFFF 01 00 TKGID&CL_US_L CL_CZBK_L_O FFFF NOTAPPL NOTAPPL FFFFFFF 01 00 TKGID&CL_CAS_L CL_CZBK_L_O FFFF NOTAPPL NOTAPPL FFFFFFF 01 00 TKGID&CL_VIL_L CL_CZBK_L_O FFFF NOTAPPL NOTAPPL FFFFFFF 01 00 TKGID&CL_OLP_L CL_CZBK_L_O FFFF NOTAPPL NOTAPPL FFFFFFF 01 00 TKGID&CL_TEZ12_L_I CL_CZBK_L_O FFFF NOTAPPL NOTAPPL FFFFFFF 01 61 TKGID&CL_JUL_L CL_CZBK_L_O FFFF NOTAPPL NOTAPPL FFFFFFF 01 00 >TREE:1 (проверить все дерево) ORDPTREE 1 00000, CAUSE 00001, CAUSE 00002, CAUSE 00003, CAUSE 00004, CAUSE 00005, CPX= 8, DESTACC= 305, DESTDID= 10 SCO DESTGRP IFLS EOS DGTPREP OFLS DF DT ------------------------------------------------------------------------------ SUBSC& 1 TERM TTFF NOTAPPL NOTAPPL FFFFFTT N 00 SUBSC& 3 TERM TTFF NOTAPPL NOTAPPL FFFFFTT N 00 SUBSC& 2 TERM FFFF NOTAPPL NOTAPPL FFFFFFF N 00 SUBSC& 7 TERM TTFF NOTAPPL NOTAPPL FFFFFTT N 00 UNKN & TERM R_INC_LINK TNF (tuple not found) 00006, CAUSE 00007, CAUSE 00008, CAUSE 00009, CPX= 436, DESTACC= 342, DESTDID= 10 SCO DESTGRP IFLS EOS DGTPREP OFLS DF DT ------------------------------------------------------------------------------ SUBSC& 1 TERM TTFF NOTAPPL NOTAPPL FFFFFTT N 00 SUBSC& 3 TERM TTFF NOTAPPL NOTAPPL FFFFFTT N 00 SUBSC& 2 TERM FFFF NOTAPPL NOTAPPL FFFFFFF N 00 SUBSC& 7 TERM TTFF NOTAPPL NOTAPPL FFFFFTT N 00 UNKN & TERM R_INC_LINK TNF 0000A, CAUSE 0000B, CAUSE 0000C, CAUSE 0000D, CAUSE 0000E, CAUSE 0000F, CAUSE 0001, CAUSE 0002, CAUSE 0003, CAUSE ............. и т.д. >TREE:1,70668 - задан префикс длиннее существующего на дереве ORDPTREE 1 706, CPX= 2, DESTACC= 3, DESTDID= 10 SCO DESTGRP IFLS EOS DGTPREP OFLS DF DT ------------------------------------------------------------------------------ SUBSC& 1 TERM TTFF NOTAPPL NOTAPPL FFFFFTT N 00 SUBSC& 3 TERM TTFF NOTAPPL NOTAPPL FFFFFTT N 00 SUBSC& 2 TERM FFFF NOTAPPL NOTAPPL FFFFFFF N 00 SUBSC& 7 TERM TTFF NOTAPPL NOTAPPL FFFFFTT N 00 UNKN & TERM R_INC_LINK TNF --------------------------------------------- 4.NSERV - найти номера абонентов с наиболее популярными в России услугами. Время работы по полной программе (без параметров) около 2 часов/16000 або- нентов. При связи с PTCE по токовой петле (только так достигаются реальные 9600) - вообще 1 час. Пользуясь DISPLAY-CAT-MARK, Вы потратите на тот же результат целую неделю. Пример вызова (мелкими буквами я дописал некоторые комментарии):  >NSERV: 2002-AUG-01 THU 11:46:13 FOR HELP, ENTER : >NSERV:? DNET ACCOUNTING............................... ;расчет тысячных групп SEARCH BY R_OT_COS ;don't mind SEARCH BY D_O_COS ;не берите в голову LCE=0620 NA=000F 5375422 ADDCFR CCNR 5374242 CCBS 5374328 CCBS CCNR TPS R_COS_LNK TNF FOR R_OT_COS.D_INDEX=05F7 TPS ;TNF означает Tuple Not Found ;TPS - Three Party Service 5374582 CCBS .............. SEARCH BY D_ALL_FLAG LCE=0620 NA=000F 5374242 AC24HOUR ACDAYS CFWDUVAR OCBVAR 5374250 OCBVAR 5374150 AC24HOUR CFWDBSUB CFWDNOR CFWDUVAR CWTG-SUBCTRL FDCTO-SUBCTRL OCBVAR .............. .............. SUMMARY NUMBER OF SUBSCRIEBERS USING : (!!!включая потерянные ссылки в БД) как создается что означает ------------- ------------ * ABD - 51 create-abd-facility сокращенный набор * AC24HOUR - 290 subctrl=add&ac24hour одноразовый будильник * ACDAYS - 146 subctrl=add&acdays многоразовый будильник * ADDCFR - 44 recall=add&addcfr пятисторонняя конференция * ALMCALL - 53 almcall=activate&12&00&9 операторский будильник * BADP - 241 intcp=badp неплательщик * BLNGLEV - 6 blnglev=10 бесплатный телефон * CAHLD - 1 recall=add&cahld удержание вызова для запроса для ISDN * CATASTRO - 65535 linechar=add&catastro работа в катастрофических условиях * CCBS - 109 recall=add&ccbs автодозвон на занятого * CBOX - 52 hmcbox=add&cbox(&polar) м/гор таксофон * CCBS-INH - 1 inhibit=add&ccbs запрет автодозвона на занятого * CCNR - 33 recall=add&ccnr автодозвон на неотвечающего * CCNR-INH - 2 inhibit=add&ccnr запрет автодозвона на неотвечающего * CFR3W - 1 recall=add&cfr3w трехсторонняя конференция для ISDN * CFWD-INH 2 inhibit=add&inccfwd запрет переадресации * CFWDBSUB - 39 subctrl=add&cfwdbsub переадресация если занят * CFWDFIXA - 16 subctrl=add&cfwdfixa переадресация на фразу * CFWDNOR - 39 subctrl=add&cfwdnor переадресация если не отвечает * CFWDUVAR - 250 subctrl=add&cfwduvar переадресация полюбому * CGLIP - 50 nbridfcd=add&cglip определение номера вызывающего * CGLIROWR - 36 nbridfcd=add&cglirowr отмена запрета определения номера вызывающего * CHGNBR - 0 intcp=chgnbr&k'5370668 измененный номер * CWTG-RECALL - 48 recall=add&cwtg предупреждение о вызове * CWTG-SUBCTRL - 79 subctrl=add&cwtg предупреждение о вызове и манипуляции * DIALSET - 40 subsig=dialset только импульсный набор * ECTRF - 3 recall=add&cwtg секретарь * FDCI-FDC - 0 fdc=fdci&k'5354545 немедленный прямой вызов * FDCTO-FDC 9 fdc=fdcto&k'5354545 операторский прямой вызов с задержкой * FDCTO-SUBCTRL- 21 subctrl=add&fdcto абонентский прямой вызов с задержкой * HLDENQ - 1 recall=add&hldenq удержание вызова для запроса * ICB-FIXED- 1 icb=add&fixed абонентский запрет входящих * ICB-PERM - 84 icb=add&perm операторский запрет входящих * KHZ16 - 2 hmcbox=add(&cbox)&khz16 16-килогерцовые импульсы таксации * MALCIDF - 4 observ=add&malcidf&widf определение номера злоумышленника * MOVE - 14 intcp=move перемещенный номер * MSN - 22 4294:msn многопользовательский ISDN * OCB-FIX - 12 ocb=activate&fixed&2 операторский запрет исходящих * OCBVAR - 547 subctrl=add&ocbvar абонентский запрет исходящих * ORGOBS - 1 observ=add&orgobs&direct исходящее наблюдение * PBSET - 2 subsig=pbset только тональный набор * POLAR - 1 hmcbox=add(&cbox)&polar импульсы таксации переполюсовкой * PRIOSUB - 1 col=priosub приоритетный абонент * PSW - 551 password=add&"2043" операторский пароль * PSW-CHANG- 6 subctrl=add&password абонентский пароль * QUEUE - 12 queue=add&1&0&ann008 очередь входящих * RNGDN - 0 rngdn=add&k'5370669 еще один номер * RSTCBX - 40 col=rstcbx таксофон для местной связи * RSTSSUB - 2 col=rstssub абонент с 3 категорией * STKBRK - 3 recall=add&stkbrk брокер * TOBS - 1 observ=add&tobs&direct входящее наблюдение * TPS - 17 recall=add&tps трехсторонняя конференция * ITOGO - 2986 2002-AUG-01 THU 13:58:32 ;т.е. ~2 часа на 16000 абонентов Если теперь отсортировать выданные макросом строки (это можно сделать например в древнем DOS-овском редакторе me.exe), получим практически готовый список абонентов с услугами. При вызове NSERV:? выдается короткий help о возможностях вызова NSERV с параметрами. Дело в том, что 2 часа все же много. Макрос может отработать не всю, а только часть полной программы. Например, запуск NSERV:22 позволяет найти всех абонентов с измененной оплатой (блатных) где-то за 3 минуты, NSERV:13 - всех неплательщиков за 10 минут и т.д.  >NSERV:? ;какие параметры допускаются при вызове макроса 2002-AUG-26 MON 15:50:06 FOR PARAMETERS, USE FOLLOWING TABLE PAR RELATION TUPLE SERVICES --- -------- ----- -------- 1 R_OT_COS ALL FOLL: ALL FOLL: ;т.е. 10,11,12,13 и 14 10 R_OT_COS D_O_COS ADDCFR CAHLD CCBS CCNR ECTRF HLDENQ STKBRK TPS CFR3W 11 R_OT_COS D_ALL_FLAG AC24HOUR ACDAYS CFWDBSUB CFWDFIXA CFWDNOR CFWDUVAR CWTG-SUBCTRL FDCTO-SUBCTRL ICB-FIXED OCBVAR PSW-CHANG 12 R_OT_COS D_T_COS CCBS-INH CCNR-INH CFWD-INH CWTG-RECALL CGLIP CGLIROWR 13 R_OT_COS D_INT_CAUS BADP MOVE CHGNBR 14 R_OT_COS D_OBS_TERM MALCIDF TOBS 2 R_OT_BSCOS ALL FOLL: ALL FOLL: ;т.е. 20,21 и 22 20 R_OT_BSCOS D_ICB_PER ICB-PERM 21 R_OT_BSCOS D_OCB_PRD OCB-FIX 22 R_OT_BSCOS D_BS_CLASS BLNGLEV 3 R_DICO_INF D_DICO_PRF THE SAME AS 30 ;без разницы - 3 или 30 30 R_DICO_INF D_DICO_PRF FDCI-FDC FDCTO-FDC 4 ALL FOLL: ALL FOLL: ;т.е. 40,41 и 42 40 R_ABBR_INF ALL_TUPLES ABD 41 R_Q_INFO ALL_TUPLES QUEUE 42 R_FACKEY ALL_TUPLES PSW 5 R_IWDN_RDN ALL_TUPLES RNGDN 6 R_MSN_IDF ALL_TUPLES MSN 7 R_AC_DATA ALL_TUPLES ALMCALL 8 R_ELCCOL2 D_LIN_TYP2 THE SAME AS 80 ;без разницы - 8 или 80 80 D_LIN_TYP2 ORGOBS POLAR KHZ16 CATASTRO DIALSET PBSET 9 R_OLCOS D_CPC THE SAME AS 90 ;без разницы - 9 или 90 90 D_CPC CBOX RSTCBX RSTSSUB PRIOSUB FOR EX.: NSERV:7,6 - GET ALL ACTIVE ALMCALLS AND MSN ;прямая логика NSERV:-42,-5 - ALL EXCEPT PASSWORD AND RNGDN ;инверсная логика NUMBER OF PARAMETERS 0...9 ;количество параметров от 0 до 9 Из последней фразы можно предположить, что части полной программы работы макроса можно компоновать произвольным образом. Так оно и есть. Можете использовать прямую или инверсную логику, или обе вместе : NSERV:7,6 - взведенные будильники и MSN ;прямая логика NSERV:-42,-5 - все кроме операторского пароля и RNGDN ;инверсная логика NSERV:1,-12 - все равно что NSERV:10,11,13,14 ;обе вместе NSERV:1,-12,2,-20 - все равно что NSERV:10,11,13,14,21,22 ;обе вместе Так как макрос NSERV нужен не всегда, а только периодически, в файл nserv.mac включен макрос REMNSERV. При его запуске удаляются из памяти MPTMON'а все макросы этого файла. В архив включена (отдельным файлом nserv.dls) версия этого же макроса для станций, у которых по умолчанию у абонента стоит импульсный набор, а тональный набор считается услугой. Настройка макроса NSERV. (возможно Вам не понадобится) ------------------------ Найдите в файле nserv.mac строку ;---------------- USER SETTINGS --------------------------- Все настройки находятся между ней и строкой ;---------------- END OF USER SETTINGS -------------------- 1.Исключить выдачу информации о какой-либо услуге. Для примера в исходном тексте уже исключена выдача CATASTRO, которой (предположительно) никто в России не пользуется. Это выглядит как ;INHIBITS WOR LWA+3C8=FFFF ;CATASTRO В результате выдается SUMMARY NUMBER OF SUBSCRIBERS USING : ....... * CATASTRO - 65535 ....... В ITOGO это число не входит, но является признаком запрета выдачи ненужной Вам информации для ускорения работы макроса. Для примера запретим DIALSET. В Соликамске она установлена только на единичных таксофонах, но у Вас может быть это и не так. Тогда чуть ниже USER SETTINGS находим строку : '* DIALSET - ',WOR LWA+3CC откуда видно, что грубо говоря адрес этой услуги в программе 3CC. После WOR LWA+3C8=FFFF ;CATASTRO добавим строку WOR LWA+3CC=FFFF ;DIALSET тем самым запрет на выдачу информации о DIALSET установлен и вступит в действие после перезагрузки макроса командой INC. ;DIALSET - всего лишь комментарий, который Вы можете и не писать. Русские буквы недопустимы, иначе макрос перестанет работать. Соответственно удаление строки WOR LWA+3C8=FFFF ;CATASTRO приведет к отмене запрета выдачи информации о CATASTRO. Список запретов может быть пустым. 2.Не выдается информация об услугах при NSERV:8 или 9 по группе адресов - скажем вынос или первичный доступ или host. Надо добавить тип несканиру- емого CTLE в список типов сканируемых абонентских модулей : ;SUBSC MOD D_CE_FUNC FOR NSERV:8,9 BYT LWA+280=5C,5D,6C,01,02,03,2C,3A BYT LWA+288=3B,3C,49,4A,4B,52,00,00 BYT LWA+290=00,00,00,00,00,00,00,00 Первая строка здесь комментарий и ничего не значит. 00 - признак конца списка, вместо первого 00 нужно записать Ваш обойденный вниманием тип процессора. Допустим, не сканируется адрес H'30. Тип процессора найдем командой <379:1="R_CE_CLASS",2="D_PCE"&0&"30H". DISPLAY-TUPLE SUCCESSFUL ----------------------------------------------------------------------- LCEID = H'0 NA = H'000D REL = R_CE_CLASS D_LCE_ID = 47C0 D_PCE = 0030 D_SUB_EXCH = 00 D_CE_FUNC = A8 ;этот D_CE_MEMEQ = 05 D_VP_INDEX = 01B0 D_SBLTYP = A6 , домен D_CE_FUNC. Измененный список типов сканируемых абонентских модулей будет выглядеть как : BYT LWA+280=5C,5D,6C,01,02,03,2C,3A BYT LWA+288=3B,3C,49,4A,4B,52,A8,00 BYT LWA+290=00,00,00,00,00,00,00,00 --------------------------------------------- 5.MEAGRP - поиск абонентов с определенными значениями MEAGRP. От правильного присвоения MEAGRP зависит работа статистики. Макрос позволяет достаточно быстро найти абонентов с MEAGRP, по Вашим мыслимым и немыслимым условиям. Например,  >MEAGRP:55 DNET ACCOUNTING............................... ;расчет тысячных групп CONDITION : MEAGRP = 55 055 5375892 Или так :  >MEAGRP:5,60,157 DNET ACCOUNTING............................... 5, CONDITION : MEAGRP = 5 005 5375892 60, CONDITION : MEAGRP = 60 060 5378299 157, CONDITION : MEAGRP = 157 157 5376667 Если параметр от 300 до 37F, то он воспринимается как смещение в LWA, где начинается список поиска. Запуск макроса без параметров означает список поиска по умолчанию (LWA+300). Тут уже возможны любые комбинации условий по "И", однако Вам надо будет исправить под себя текст макроса. Рассмотрим текст макроса : ;SEARCH LIST ;все что после точки с запятой рассматривается как комментарий ;0= ;знаки сравнения и соответствующие им числа ;1!= ;2< ;3<= ;4> ;5>= ;06...FF(END COND.) BYT LWA+300=01,000T,FF,000T,FF,000T,FF,000T ............ BYT LWA+378=FF,000T,FF,000T,FF,000T,FF,000T Область начиная с LWA+300 по LWA+37F рассматривается макросом как массив структур каждая из 2 байт. Первый байт означает знак сравнения либо конец списка (FF). Второй - число с которым сравнивать значение MEAGRP. T означает десятичное число, LWA (Local Work Area) - некий адрес, который мы не можем изменить. Все условия объединяются по И. Например, BYT LWA+300=05,001T,03,009T,FF означает MEAGRP от 1 до 9. В соликамской статистике всем абонентам RSU присвоена MEAGRP с номером RSU, а таксофоны имеют каждый свою MEAGRP. Чтобы найти все таксофоны, мне стало быть надо написать : BYT LWA+300=01,007T,01,022T,01,023T,01,040T BYT LWA+308=01,041T,01,044T,01,071T,01,072T BYT LWA+310=01,073T,01,074T,FF,000T,FF,000T Макрос MEAGRP при этом выдаст следующее :  >MEAGRP: DNET ACCOUNTING............................... CONDITION : MEAGRP <> 7 AND MEAGRP <> 22 AND MEAGRP <> 23 AND MEAGRP <> 40 AND MEAGRP <> 41 AND MEAGRP <> 44 AND MEAGRP <> 71 AND MEAGRP <> 72 AND MEAGRP <> 73 AND MEAGRP <> 74 240 5370002 241 5370003 ............ Максимальное число условий в списке поиска 42. Списков поиска может быть несколько. Адреса начиная с LWA+380 использовать нельзя - макрос исполь- зует их в своих целях. Максимальное число параметров макроса 9. Показателен следующий тестовый пример. Допустим, Вы исправили Search List следующим образом : BYT LWA+300=00,244T,02,000T,FF,000T,03,001T ;300:M=244&M<0 302:M<0 306:M<=1 BYT LWA+308=FF,000T,04,240T,FF,000T,05,256T ;30A:M>240 30E:M>=256 BYT LWA+310=FF,000T,FF,000T,FF,000T,FF,000T Тогда запуск >MEAGRP:555,300,302,30,306,2,30A,30E,310 даст примерно следующие результаты : DNET ACCOUNTING............................... 555, CONDITION : ;ошибка, т.к. MEAGRP не может быть >255 MEAGRP = 555 ***ERROR 300, CONDITION : ;задание по адресу LWA+300 MEAGRP = 244 AND MEAGRP < 0 NO SUBSCRIBERS FOR THIS CONDITION 302, CONDITION : ;задание по адресу LWA+302 MEAGRP < 0 NO SUBSCRIBERS FOR THIS CONDITION 30, CONDITION : ;30 воспринимается как MEAGRP (десятичное) MEAGRP = 30 030 5370517 306, CONDITION : ;задание по адресу LWA+306 MEAGRP <= 1 000 5374954 000 5374955 ................. 000 5374970 2, CONDITION : ;2 воспринимается как MEAGRP MEAGRP = 2 NO SUBSCRIBERS FOR THIS CONDITION 30A, CONDITION : ;задание по адресу LWA+30A MEAGRP > 250 251 5370812 30E, CONDITION : ;задание по адресу LWA+30E MEAGRP >= 255 NO SUBSCRIBERS FOR THIS CONDITION 310, ZERO CONDITION - ALL MEAGRPS ;задание по адресу LWA+310 007 5370000 ; начинается с FF, т.е. пустой Search List 007 5370001 ; Выводятся все абоненты станции 240 5370002 ................. --------------------------------------------- 6.SUBGRP - поиск абонентов с определенными значениями SUBGRP. Логика работы точно такая же как у макроса MEAGRP (п.5). Предполагается, что Вы не исполь- зуете значения SUBGRP выше 255.  >LON 1.LOG  >SUBGRP:8,3,11 DNET ACCOUNTING............................... ;расчет тысячных групп 8, CONDITION : SUBGRP = 8 008 5370029 008 5370057 ................. 3, CONDITION : SUBGRP = 3 NO SUBSCRIBERS FOR THIS CONDITION 11, CONDITION : SUBGRP = 11 011 5370084 011 5373249 011 5343086 011 5347778 011 5342955 Запуск макроса без параметров означает список поиска по умолчанию (LWA+300). Логику построения списка поиска см. п.5 (описание макроса MEAGRP).  >SUBGRP: DNET ACCOUNTING............................... CONDITION : SUBGRP <> 1 002 5370002 002 5370003 ................. Максимальное число условий в списке поиска 28. Списков поиска может быть несколько. Адреса начиная с LWA+380 использовать нельзя - макрос исполь- зует их в своих целях. Максимальное число параметров макроса 9. --------------------------------------------- 7.NUMP - получить план нумерации станции, т.е. список соответствия DN-EN наподобие : HOST H'0000 02&B&6 SLIF 1 128 ALCB 5370000-5370127 HOST H'0001 02&B&8 SLIF 129 222 ALCB 5370128-5370221 RSU23 H'1032 91&B&6 SLIF 36 36 ALCB 5370222-5370222 HOST H'0001 02&B&8 SLIF 224 256 ALCB 5370223-5370255 HOST H'0002 02&B&8 SLIF 1 2 ALCB 5370256-5370257 FREE 5370258-5370258 ;возможно номер удален или SPC HOST H'0002 02&B&8 SLIF 4 25 ALCB 5370259-5370280 FREE 5370281-5370281 HOST H'0002 02&B&8 SLIF 27 128 ALCB 5370282-5370383 HOST H'0003 02&B&6 SLIF 129 131 ALCB 5370384-5370386 FREE 5370387-5370387 HOST H'0003 02&B&6 SLIF 133 143 ALCB 5370388-5370398 FREE 5370399-5370399 HOST H'0003 02&B&6 SLIF 145 256 ALCB 5370400-5370511 HOST H'0030 02&B&2 SLIF 1 9 ALCB 5370512-5370520 FREE 5370521-5370521 HOST H'0030 02&B&2 SLIF 11 128 ALCB 5370522-5370639 HOST H'0031 02&B&4 SLIF 129 199 ALCB 5370640-5370710 FREE 5370711-5370711 HOST H'0031 02&B&4 SLIF 201 248 ALCB 5370712-5370759 FREE 5370760-5370767 ............ Этот список можно использовать как документ либо как конфигурационный файл при обработке статистики. Время работы макроса при 16000 абонентах около 12 часов, поэтому можно запускать его по частям, с параметрами - >NUMP:начальный_DN,конечный_DN >NUMP:5348427,5348429 ;можете поэкспериментировать что будет если ;длина этих номеров не 7, а меньше HOST H'0033 02&B&2 SLIF 180 182 ISTB 5348427-5348429 Во время своей работы макрос попутно ищет и выдает информацию об ошибках в R_SBL_RIT1, R_RIT_SBL1, R_RIT_RBL1 (здесь это не показано). В случае наличия таких ошибок возможна неверная работа 39-й команды ; можете обратиться к сервисам. Местонахождение абонента (1-я колонка) берется из R_RSU_NAME, в крайнем случае можете подправить ее самостоятельно командой : <378:1="R_RSU_NAME",2="D_LCE_ID"&0&"....H",4,SHOW,3="D_RSU_1"&0&"...". --------------------------------------------- 8.Макрос PRESALLO - проверить/установить Presentation Allowed в R_INCTKG_G, R_SOURTACE и R_CACO_SYS. Если запустить его без параметров, будет только проверка; при запуске PRESALLO:SETALL - установка. Запуск макроса имеет смысл если у Вас есть ОКСовские TKG. При наличии таких TKG возможна невыдача номера вызывающего по м/гор шнуру, тогда при ведении DBLNG только на областной междугородке будет бесплатный межгород по ОКСу с Вашего направления. Ну, и другие неприятности могут иметь место. Чтобы выдавать Calling number и 'Presentation allowed', в DID'ах должно быть : PRESALLO: R_INCTKG_G : NOTHING TO CHANGE, PRESENTATION ALLOWED ANYWHERE R_SOURTACE AND R_CACO_SYS : NOTHING TO CHANGE, PRESENTATION ALLOWED ANYWHERE Такой запуск макроса PRESALLO (без параметров) в любом случае безопасен - он ничего не изменит в базе данных станции. Если результаты выдачи у Вас другие, то возможна ситуация, когда в одной и той же ОКСовской TKG, с одного DTMовского адреса Calling Number в IAM выдается, а с другого нет, несмотря на то что в DIDах все установлено верно. Тогда исправьте 3 вышеприведенные relations вручную 378-й командой, либо изучите как работает команда ROLL-BACK-DB, наберитесь смелости и запустите этот макрос как PRESALLO:SETALL. Откат назад может быть сделан не позднее чем через 3 часа после такого запуска.  >PRESALLO: R_INCTKG_G : D_TKGPN = 0400 D_TKGPINFO = 4092 TKGID = ANI_LOOP_I_07 (TO 4012) ? D_TKGPN = 0401 D_TKGPINFO = 4092 TKGID = CL_533_L_I_6 (TO 4012) ? .................. D_TKGPN = 0449 D_TKGPINFO = 4092 TKGID = CL_JUL_L (TO 4012) ? R_SOURTACE : D_TKGPN = 0426 D_TKGPINFO = 9240 LCE = 2AC0 TKG = CL_535_L_I_7 TO 4012) ? D_TKGPN = 0425 D_TKGPINFO = 9240 LCE = 2B00 TKG = CL_533_L_I_7 TO 4012) ? .................. D_TKGPN = 0421 D_TKGPINFO = 9240 LCE = 3460 TKG = CL_533_L_I_4 TO 4012) ?  >PRESALLO:SETALL R_INCTKG_G : D_TKGPN = 0400 D_TKGPINFO = 4092 TKGID = ANI_LOOP_I_07 (TO 4012) ! D_TKGPN = 0401 D_TKGPINFO = 4092 TKGID = CL_533_L_I_6 (TO 4012) ! .................. D_TKGPN = 0449 D_TKGPINFO = 4092 TKGID = CL_JUL_L (TO 4012) ! R_SOURTACE : D_TKGPN = 0426 D_TKGPINFO = 9240 LCE = 2AC0 TKG = CL_535_L_I_7 TO 4012) ! D_TKGPN = 0425 D_TKGPINFO = 9240 LCE = 2B00 TKG = CL_533_L_I_7 TO 4012) ! .................. D_TKGPN = 0421 D_TKGPINFO = 9240 LCE = 3460 TKG = CL_533_L_I_4 TO 4012) ! 9.Макрос OCB - вывести список абонентов с ограничениями по Outgoing Call Barring. С параметром WRONG выдается только информация об абонентах с ошибками в БД, по исходящим ограничениям.  >OCB:WRONG DNET ACCOUNTING............................... ;ничего не значит OCB ACCOUNTING........ **************** OCB-SUBCTRL ***************** ;по subctrl=add&ocbvar FE5D 5342012 ; - ошибка : в r_ocb_bp нет такой комбинации **************** OCB-PERM ******************** ;по ocb=add&perm&... **************** OCB-KEY ********************* Без параметров этот макрос выдает всех абонентов с OCB.  >OCB: 6 5370669 ;где 6 - уровень ограничения ... 1 5370732 10 5348754 ... ;все это можно отсортировать по возрастанию, и будет ; Вам полезно. Однако он не выдает абонентов с FIXED, т.е. тех где ограничение было поставлено с помощью 4294:...,ocb=activate&fixed&... С такими абонентами вообще неудобно работать. Советую найти их всех с помощью макроса NSERV и заменить fixed на perm. Разницы никакой, а проблем меньше. Макрос может быть полезен, если Вы что-то меняли (или собираетесь менять) в R_OCB_BP. --------------------------------------------- Версия ПО станции АТС-7 Соликамск P7M400. На более древних версиях - тоже работают. На более новых возможно понадобится коррекция, если какой-нибудь из макросов зависнет. Тогда рестартуйте PTCE (H'16 скорее всего). Более такого рестарта, запуски вышеприведенных мак- росов Вам ничем не грозят. Следующие макросы (10...12) используют только MMC-команды : --------------------------------------------- 10.Файл crt.mac, макросы : CRTI - создать входящую TKG CRTO - создать исходящую TKG EXTT - расширить число каналов TKG REDT - сократить число каналов TKG Примеры запуска : CRTI:CL_NEWDIR_L_I,CL_OLDDIR_L_I - создать входящую TKG CL_NEWDIR_L_I, полную копию CL_OLDDIR_L_I (кроме ROUTE, он создается одноименный с TKG) CRTO:CL_NEWDIR_L_O,CL_OLDDIR_L_O,ROUTE_CL_NEWDIR - создать исходящую TKG CL_NEWDIR_L_O, полную копию CL_OLDDIR_L_O (кроме ROUTE, он создается одноименный с TKG) Далее создать RTEBL с именем ROUTE_CL_NEWDIR и DESTACC. EXTT:CL_NEWDIR_L_O,221&1&&15&1,221&17&&31&16 - подцепить к ней каналы REDT:CL_NEWDIR_L_O,221&1&&15,221&17&&31 - отцепить от нее каналы --------------------------------------------- 11.Файл endis.mac, макросы : DISN и DISN1 - to disable (6) lot of subscribers ENN и ENN1 - to enable (7) lot of subscribers TESN1 - to test (14) lot of subscribers Пусть имеются абоненты, о которых макрос NUMP (см. выше) сообщает следующее : HOST H'0031 02&B&4 SLIF 129 199 ALCB 5371640-5371710 Тогда задизейблить их можно командой DISN:5371640,5371710 либо командой DISN1:31,129,199 Внимание ! Аварии SLIFs не заносятся в список аварий (19 ком.). Соответственно инициализировать их можно командой ENN:5371640,5371710 либо командой ENN1:31,129,199 Протестировать (14-й) - командой TESN1:31,129,199 В отличие от :DISN(1), аварии SLIFs заносятся в список аварий (19 ком.). Все эти макросы прекращают свою работу при первом же неуспешном рапорте. --------------------------------------------- 12.Файл remcrsub.mac, макросы : REMSUB - to remove lot of subscribers CRASUB - to create lot of analog subscribers CRISUB - to create lot of ISDN subscribers MDFSUB - to modify lot of subscribers ACHTUNG ! Перед тем как массово удалять абонентов, убедитесь хотя бы с по- мощью макроса NSERV (п.4), что они не имеют дополнительных услуг. Иначе возможны потерянные ссылки в базе данных. Пусть имеются аналоговые абоненты, о которых макрос NUMP (см. выше) сообщает следующее : HOST H'0031 02&B&4 SLIF 129 199 ALCB 5371640-5371710 Тогда удалить их можно командой REMSUB:5371640,31,129,71 (где 71=199-129+1 - количество абонентов, можно написать даже REMSUB:5371640,31,129,199T-129T+1) Соответственно создать их можно командой CRASUB:5371640,31,129,71 Пусть имеются ISDN абоненты, о которых макрос NUMP (см. выше) сообщает следующее : HOST H'0031 02&B&4 SLIF 129 199 ISTB 5371640-5371710 (не на E-стативе) Тогда удалить их можно командой REMSUB:5371640,31,129,71 (где 71=199-129+1 - количество абонентов, можно написать даже REMSUB:5371640,31,129,710T-640T+1) Соответственно создать их можно командой CRISUB:5371640,31,129,71 Макрос MDFSUB предназначен для массовой модификации абонентов. При запуске без параметров выдает короткий help : Должно быть 2 или 3 параметра : - начальный DN (5348720 например) - конечный DN (5349146 например) - [десятичное количество абонентов в пачке] 30T по умолчанию Строку модификации макрос запросит отдельно. Она может заканчиваться ; или . или ? Иначе будет запрошено продолжение. Примеры запуска : 1. >MDFSUB:5348576,5348639 ;установить определение номера вызывающего ;для группы ISDN-абонентов ENTER YOUR MODIFICATION STRING (MAX LEN=32 ) :>NBRIDFCD=ADD&CGLIP&CGLIROWR. ACCEPTED : NBRIDFCD=ADD&CGLIP&CGLIROWR. <4294:DN=K'5348576&&K'5348605, | Будет сгенерировано 3 команды NBRIDFCD=ADD&CGLIP&CGLIROWR. | Число абонентов в пачке по умолчанию 30T | Можно изменить длину пачки на 20T : <4294:DN=K'5348606&&K'5348635, | >MDFSUB:5348576,5348639,20 - сгенерируется NBRIDFCD=ADD&CGLIP&CGLIROWR. | 4 команды вместо 3-х | Если ввести >NBRIDFCD=ADD&CGLIP&CGLIROWR? <4294:DN=K'5348636&&K'5348639, | , на каждую надо будет давать NBRIDFCD=ADD&CGLIP&CGLIROWR. | подтверждение 2. >MDFSUB:5371000,5371023 ;тестовый пример для длинной строки модификации ENTER YOUR MODIFICATION STRING (MAX LEN=32 ) :>SUBGRP=1,MEAGRP=0,SUBGRP=1 ACCEPTED : SUBGRP=1,MEAGRP=0,SUBGRP=1 CONTINUE YOUR MODIFICATION STRING :>,MEAGRP=0,SUBGRP=1,MEAGRP= ACCEPTED : ,MEAGRP=0,SUBGRP=1,MEAGRP= CONTINUE YOUR MODIFICATION STRING :>0,SUBGRP=1,MEAGRP=0,SUBGRP=1. ACCEPTED : 0,SUBGRP=1,MEAGRP=0,SUBGRP=1. <4294:DN=K'5371000&&K'5371023, | Будет сгенерирована 1 команда SUBGRP=1,MEAGRP=0,SUBGRP=1,MEA | GRP=0,SUBGRP=1,MEAGRP=0,SUBGRP | =1,MEAGRP=0,SUBGRP=1; | Все эти макросы прекращают свою работу при первом же неуспешном рапорте. 13.Файл getcon.mac, макрос GETCON - альтернативный макросу TNST2M, однако шире его по своим возможностям. Работает, как и TNST2M, в реальном времени. Может применяться при проверке каналов TKG (1),(2), либо для слежения за CAS или N7 потоком или абонентским модулем (3),(4). Допустимые вызовы : GETCON:5370668 - показать соединения (7-значного) DN (1) GETCON:31,15 - показать соединения DN либо trunk'а (2) GETCON:31,1,22 - показать соединения группы DN либо trunk'ов (3) GETCON:31,513,768 - показать соединения группы DN (4) (в частности, аналог TNST2M для потока, GETCON:210,1,31 - но необязательно же показывать весь поток, GETCON:210,10,21 К тому же 210 может быть и ОКС N7) Чтобы Вы не сильно отрывались от реальности, прежде чем запустить слежение макрос делает проверки для первого из объектов наблюдения и ругается при его отсутствии либо при некорректных воротах (min,max), либо если наблюдаемый модуль не является ни абонентским, ни транковым. Вид экрана : ------------ 0730 & 1 <-> X X 0730 & 2 <-> 0231 & 180 0730 & 3 <-> 0033 & 180 0730 & 4 <-> - - 0730 & 5 <-> - - 0730 & 6 <-> 0712 & 14 ................ ' X X ' означает, что данный SBL (DTCH или SLIF) находится вне трафика (захвачен либо это линк или общий канал сигнализации, или заблокирован), ' - - ' что SBL доступен, но соединения нет. Интересен случай (4) GETCON:31,513,768. Явно, такое число объектов наблюдения не поместится на экране. Тогда макрос начинает выводить только активных абонентов, т.е. со снятой трубкой. Сначала делается моментальный снимок активных абонентов посылкой сообщения 10112_GIVE_TDS в абонентский модуль, затем по каждому активному посылается 10474_GIVE_CON. Если общее число активных более 30, налицо перегрузка модуля. Строки с номером более 30 помечаются выделением и в дальнейшем не затираются, остаются на экране. Вы можете оставить наблюдение за абонентским модулем на длительное время, чтобы потом прийти и оценить, насколько он перегружен. Впрочем, на по-настоящему перегруженном модуле в ЧНН перегрузка будет видна сразу. При останове слежения (клавиша Esc) может выдаться что-то вроде : MESSAGE RECEIVED: MSG NAME SRC_PID DST_PID LLRA PTFF PATH BUF_PTR SIZE 10987 CON_REPLY 0200_1E07 00C0_061A 2010 4E00 .... ....:.... .... - не берите это в голову. 14.Файл load.mac, макрос LOAD - построение списка загруженности абонентских процессоров станции в реальном времени. Понаблюдав макросом GETCON в режиме (4) за каким-нибудь перегруженным абонентским модулем, Вам может быть захочется посмотреть общую картину по всей станции : 0012 23 0032 22 0122 22 0631 20 0013 20 1111 19 0432 16 1211 15 0613 15 0630 14 1032 14 1033 13 1010 13 0001 12 1133 12 0503 11 1012 11 0020 11 1120 11 1020 11 0633 11 0200 11 1110 12 1103 11 0721 11 0203 10 1121 10 1102 10 0621 10 1131 10 0433 10 0610 10 1210 11 0002 9 1200 9 1030 9 1013 9 0611 9 0430 9 1132 9 0021 9 0121 9 0022 9 1226 9 0030 9 0723 8 1000 8 1021 8 0011 8 0123 8 1201 8 0431 8 1100 8 0632 8 1011 7 1001 7 0502 7 0031 7 0202 7 1122 7 0023 7 0620 7 0010 7 1130 7 1123 7 0120 7 0003 7 0722 6 1031 6 1101 6 0720 6 0000 5 0612 5 0201 5 0033 2 0501 0 - примерно это и выдает вышеуказанный макрос. Четырехзначные это адреса абонентских модулей, цифры рядом с ними - максимальное количество одновременно поднятых трубок + поступивших звонков за все время наблюдения. Перегрузки (с учетом количества SPC на данном адресе) помечаются выделением. Макрос должен работать в ЧНН длительное время, чтобы правильно оценить загрузку модулей. Загруженность в вечернее и дневное время будет сильно отличаться. В начале работы макроса выдается сообщение : SUBSCRIBER PROCESSOR LIST BUILDING... Это не форматирование станционных дисков, а построение списка абонентских модулей, подождите минут пять. Построив список, макрос сортирует его по убыванию загруженности (на это тоже уходит около минуты), затем выводит на экран упорядоченный список. Потом обновляет его, снова сортирует, и так далее, пока Вы не остановите его работу клавишей Esc. --------------------------------------------- г. Соликамск АТС-7 iborodin@perm.usi.ru (34253)48427,70668 Бородин Игорь