Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Aspect scripting in telecomm 2

Status
Not open for further replies.

Cuberat

Technical User
Jan 16, 2006
8
US
I work in a MTSO for a cellular company. The good Lord knows I would have withdrawals if they took Procomm away from me!

Anyhow....just saying hello. New to this page/forum.

Kudos to knob and VERY helpful stuff in there.

I mostly write scripts on Tellabs DACS (5500) and DMS-MTX switch. If someone is looking for something....I may have it already built. My scripts aren't neat and clean, but they make sense. I build them VERY PLAIN in a attempt to get others involved in Aspect.

Enjoy!
 
Glad to be of help. If you have any scripts you would like me to put on my site, I would be happy to do so (just give me enough of a description so I can list them accurately).

 

Cuberat,

I also work for a cellular company, have 5500 and would love to see any scripts that would make life with TL1 any easier, I spend way too much time looking up command syntax for infrequent task when EMS isn't operational.
 
I used to work for Tellabs in tech support.

Trust me when I say this: they make a good product, but
the EMS is not needed. Get rid of it.

As you know, the EMS is a GUI. It has 1 or 2 features that can be useful from a switch tech's perspective. From a NOC perspective, even more so. But if you work with folks in the switch, quit using it and get back to TL1.

ANYTHING that thing can do, you can do on your own in TL1. And scripting it in TL1/Procomm is easy. You can start with a record session and fine-tune it from there.

In Procomm, I use a meta-key for RTRV-COND-ALL:::CTAG;
That's simple. I also use another metakey to link to a script that runs multiple commands (CONN-TACC....RTRV-PM...editing T1's for PASUSP....etc). It's one script that runs a menu system connected to other scripts or commands.

Here's one I built (by using the record method) to grow from the STS1 level (on a OC3, OC12 or STS1E)....grows the STS1's, and the VT1's.....IN SERVICE, with passive alarm suspension on. It does the STS1~VT1.....one at a time.....but loops. It asks for the SDF as the input. You can augment it to loop 3 times....or 12 times....whatever.

If you ask why I don't include the OC3 (OPM, OPM3-W, OPM3-P).....because....people have a tendency to cross the fibers a LOT. From my experience, you'll need to rework the fibers. If they're wrong, it would crash this simple script. I could write one that would encompass reworking the fibers, but it's not worth the effort (unless I got paid for it). Besides...those commands only take a few seconds. Once you get the fibers straight, this script should just fly on it's own.

proc main
string VTEnter
integer Jump
setjmp 0 Jump
sdlginput "5500 Mass VT Enter" "Enter the SDF of the VT1.5's:" VTEnter
if FAILURE
halt
endif
transmit "ENT-STS1::STS1-"
transmit VTEnter
transmit ":CTAG:::ALM=ALW,PASUSP=TRIG,PATM=00-02-00:IS;"
waitfor "COMPLD" 60
transmit "SET-PMMODE-STS1::STS1-"
transmit VTEnter
transmit ":CTAG::NEND,ALL,ON;"
waitfor "COMPLD" 60
transmit "ENT-VT1::VT1-"
transmit VTEnter
transmit "-1&&-28:CTAG:::ALM=ALW,PASUSP=TRIG,PATM=00-02-00,VTMAP=ASYNC:IS;"
waitfor "COMPLD" 120
transmit "SET-PMMODE-VT1::VT1-"
transmit VTEnter
transmit "-1&&-28:CTAG::NEND,ALL,ON;"
waitfor "COMPLD" 60
longjmp 0 Jump
endproc

Once again....I build scripts for OTHER PEOPLE TO LEARN this. I don't build them to be pretty or neat. I build them to be educational and functional.

Give it a shot.
 
Cuberat,

Appreciate the primer I can definitely expand on this, I agree the EMS is a dumb animal, but it is useful for redundant task,
I am still forced to use TL1 for quite a great deal as the EMS leaves quite a bit to be desired at times.
 
Redundant task like deleting multiple crossconnects, entering the same on and just quick verification of PM properties.

It is convience factor....
 
Cuberat or Knob,


I have one for you I am tasked with a repetitive task, I would like to take a column from a spreadsheet which contains in-service ports which I would like to use the simple script below to set to collect stats.

From the excel sprdsheet I would like to place SDF # column data into T1Enter variable, and repeat this till the final cell is reached in that column.

Any ideas would be helpful...

proc main
string T1Enter
integer Jump
setjmp 0 Jump
sdlginput "5500 Gibson T1 Enter" "Enter the SDF of the T1.5's:" T1Enter
if FAILURE
halt
endif
transmit "SET-PMMODE-T1::"
transmit T1Enter
transmit "-1&&-28:WW::NEND,ALL,ON;"
waitfor "COMPLD" 60

longjmp 0 Jump
endproc
 
Here's a quick sample from my site that I modified to read from column 3, then exit when it reads a blank cell. You would need to insert the proper commands at the commented section that reads "your commands here"

proc main
long LinkVar, SystemVar ;Variables containing DDE Id's.
string szText ;Text read from DDE link to Excel.
integer iRow ;Row and column variables
string sRowCol ;Holds request for row and column
integer iLen ;Holds length of string received from Excel

iRow = 1 ;Start reading with row 1

;Set up DDE links to Excel's system and a spreadsheet. Excel
;must be running in order for this script to work properly.
if ddeinit SystemVar "excel" "system"
ddeexecute SystemVar "[FULL(TRUE)]" ;Maximize the spreadsheet.
if ddeinit LinkVar "excel" "sheet1" ;Set up link to spreadsheet.
while 1 ;Loop forever.
strfmt sRowCol "R%dC%d" iRow 3 ;Format request for data from current row, column 3
dderequest LinkVar sRowCol szText ;Read data from spreadsheet, current row, column 3
strlen szText iLen ;Get length of string
if iLen == 2 ;Indicates empty cell
exitwhile ;Exit the while loop.
else
;your commands go here
endif
iRow++ ;Increment row value
endwhile
ddeterminate LinkVar ;Break DDE link to spreadsheet.
ddeterminate SystemVar ;Break DDE link to Excel.
else
errormsg "Couldn't establish DDE link to spreadsheet!"
endif
else
errormsg "Couldn't establish DDE link to Excel!"
endif
endproc

 
OK Knob,

I am a bit of a Polish hacker (It's a joke son)
I attempted to modify the script but ran into a problem, had excel sprdsheet open but got "Couldn't establish DDE link to Excel!".

I am running Windows 2000, and here is the script as I attempted to run it:

proc main
long LinkVar, SystemVar ;Variables containing DDE Id's.
string szText ;Text read from DDE link to Excel.
integer iRow ;Row and column variables
string sRowCol ;Holds request for row and column
integer iLen ;Holds length of string received from Excel

iRow = 6 ;Start reading with row 6

;Set up DDE links to Excel's system and a spreadsheet. Excel
;must be running in order for this script to work properly.
if ddeinit SystemVar "excel" "system"
ddeexecute SystemVar "[FULL(TRUE)]" ;Maximize the spreadsheet.
if ddeinit LinkVar "c:\Program Files\Symantec\Procomm Plus\Capture\SDFEQP.xls" "sheet1" ;Set up link to spreadsheet.
while 1 ;Loop forever.
strfmt sRowCol "R%dC%d" iRow 3 ;Format request for data from current row, column 3
dderequest LinkVar sRowCol szText ;Read data from spreadsheet, current row, column 3
strlen szText iLen ;Get length of string
if iLen == 2 ;Indicates empty cell
exitwhile ;Exit the while loop.
else
;set-pmmode-t1::szText-1&&28:ww::nend,all,on;
endif
iRow++ ;Increment row value
endwhile
ddeterminate LinkVar ;Break DDE link to spreadsheet.
ddeterminate SystemVar ;Break DDE link to Excel.
else
errormsg "Couldn't establish DDE link to spreadsheet!"
endif
else
errormsg "Couldn't establish DDE link to Excel!"
endif

endproc



 
On the if ddeinit LinkVar command, you just need "excel" in the double quotes and not the actual path to the spreadsheet ("excel" is the server name of the application, not the actual file in this case). If you make that change, does it work?

 
Knob,

I tried both ways, with the change back to the original "excel" "sheet1" the compile completes without error, but when executed the script does absolutely nothing at all...
 
OK, if you are not getting any error messages displayed, then it should be accessing the spreadsheet OK now. You will need to uncomment and/or modify this line:

;set-pmmode-t1::szText-1&&28:ww::nend,all,on;

so that the script can perform whatever commands are needed with the spreadsheet cell contents that are in the szText string variable.

 
there are examples here to build a dll link to an excel, i built a few but find saving the excel as a tab delimited works quicker and give me less debug problems.. this guy has the market cornered on aspect


john poole
bellsouth business
columbia,sc
 
anyone looking for scripts to use with merridian sl-1, that forum has a few pretty decent one's.. started using tab delimited to make changes and now i would be lost without then.. making even a simple change on a few thousand sets turns 40 hours into 2 hours.. good thing is during those two hours, i can watch tech-tips...

john poole
bellsouth business
columbia,sc
 
and Cuberat welcome to the site

john poole
bellsouth business
columbia,sc
 
Script funtioning but the string variable "szText" is being inserted into the command I am sending instead of the number contained within the cell.

Is there a command used to verify the content of the string vaiable...??
 
Afternoon,
I am new to Procomm as I just started working with reporting in my company and we use Procomm as our customer service statistics reporting. I have done some previous coding in Microsoft Access and have gotten pretty good, although I have no formal education, so I don't know anything else. I was at but I think it is a little over my head or too high level from what I was looking for. So...

The way I was instructed was that this program will always print to a specific printer when requesting stats, they say that no screen actually displays that info, but once you get to a certain screen you enter the date and time range, then you press F9-Process, then it automatically prints it. I want it to output a file in addition to the print, I don't care what kind of file as long as it has the numbers, .txt, .csv, it doesn't matter. I am assuming this is somewhere in the script because it doesn't matter what you change on the printer set-up it sends to the same printer. Although, I have no idea where to look, I was looking at some of the scripts, but can't find any command for it to send to any IP address or printer. I am just assuming that a program of this nature has more options than just printing.

Any and all help would be appreciated.

Thanks
Peter
 
This is a script I use to provide a sort of psuedo-GUI for use when testing DS1 circuits through a TTC Centest platform. The script was written to provide a NETSEND warning message if errors are seen on test or monitor, but I have lost that capability, as Windows XP does not include the Netsend command. Is there a means of gaining the same result another way?


integer jmp1,status
string CMD
integer MIN = 32
integer NUM

proc main
set txpace 0
setjmp 0 jmp1

dialogbox 0 410 45 222 120 30 " CENTEST"
pushbutton 1 95 102 32 11 "&EXIT" CANCEL
pushbutton 2 13 14 32 11 "CSU UP"
pushbutton 3 13 30 32 11 "CSU DN"
pushbutton 4 51 14 32 11 "SMJ UP"
pushbutton 5 51 30 32 11 "SMJ DN"
pushbutton 6 138 14 32 11 "SMJ UP"
pushbutton 7 138 30 32 11 "SMJ DN"
pushbutton 8 176 14 32 11 "CSU UP"
pushbutton 9 176 30 32 11 "CSU DN"
pushbutton 10 175 78 32 11 "MON"
pushbutton 11 33 46 32 11 "QRSS"
pushbutton 12 157 46 32 11 "QRSS"
pushbutton 13 95 46 32 11 "BI QRSS"
pushbutton 18 95 14 32 11 "DISC"
groupbox 14 7 2 82 61 " Selected"
groupbox 15 132 2 82 61 " Connected"
groupbox 16 7 65 206 29 " Monitor Period"
radiogroup 17 MIN
radiobutton 29 18 79 36 9 "5 MIN"
radiobutton 30 53 79 36 9 "15 MIN"
radiobutton 31 92 79 36 9 "30 MIN"
radiobutton 32 130 79 36 9 "60 MIN"
endgroup
enddialog

winactivate $PWMAINWIN

dlgevent 0 status
while ! ((status == 1)||(status == 2)||(status == 3)||(status == 4)||(status == 5)||(status == 6)||(status == 7)||(status == 8)||(status == 9)||(status == 10)||(status == 11)||(status == 12)||(status == 13)||(status == 18))
dlgevent 0 status
yield
endwhile

dlgdestroy 0 CANCEL

if status == 1
exit
endif

if status == 2
transmit "^M"
waitfor "DS1_TST>"
transmit "ds1 s user 10000^M"
waitfor "(Y/N)"
transmit "Y^M"
endif

if status == 3
transmit "^M"
waitfor "DS1_TST>"
transmit "ds1 s user 100^M"
waitfor "(Y/N)"
transmit "Y^M"
endif

if status == 4
transmit "^M"
waitfor "DS1_TST>"
transmit "ds1 s user 11000^M"
waitfor "(Y/N)"
transmit "Y^M"
endif

if status == 5
transmit "^M"
waitfor "DS1_TST>"
transmit "ds1 s user 11100^M"
waitfor "(Y/N)"
transmit "Y^M"
endif

if status == 6
transmit "^M"
waitfor "DS1_TST>"
transmit "ds1 c user 11000^M"
waitfor "(Y/N)"
transmit "Y^M"
endif

if status == 7
transmit "^M"
waitfor "DS1_TST>"
transmit "ds1 c user 11100^M"
waitfor "(Y/N)"
transmit "Y^M"
endif

if status == 8
transmit "^M"
waitfor "DS1_TST>"
transmit "ds1 c user 10000^M"
waitfor "(Y/N)"
transmit "Y^M"
endif

if status == 9
transmit "^M"
waitfor "DS1_TST>"
transmit "ds1 c user 100^M"
waitfor "(Y/N)"
transmit "Y^M"
endif

if status == 10
if MIN == 29
strfmt s1 "NET SEND username !_!_!_!_!_!_!_ ERRORS ON %s _!_!_!_!_!_!_!" $PWTITLEBAR
"mciexec "SOUND u:\phone05.wav" $PWTITLEBAR
for NUM upto 75 by 1
if waitfor "s =" 2
Cmd = s1
DOS Cmd MINIMIZED
NUM = 0
longjmp 0 jmp1
elseif waitfor "DS1 FRAME SYNC W/ALARMS" 2
strfmt s1 "NET SEND username !_!_!_!_!_!_!_ YELLOW ALM ON %s _!_!_!_!_!_!_!" $PWTITLEBAR
Cmd = s1
DOS Cmd MINIMIZED
NUM = 0
longjmp 0 jmp1
endif
endfor
NUM = 0
Cmd = s2
DOS Cmd MINIMIZED
endif

if MIN == 30
strfmt s1 "NET SEND username !_!_!_!_!_!_!_ ERRORS ON %s _!_!_!_!_!_!_!" $PWTITLEBAR
strfmt s2 "NET SEND username !_!_!_!_!_!_!_ %s 15 MINS CLEAN _!_!_!_!_!_!_!" $PWTITLEBAR
for NUM upto 225 by 1
if waitfor "s =" 2
Cmd = s1
DOS Cmd MINIMIZED
NUM = 0
longjmp 0 jmp1
elseif waitfor "DS1 FRAME SYNC W/ALARMS" 2
strfmt s1 "NET SEND username !_!_!_!_!_!_!_ YELLOW ALM ON %s _!_!_!_!_!_!_!" $PWTITLEBAR
Cmd = s1
DOS Cmd MINIMIZED
NUM = 0
longjmp 0 jmp1
endif
endfor
NUM = 0
Cmd = s2
DOS Cmd MINIMIZED
endif

if MIN == 31
strfmt s1 "NET SEND username !_!_!_!_!_!_!_ ERRORS ON %s _!_!_!_!_!_!_!" $PWTITLEBAR
strfmt s2 "NET SEND username !_!_!_!_!_!_!_ %s 30 MINS CLEAN _!_!_!_!_!_!_!" $PWTITLEBAR
for NUM upto 450 by 1
if waitfor "s =" 2
Cmd = s1
DOS Cmd MINIMIZED
NUM = 0
longjmp 0 jmp1
elseif waitfor "DS1 FRAME SYNC W/ALARMS" 2
strfmt s1 "NET SEND username !_!_!_!_!_!_!_ YELLOW ALM ON %s _!_!_!_!_!_!_!" $PWTITLEBAR
Cmd = s1
DOS Cmd MINIMIZED
NUM = 0
longjmp 0 jmp1
endif
endfor
NUM = 0
Cmd = s2
DOS Cmd MINIMIZED
endif

if MIN == 32
strfmt s1 "NET SEND username !_!_!_!_!_!_!_ ERRORS ON %s _!_!_!_!_!_!_!" $PWTITLEBAR
strfmt s2 "NET SEND username !_!_!_!_!_!_!_ %s 60 MINS CLEAN _!_!_!_!_!_!_!" $PWTITLEBAR
for NUM upto 900 by 1
if waitfor "s =" 2
Cmd = s1
DOS Cmd MINIMIZED
NUM = 0
longjmp 0 jmp1
elseif waitfor "DS1 FRAME SYNC W/ALARMS" 2
strfmt s1 "NET SEND username !_!_!_!_!_!_!_ YELLOW ALM ON %s _!_!_!_!_!_!_!" $PWTITLEBAR
Cmd = s1
DOS Cmd MINIMIZED
NUM = 0
longjmp 0 jmp1
endif
endfor
NUM = 0
Cmd = s2
DOS Cmd MINIMIZED
endif
endif

if status == 11
transmit "^M"
waitfor "DS1_TST>"
transmit "ds1 s 2`^ ^M"
waitfor "(Y/N)"
transmit "Y^M"
endif

if status == 12
transmit "^M"
waitfor "DS1_TST>"
transmit "ds1 c 2`^ ^M"
waitfor "(Y/N)"
transmit "Y^M"
endif

if status == 13
transmit "^M"
waitfor "DS1_TST>"
transmit "ds1 bi 2`^ ^M"
waitfor "(Y/N)"
transmit "Y^M"
pause 2
transmit "d"
endif

if status == 18
transmit "^M"
if waitfor "DS1_TST>" 2
elseif waitfor "DS1_MON>" 2
endif
transmit "DISC^M"
waitfor "(Y/N)"
transmit "Y^M"
pause 2
transmit "INFO TEST ALL^M"
exit
endif

longjmp 0 jmp1
endproc
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top