[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference noted::hackers_v1

Title:-={ H A C K E R S }=-
Notice:Write locked - see NOTED::HACKERS
Moderator:DIEHRD::MORRIS
Created:Thu Feb 20 1986
Last Modified:Mon Aug 03 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:680
Total number of notes:5456

369.0. "Callback help?" by ACE::BREWER (John Brewer Component Engr. @ABO) Thu Dec 11 1986 23:37

    
    	A dumb question....
    
    	After battling unsucessfully with several VMS call back routines,
    I tried my own. First.... SYS configuration is a 4.2 machine with
    DF03's for modems.
    
    	What I tried was, creating a .COM file, that one could log into
    an account, SUBMIT CALLBACK.COM and log out. Callback.com merely
    was
    
    	$WAIT 00:01:00
    	$MC MODEM
    
    	Which invoked the MODEM software with an appropriate MODEMINI.DAT
    file containing the callback number, baud rate etc....
    
    	When I ran this, I got the callback, toggled DATA/TALK on the
    remote DF03, and saw all the DTR,DSR,HS, and Carrier LEDS on the
    DFO3 light up. However no amount of <cr> would present the login
    prompt. It finally timed out...
    
    	I think the problem is with a detached process/sys$input
    definition, but I dont know.
    
    	ANy hints, or am I going about this the wrong way?
    
    	Thanks in advance,
    
    	-John
T.RTitleUserPersonal
Name
DateLines
369.1Here's a good startCRVAX1::LAMPSONMike Lampson @DDOFri Dec 12 1986 14:07197
        The following command procedures are used on our system to
        have a modem call us back.  I'm not saying they can't be improved,
        because they can be; but they work.
        
        We have a captive account which has TOME1.COM as its LGICMD
        file.  We dial in, log into this account, enter a number in
        the form 999-9999, it logs out and calls us back.  Note you
        cannot make it dial outside of the DTNs or the local area code
        with this procedure as is.  Also, this captive account has
        LOG_IO and PHYS_IO privileges.
        
        I believe there might be a tool like this somewhere.  It probably
        does things like use an authorization database and logs who
        dialed in, when they called and the number they dialed.
        
        Good Luck!
        
       _Mike
        
$ ! TOME1.COM		25-APR-84	R. RADKIEWICZ
$ ! LOGIN DETECTOR - TERERMINE IF INTERACTIVE OR BATCH ENTRY
$ !
$ IF F$MODE() .EQS. "BATCH" THEN EXIT
$ !
$ @TOME
$ LO
        
$! 
$! TOME.COM	24-APR-84	R. RADKIEWICZ
$! MODIFIED     27-MAY-86       R. ANDREWS
$!
$!	Control file to dial a modem
$!	
$	ON ERROR THEN GOTO DONE
$
$ 	SAY :=WRITE SYS$OUTPUT
$ 
$!   This creates the ^B symbol for the modem autodialer
$ 
$ 	CTL_B[0,7]=%X02
$ 	CTL_A[0,7]=%X01
$!	
$!   List of all lines to dial out on.
$! 
$ 	MODEM_LINE1="TXB1:"
$       MODEM_LINE2="TXB0:"
$       MODEM_LINE3="TXA0:"
$       MODEM_LINE4="TXA1:"
$       MODEM_LINE5="TXC1:"
$       MODEM_LINE6="TXD1:"
$ 	
$!
$!   Number of modem lines.
$!
$       NUMBER_OF_MODEMS = 6
$!
$!
$       COUNT = 1	
$!
$!	
$	IF F$MODE() .EQS. "BATCH" THEN GOTO DONE
$	MY_TER = F$GETJPI("","TERMINAL")
$!
$!	
$!	Scan loop looking for a free modem line - method is to look for
$!	a line with no owner PID, this is determined by the null length
$!	of the PID = 4 spaces.
$ 
$ WHO_LOOP:
$ 	T_DEV = MODEM_LINE'COUNT'
$	PID = F$GETDVI("''T_DEV'","PID")
$	PIDL = F$LENGTH(PID)
$	IF 'PIDL' .EQ. 4  THEN GOTO SAY_T
$	IF T_DEV .EQS. MY_TER THEN GOTO SAY_T
$	COUNT=COUNT+1
$ 	IF 'COUNT' .GT. 'NUMBER_OF_MODEMS'+1 THEN GOTO NO_MODEM
$ 	GOTO WHO_LOOP
$	GOTO DONE
$ SAY_T:
$!	SAY "''T_DEV' WILL BE USED FOR CALL"
$ 
$!	
$!	Ask for the telephone number to be called
$!	
$	SAY ""
$	SAY ""
$ ASK_P:
$	IN_NUMB = " "
$ 	INQUIRE IN_NUMB "Enter phone number you wish to call"
$	NUML = F$LENGTH(IN_NUMB)
$	IF NUML .EQ. 0 THEN GOTO DONE
$!	
$	SAY "Is ''IN_NUMB' the correct number? (Y or N) <Y>"
$	INQUIRE YN " "
$	IF YN .EQS. "N" THEN GOTO ASK_P
$	EQL = F$LOCATE("=",IN_NUMB)
$ 	IF EQL .NE. NUML THEN GOTO RE_DO
$!	
$	SAY "Is this number a local DDO call? (Y or N) <Y>"
$	INQUIRE YN1 " "
$	IF YN1 .EQS. "N" THEN GOTO LONG_D
$	DIAL_T = "9="
$	GOTO PARSE_N
$!	
$ LONG_D:
$	DIAL_T = "8="
$	GOTO PARSE_N
$!	
$ RE_DO:
$    SAY "Do not include the 1,8,9 or = in the number to indicate outside dial"
$    GOTO ASK_P
$!	
$!   Parse the entered number for dashes(-), we check for nothing else.
$!	First pass look is here
$!	
$ PARSE_N:
$	DASH = F$LOCATE("-",IN_NUMB)
$! 	IF DASH .EQ. NUML-1 THEN GOTO CONT_DIAL
$ 	IF DASH .EQ. NUML THEN GOTO CONT_DIAL
$! SAY "DASH = ''DASH' NUML = ''NUML'"
$ 	O_NUM = F$EXTRACT(0,DASH,IN_NUMB)
$ 	I_NUM = O_NUM + F$EXTRACT(DASH+1,(NUML-(DASH+1)),IN_NUMB)
$	DASH1 = F$LOCATE("-",I_NUM)
$! 	IF DASH1 .EQ. NUML-1 THEN GOTO CONT_DIAL
$ 	IF DASH1 .EQ. NUML THEN GOTO CONT_DIAL
$!	
$!	Loop here to scan for addional dashes
$!	
$ DO_DASH:
$	NUM1 = F$LENGTH(I_NUM)
$ 	O_NUM = F$EXTRACT(0,DASH1,I_NUM)
$ 	I_NUM = O_NUM + F$EXTRACT(DASH1+1,(NUM1-(DASH1+1)),I_NUM)
$ 
$	DASH1 = F$LOCATE("-",I_NUM)
$!	IF DASH1 .NE. NUM1-1 THEN GOTO DO_DASH
$ 	IF DASH1 .NE. NUM1 THEN GOTO DO_DASH
$ 
$!	
$!   Build the number data file and the batch control file starting here
$!	
$ CONT_DIAL:
$    SAY "     Dialing ''I_NUM' using ''T_DEV'"
$    SAY ""
$    SAY "If you do not get a call back after 2 minutes try again."
$    SAY ""
$	CONT = ""
$	TO_CALL = "''CTL_B'''DIAL_T'''I_NUM'"
$	N_FILE = F$PID(CONT)
$	DELETE/BEFORE=TODAY 0*.*;*
$!	
$!   This is the number data file
$	D_FILE = "''N_FILE'.TMP"
$!	
$	OPEN/WRITE OUTFIL 'D_FILE'
$	WRITE OUTFIL "''TO_CALL'"
$	CLOSE OUTFIL
$! SAY "FILE ''D_FILE' CONTAINS THE NUMBER TO DIAL OUT ON ''T_DEV'"
$!	
$!   This is the batch control file
$	B_FILE = "''N_FILE'.COM"
$	TIME = F$TIME()
$!	
$	OPEN/WRITE OUTFILE 'B_FILE'
$	WRITE OUTFILE "$! Batch file to call ''IN_NUMB' using ''T_DEV'"
$	WRITE OUTFILE "$!"
$	WRITE OUTFILE "$! Dialing ''TO_CALL' at ''TIME'"
$	WRITE OUTFILE "$!"
$	WRITE OUTFILE "$ SET VERIFY"
$	WRITE OUTFILE "$ SET PROC/PRIV=ALL"
$	WRITE OUTFILE "$ WAIT 00:00:02"
$	WRITE OUTFILE "$ SET TER/PERM/SPEED=1200 ''T_DEV'"
$	WRITE OUTFILE "$ COPY ''D_FILE' ''T_DEV'"
$	WRITE OUTFILE "$!"
$	WRITE OUTFILE "$ WAIT 00:00:02"
$	WRITE OUTFILE "$ SET TER/PERM/AUTOBAUD ''T_DEV'"
$	WRITE OUTFILE "$ ! DEL ''D_FILE';*"
$	WRITE OUTFILE "$ SET NOVERIFY"
$	WRITE OUTFILE "$ SHOW DAY"
$	WRITE OUTFILE "$ EXIT"
$	CLOSE OUTFILE
$!  SAY "FILE ''B_FILE' IS THE BATCH CONTROL FILE FOR CALL"
$!	
$	
$!	SUBMIT/NOLOG/AFTER=:00:04 'B_FILE'
$	SUBMIT/que=tome$batch/AFTER=:00:10/KEEP/NOPRINT 'B_FILE'
$	
$	GOTO DONE
$!	
$ NO_MODEM:
$ 	SAY "THERE ARE NO FREE MODEMS AT THIS TIME TRY AGAIN LATER"
$	GOTO DONE
$ NO_NO:
$	SAY "THIS PROCEDURE IS DESIGENED TO RUN FROM MODEM LINES ONLY"
$	GOTO DONE
$!	
$ DONE:
$	LO
369.2PASTIS::MONAHANSat Dec 13 1986 08:023
    	There is an internal product called ACB (Automatic Call Back)
    which does this sort of thing. Did you try this one? It has been
    used with no trouble in a number of places.
369.3KISS!ACE::BREWERJohn Brewer Component Engr. @ABOMon Dec 15 1986 15:518
    
    	The problem with ACB is that it is hardware-cumbersome... need
    to dedicate (specifically allocate) 2 Modems for the functionality.
    Its also more fancy than we need.
    
    	From the "keep it simple" philosophy...
    
    	-John