home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-387-Vol-3of3.iso
/
r
/
remfax.zip
/
_MVRFAX.BAT
next >
Wrap
DOS Batch File
|
1993-02-15
|
9KB
|
399 lines
@echo off
rem --- Local call: no dial prefix needed
if %3x==/Lx set MV_DIALOUT=
if %3x==/Lx echo LOCAL CALL
rem --- Call back number
set MV_TELNR=
if %2x==x if exist TELPLAY.BAT del TELPLAY.BAT
if %2x==/Lx if exist TELPLAY.BAT call TELPLAY X
if %MV_TELNR%x==x goto MDMINIT
echo CALLBACK NUMBER: %MV_TELNR%
:MDMINIT
rem --- Init Modem, set silence treshold to VERY insensitive and allow up to
rem 10 seconds of silence
ZUTIL S /P%MV_PORT% /T5 "AT&FX7S41.4=1S7=90+VSD=5,100|" "OK"
rem --- OK?
if errorlevel 2 goto BYE
:START
rem --- Clean up, set working variables to initial value
set MV_FAXEXST=1200
set MV_FAXRING=%1
if exist *. del *.
if exist *.ZYX del *.ZYX
rem --- Check for faxes: the fax receiving directory is compared to the OLD directory
%MV_ZFXDRV%
CD %MV_ZFXDIR%
for %%A in (*.0??) do if not exist OLD\%%A set MV_FAXEXST=400
%MV_DRV%
CD %MV_DIR%
if %MV_FAXEXST%x==400x set MV_FAXRING=1
rem --- Power OFF
if %MV_PWROFF%x==x goto START1
call %MV_PWROFF%
:START1
rem --- Wait for RING
ZUTIL W /P%MV_PORT% /R%MV_FAXRING% /T32000
if errorlevel %MV_FAXRING% goto RING
rem --- Time out: start again
goto START
:RING
rem --- Go off-hook, beep (see below for meaning of beep frequency) and wait
rem up to 20 seconds for a DTMF code (# or *)
rem low beep = new faxes
rem high beep = NO new faxes
ZUTIL R /P%MV_PORT% /F%MV_FAXEXST% /D%MV_BEEPLEN% /S1 /T20 *.ZYX
if exist *.ZYX del *.ZYX
rem --- Error >= 252 ?
if errorlevel 252 goto HANGUP
rem --- Fax ?
if errorlevel 251 goto MDMCALL
rem --- "*/#" ?
if errorlevel 20 goto REMOTE
rem --- Other error or cancelled by user (all errorlevels >= 15) ?
if errorlevel 15 goto HANGUP
rem --- FAX/DATA call expected
goto MDMCALL
:HANGUP
rem --- Hang up phone
ZUTIL H /P%MV_PORT%
goto START
:MDMCALL
rem --- Turn on Fax/Datamode
rem --- Power ON
if %MV_PWRON%x==x goto MDMCALL1
call %MV_PWRON%
:MDMCALL1
ZUTIL S "AT#B1+FCLASS=6|" "OK" /P%MV_PORT% /T2
rem --- Error
if errorlevel 2 goto HANGUP
rem --- Try up to 90 seconds to establish a connection
ZUTIL S "ATA|" "FAX" "2400" "4800" "7200" "9600" "12000" "14400" "16800" "19200" "NO " /P%MV_PORT% /T90
rem --- "NO CARRIER" from the modem, timeout or general error...
if errorlevel 10 goto HANGUP
rem --- Modem connect ?
if errorlevel 2 goto MAILBOX
rem --- No, assume fax connect, start Receive Fax
%MV_ZFXDRV%
CD %MV_ZFXDIR%
RCVFAX 2 /P:%MV_PORT% /R:0
%MV_DRV%
CD %MV_DIR%
goto START
:MAILBOX
rem --- z.B.
echo TELIX O SHOSTPLUS
goto START
:REMOTE
rem --- DTMF-code call from remote
rem --- Power ON
if %MV_PWRON%x==x goto REMOTE1
call %MV_PWRON%
:REMOTE1
rem --- Local call ? (no password necessary)
if %3x==/Lx goto ASKCMD
rem --- Is there a password?
if %MV_PWD%x==x goto ASKCMD
rem --- Ask for password
call ASKPWD %MV_PWD%
if %MV_PWDOK%x==x goto HANGUP
:ASKCMD
rem --- Ask for command (0-9)
ZUTIL P ASKCMD.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
rem --- Start DTMF detection
ZUTIL R /P%MV_PORT% /F400 /D%MV_BEEPLEN% /S1 /T20 *.ZYX
if exist *.ZYX del *.ZYX
rem --- Other Error?
if errorlevel 248 goto HANGUP
rem --- "*/#" ?
if errorlevel 20 goto HANGUP
rem ---- DTMF ?
if errorlevel 19 goto CMD9
if errorlevel 18 goto CMD8
if errorlevel 17 goto CMD7
if errorlevel 16 goto CMD6
if errorlevel 15 goto CMD5
if errorlevel 14 goto CMD4
if errorlevel 13 goto CMD3
if errorlevel 12 goto CMD2
if errorlevel 11 goto CMD1
if errorlevel 10 goto CMD0
goto HANGUP
:CMD0
rem --- Check for faxes
if %MV_FAXEXST%x==400x goto CMD0_1
ZUTIL P NOFAX.ZVD /F1200 /D%MV_BEEPLEN% /P%MV_PORT%
goto ASKCMD
:CMD0_1
ZUTIL P FAXEXST.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
goto ASKCMD
:CMD1
rem --- Play callback number
if %MV_TELNR%x==x ZUTIL P NOTEL.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
if %MV_TELNR%x==x goto ASKCMD
if exist TELPLAY.BAT call TELPLAY Y
goto ASKCMD
:CMD2
rem --- Ask for callback number
ZUTIL P CLLBCK.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
rem --- Clean up
set MV_NEWNR=Y
:CMD2_1
rem --- Start DTMF detection
ZUTIL R /P%MV_PORT% /F400 /D%MV_BEEPLEN% /S1 /T20 *.ZYX
if exist *.ZYX del *.ZYX
rem --- Other Error?
if errorlevel 248 goto HANGUP
rem --- "*/#" ?
if errorlevel 20 goto CMD2_2
if %MV_NEWNR%x==x goto DTMF
rem --- OK, it's not "*" or "#", so assume it's a new callback number
set MV_TELNR=
set MV_NEWNR=
copy TELPLAY1.TXT TELPLAY.BAT
echo ZUTIL P TELNR.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%>>TELPLAY.BAT
:DTMF
rem ---- DTMF ?
if errorlevel 19 goto 9
if errorlevel 18 goto 8
if errorlevel 17 goto 7
if errorlevel 16 goto 6
if errorlevel 15 goto 5
if errorlevel 14 goto 4
if errorlevel 13 goto 3
if errorlevel 12 goto 2
if errorlevel 11 goto 1
if errorlevel 10 goto 0
rem --- fall through
:CMD2_2
rem --- Is there a callback number?
if %MV_TELNR%x==x goto ASKCMD
if %MV_NEWNR%x==Yx goto ASKCMD
rem --- Play callback number back and ask for confirmation
if %MV_NEWNR%x==x copy TELPLAY.BAT+TELPLAY2.TXT TELPLAY.BAT
if %MV_NEWNR%x==x echo ZUTIL P CONFIRM.ZVD /P%MV_PORT%>>TELPLAY.BAT
if %MV_NEWNR%x==x echo :SETNR>>TELPLAY.BAT
if %MV_NEWNR%x==x echo set MV_TELNR=%MV_TELNR%>>TELPLAY.BAT
call TELPLAY
ZUTIL R /P%MV_PORT% /F400 /D%MV_BEEPLEN% /S1 /T20 *.ZYX
if exist *.ZYX del *.ZYX
rem --- Other Error?
if errorlevel 248 goto CMD2_3
goto CMD2_4
:CMD2_3
set MV_TELNR=
if exist TELPLAY.BAT del TELPLAY.BET
goto HANGUP
:CMD2_4
rem --- "*/#" ?
if errorlevel 20 goto CMD2_5
rem --- No confirmation: clean up
set MV_TELNR=
if exist TELPLAY.BAT del TELPLAY.BET
goto ASKCMD
:CMD2_5
rem --- Say "Thank you"
ZUTIL P THANKU.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
if exist *.ZYX del *.ZYX
goto ASKCMD
:CMD3
rem --- Call back
rem --- check for callback number
if %MV_TELNR%x==x ZUTIL P NOTEL.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
if %MV_TELNR%x==x goto ASKCMD
rem --- Check for faxes
if %MV_FAXEXST%x==400x goto CMD3_1
ZUTIL P NOFAX.ZVD /F1200 /D%MV_BEEPLEN% /P%MV_PORT%
goto ASKCMD
:CMD3_1
ZUTIL P CONFIRM.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
ZUTIL R /P%MV_PORT% /F400 /D%MV_BEEPLEN% /S1 /T20 *.ZYX
if exist *.ZYX del *.ZYX
rem --- Other Error?
if errorlevel 248 goto HANGUP
rem --- "*/#" ?
if errorlevel 20 goto CMD3_2
goto ASKCMD
:CMD3_2
rem --- Say "Thank you"
ZUTIL P THANKU.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
rem --- Hangup
ZUTIL H /P%MV_PORT%
rem --- Clear any unwanted modem messages (e.g. NO CARRIER) to make ZFAX work
ZUTIL S /P%MV_PORT% /T3 "ATH0|" "OK"
ZUTIL S /P%MV_PORT% /T3 "ATH0|" "OK"
ZUTIL S /P%MV_PORT% /T3 "ATH0|" "OK"
rem --- Switch to the ZFAX-directory and send each new fax file to the callback number
%MV_ZFXDRV%
CD %MV_ZFXDIR%
for %%A in (*.0??) do if not exist OLD\%%A call %MV_DRV%%MV_DIR%\FAXIT %%A
%MV_DRV%
CD %MV_DIR%
goto START
rem --- Store DTMF number in the callback number environment variable (MV_PORT) and
rem --- add a proper line to the playback file.
:9
echo ZUTIL P 9.ZVD /P%MV_PORT%>>TELPLAY.BAT
set MV_TELNR=%MV_TELNR%9
goto CMD2_1
:8
echo ZUTIL P 8.ZVD /P%MV_PORT%>>TELPLAY.BAT
set MV_TELNR=%MV_TELNR%8
goto CMD2_1
:7
echo ZUTIL P 7.ZVD /P%MV_PORT%>>TELPLAY.BAT
set MV_TELNR=%MV_TELNR%7
goto CMD2_1
:6
echo ZUTIL P 6.ZVD /P%MV_PORT%>>TELPLAY.BAT
set MV_TELNR=%MV_TELNR%6
goto CMD2_1
:5
echo ZUTIL P 5.ZVD /P%MV_PORT%>>TELPLAY.BAT
set MV_TELNR=%MV_TELNR%5
goto CMD2_1
:4
echo ZUTIL P 4.ZVD /P%MV_PORT%>>TELPLAY.BAT
set MV_TELNR=%MV_TELNR%4
goto CMD2_1
:3
echo ZUTIL P 3.ZVD /P%MV_PORT%>>TELPLAY.BAT
set MV_TELNR=%MV_TELNR%3
goto CMD2_1
:2
echo ZUTIL P 2.ZVD /P%MV_PORT%>>TELPLAY.BAT
set MV_TELNR=%MV_TELNR%2
goto CMD2_1
:1
echo ZUTIL P 1.ZVD /P%MV_PORT%>>TELPLAY.BAT
set MV_TELNR=%MV_TELNR%1
goto CMD2_1
:0
echo ZUTIL P 0.ZVD /P%MV_PORT%>>TELPLAY.BAT
set MV_TELNR=%MV_TELNR%0
goto CMD2_1
:CMD4
ZUTIL P CONFIRM.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
ZUTIL R /P%MV_PORT% /F400 /D%MV_BEEPLEN% /S1 /T20 *.ZYX
if exist *.ZYX del *.ZYX
rem --- Other Error?
if errorlevel 248 goto HANGUP
rem --- "*/#" ?
if errorlevel 20 goto CMD4_1
goto ASKCMD
:CMD4_1
%MV_ZFXDRV%
CD %MV_ZFXDIR%
for %%A in (*.0??) do if exist OLD\%%A del %%A
if exist OLD\*.0?? del OLD\*.0??
%MV_DRV%
CD %MV_DIR%
ZUTIL P DELOK.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
goto ASKCMD
:CMD5
rem --- call external program
if not exist EXTERN.BAT goto CMDNA
call EXTERN
goto ASKCMD
:CMD6
:CMD7
:CMD8
:CMD9
:CMDNA
ZUTIL P CMDNA.ZVD /F400 /D%MV_BEEPLEN% /P%MV_PORT%
%MV_DRV%
CD %MV_DIR%
goto ASKCMD
:BYE
rem --- Leave