ipdial
IPDIAL sends files to a remote destination via modem, ISDN or x25.
It reads files from a queue - normally spool/2dial - determines the phone
number to call, calls, optionally logs on, sets up the transmission, sends the
file(s), logs off and drops the connection.
For several files in one queue, it will attempt to send all files for a single
destintion first before cutting the call and starting on subsequent
transmissions.
If the number is busy or the call does not complete, the number is retried
after 10 minutes. This can be modified by the 'interval' parameter.
Once connected and ready for sending, each file can be sent plain Ascii,
x/y/zmodem or kermit.
For Dutch users, the program can also be used to send between newspapers using
the VC protocol.
A parameter files is used to describe (amongst others) :
- how to logon and setup the link
- how to start each file transmission
- how to end each file
- how to send subsequent files in the same transmission
- how to logoff
- how to disconnect
The DZ FipHd field is read which should contain the tph number to dial unless
the -n switch is ON for ignore dialno if not there.
The contents of the file are not altered.
The modem setup, dial strings plus the remote computer's logon/off strings are
held in a parameter file. The Syntax of this file are :
; comment
setup: (setup string)
dial: (dial and connect string)
logon: (logon and file setup string)
filestart: (start a file string)
nextfile: (start a subsequent file string)
fileend: (finish a file string)
logoff: (logoff and kill comms string)
disconn: (disconnect string)
The strings are in uucp-like format where the syntax is :
(send1string) (space) (receive1string) (spc) (s2) (spc) (r2) etc
ie you send1, wait 5secs for r1, send s2 wait 5secs for r2 etc.
To send a space, use s or dbl quote that string.
To wait a second - send a tilde (or redefine to your Wait chr)
All keywords - setup, logon etc - are optional - if one does not exist, it is
ignored.
Embedded spaces may be specified by enclosing within double quotes.
Null fields can be specified by two consequetive double quotes - "". If a wait
is required howver ALWAYS SPECIFY BEFORE the dbl quotes eg: ~~~"" for a 3
second wait with nothing returned.
The sections are done in the following order :
stage 1- setup
stage 2- dial
stage 3- logon
stage 4- file start
stage 5- file end
stage 4/5 continued (other file starts/end if required)
if next file is specified, it is used otherwise file start
stage 6- logoff
stage 7- disconn
Note that when using Zmodem or Kermit transfers, 'fileend' is ignored.
In the parameter file several other options are :
waitchr:176 wait one sec chr default: tilde (0176)
dialchr:174 'insert the dialno here' chr default: pipe (0174)
syschr:$ system precedent chr default: dollar (0044)
This is used for Filename '$f' in filestart parameter.
or $g for 6chr filename or '$s' for sequence number.
NOTE you will need to move the SYSCHR out of the way if you
want to use the $Z for seqno etc. ie syschr:%
timeout:10 timeout wait is 10 secs default: 5 secs
bits:7 No of databits default: 8
parity:even/none/odd/space/mark default: none
Use this to force all the data transmitted to this parity
type. eg if the client wants a 7 bit odd parity transmission
but the channel is opened as an 8 bit no parity pipe.
parity:even
bits:7
Note the data is ONLY parity-ised for talking to the remote
ie setup/dial/disconn are NOT changed
logon/filestart/nextfile/filend/logoff ARE changed
speed:1200 the transmission speed default: none
If you are using modems which cannot flow control and
are not using kermit or zmodem, often pacing the line
at a speed lower than the CONNECT eg speed:1100 for
a 1200 bps line.
commerror:NOsCARRIER break in comms default: none
This is advisable for large files sent without a
protocol (ie no kermit or zmodem). If the remote system
sends/echos copy back then this will also release
the buffers.
interval: Interval between attempts to send. default: 600secs (10 mins)
errdest: Destination to send file to if it can NOT be sent
default: none
msgerr: Destination to send a message if file can NOT be sent
default: none
msgok: Destination to send a message if file can NOT be sent
default: none
sendprog: Sending program string if not vanilla ascii
nocomplain: Do not complain if files do NOT exist in the input queue
kermit: Send the text using Kermit Protocol
xmodem: Send the text using Xmodem Protocol
ymodem: Send the text using Ymodem Protocol
zmodem: Send the text using Zmodem Protocol
remname: to change the filename on the remote system eg: remname:$g.xy
forcename:u/l to force the remote name upper or lower case.
max-take-size: Split the outgoing file into takes with this maximum.
default is Do NOT split.
take-end: Text (in FipSeq) to add at the end of a take
but NOT the end of file. default: none
Note that FipHdr D1 holds the take number.
take-start: Text (in FipSeq) to add at the begining of a take
but NOT the first file. default: none
maxattempts: There is the limit on the number of attempts. File are
sent to woops if this is exceeded. Default is 5 goes.
Set to zero for NO limit.
The biggest maxattempts is 100 - use 0 for no limit.
disconnect-attempts: Sometimes some modems do NOT disconnect the firsttime
Use this to specify the number of attempts at disconnecting - default:1
error-queue: Folder for files which have tried 'maxattampts' times
The default is 'woops'
zap-on-error: Just delete the file if we have tried 'maxattempts' times.
Default is that the file is moved to 'woops' or the 'error-queue'
onefile: Send a single file then cut the call and redial
Normally ipdial scans its queue for all files for that phone no.
waitque: Wait period after the queue is empty before disconnecting
in case a new file arrives. default: 0 secs
The maximum wait is 100 seconds.
endwait: Wait period before disconnection after all
data has been sent. default 1 sec for PSTN, 5 for x25
The maximum wait is 100 seconds.
logfile:(dest) Send to this destination the log of what happened during
transmission. This destination defaults to LOGDIAL (uppercase).
It must be an entry in tables/sys/USERS.
If the log is to be sent to another destination, specify
as the parameter to 'logfile:'
eg logfile:nytdone sends the file to Dest 'nytdone'
default: no log created.
logeachfile:(dest) Send a Success/failed msg to this destination for each
file.
There is no default.
This log file is just a FipHdr with the following extra fields :
DR-File Sent OK DR:ok or DR:error
DG-Will Retry later DG:retrying or DG:stopped
DT-Some message text DT:No connection
DO-Number of last attempt DO:5
HT-Date and Time HT:25 Nov 98 15:35:25
default: no log created.
The DR and DG messages can be changed by using :
log-dr-ok:(FipSeq)
log-dr-error:(FipSeq)
log-dg-stop:(FipSeq)
log-dg-retry:(FipSeq)
eg: log-dr-ok:File VN sent to Remote Number DZ ($h:$n)
msgeachfile:(FipSeq) Additional information to add to the FipHdr of the
'logeachfile'
msg. This should be in FipHdr format and be in FipSeq. It can be
used to pass FipHdr fields in the outgoing file into the log file.
eg msgeachfile: DF:logdialnSS:SSn
default: nothing added
in-start: Start of incoming file string in FipSeq
use this with -I allow incoming files.
default: none
example in-start:01
in-end: End of incoming file string in FipSeq
use this with -I allow incoming files.
default: none
example in-end:NNNNrn
in-dest: Fip Destination for incoming files.
use this with -I allow incoming files
This is the Fip Hdr 'DU' and there should be an entry
in the tables/sys/USERS parameter file of the same name.
default: dial_incoming
in-source: Source for incoming files.
This is the Fip Hdr 'SU'.
default: VC
in-fiphdr: Extra Fip Hdr fields to be added to any
incoming file. default: none
in-before: String (in FipSeq) to be placed at the top
of any incoming file. default: none
in-after: String (in FipSeq) to be placed at the end
of any incoming file. default: none
in-no-archive: Do NOT archive the incoming file in the daily archive
Use this when the incoming file is being passed on to
'ipdskwir' or another process which will also
set the archive flag.
Example :
setup:rr~+++ OKr athr OKr ~at&fr OKr ~atf0%b9600r OKr
dial:~atdt9|rn CONNECT
logon:lirn LOGON
filestart:~~~news$frn~~
logoff:lorn LOGOFF lorn
disconn:~~+++ OKr ~+++ OKr athr OKr
That is for setup, we want to :
send CR CR , wait a second, send +++
wait for OK CR
send ath CR
wait for OK CR
send at&f CR
wait for OK CR
send atf0%b9600 CR
wait for OK CR
BEWARE ..
1. If you have any spaces in the sting to send/receive, you MUST quote :
filestart:~~"01ABC$Z PR CA $WrnDIrn02"
2. If you are using FipSeq System Variables - $Z, $D etc, then you must
move 'syschr' to another character as it defaults to a dollar !!
syschr:^
One point to note if you are using the TTY ports is that they INVARIABLY need
to be setup using the STTY parameter file in tables/stty. Ths syntax of the
file is covered in the Unix manual pages. The name of the file in tables/stty
is :
STTY_NAME_PORT (all uppercase)
where NAME is the name of the parameter table which will be ..
either "DIAL" or the "-z" default or the contents of the DF field
where PORT is the TTY name ie for ttya : TTYA; for ttyx16 : TTYX16
For tuning, start off with one of the existing tty files in tables/stty. Note
that stty for the SunOS4 loads a port using '(stty params) > /dev/ttya'.
However the arrow is reversed on Solaris, DEC OSF and rs6000 : '(stty params) <
/dev/tty4'. On NT, the parameters are the same as for the 'mode' command.
For testing a new destination, it is rare to get it right first time!
There is a 'verbose' flag, -L, which will display the whole dialogue as it
happens. You can run the program manually from any terminal or window. eg
ipdial -s black2 -p 1210 -L
or to also save the results in a log file :
ipdial -s black2 -p 1210 -L | tee LOGFILE
Be careful in the latter case, that you are in a personal queue and not a
tables or spool queue and that the name of the log file - LOGFILE in this case
does not exist.
For Dutch users, the program can also be used to send VC type traffic. The
editorial system which is sending VC traffic needs the status of each
transmission. To do this when a file is sent (or rejected) a status or update
file is sent back to the sender. Use 'logeachfile:' to send the status message
back, the actual messages can be translated using the 'log-dr-ok' etc keywords.
Remember to add input switch -I to allow incomings :
ipdial -s tiptermserv -p 1015 -I -Y -z VC
Where sections of FipHdr fields are required or changes to the output style,
use
keywords : fixed, partial, combie, optional, repeat, newdate and/or style.
(see The SysA
dmin manual for more information).
They are normally specified :
fixed:QZ 1234543
partial:QT ST,3,2,U,<,>
combie:QY ep|na,(0000000)a
option:QE ep,11,7,s
repeat:QK XK,-,3
or repeat:QP PK,,4,#X
style:QS XN,%.03d
Input Parameters :
Mandatory :
-s : Spider name or TTY device name default: none
-p : Spider port number default: none
Optional :
-n : do not look for nor check the tph number default: DZ field is tph
-z : default parameter table to setup comms if not overwritten by
the 'DF' FIP header field. default: tables/dial/DIAL
-q : input queue to scan default: spool/2dial
-d : do NOT delete the files after sending default: delete
-D : disconnect from the port after each transmission default: -
While 'ipdial' always disconnects from the modem, this also
drops any TCP connection too. So this will disconnect from the
terminal server too.
-I : allow incoming files default: no
there must be an 'in-start' and 'in-end' in the parameter file
-l : do NOT log any files sent default: log outgoings
-L : Display all in/out for the session default: no
except text
-O : done queue for sent files default: none
Normally files are deleted after sending.
-t : inter-file wait when sending more than one file. default: 1 sec
-T : log the trace of each transaction default: do not
This generates a one line log of each file sent is stored in
log/remote_trace with a name of 'date_(DF)'.
-w : file wait is seconds default: 0 - no wait
This is for files arriving over the network.
-x : wakeup string for terminal server default: none
-X : Turn Telnet Transparency OFF default: ON
For terminal servers, is the port set to transparency ?
-U : Raw or Telnet NO-escape mode default: telnet transparency ON
For terminal servers, is the port set to transparency ?
-y : Banner string to strip from terminal server.default: SpiderBanner
-Y : There is no banner to strip default: as above
-V : old style VC traffic default: no
-1 : Single pass then stop default: keep spooling
-v : Print the version number and exit
TODO-how to setup VC
There should be a file called tables/route/('SU') to describe the routing for
this file.
Version Control
;026q 30nov99 added takes
;b 29nov00 improved logeachmsg
;c 04jan01 added parity:
;d/e/f 22jan01 for failures - check maxAttempts before checking time
;g 26feb01 enabled 'errdest'
;h/i/j/k 20mar01 added ignore RecvError0 if in Disconnect
;m 29oct01 added disconnect-attempts
;n 14mar02 added remote-trace
;o-q 01jan03 MACOSX
;025 17nov99 added redun_balance
;024 27aug99 added -D to Disconnect from Spider
;023 29mar99 LINUX - not tty
(copyright) 2014 and previous years FingerPost Ltd.