mirror of
https://github.com/SDL-Hercules-390/hyperion.git
synced 2026-04-16 08:55:23 +02:00
150 lines
5.6 KiB
Plaintext
150 lines
5.6 KiB
Plaintext
Preliminary 2703 BSC Support
|
|
|
|
Only allows Point to Point connection.
|
|
|
|
|
|
Hercules device statement :
|
|
|
|
CCUU 2703 lport=port lhost=host rhost=host rport=port dial=IN|OUT|INOUT|NO
|
|
[pto=nnn|0|-1] [rto=nnn|0|-1] [eto=nnn|0|-1]
|
|
|
|
lport : the local TCP port number or service name on which the line will listen
|
|
for incoming TCP calls
|
|
This parameter is irrelevant and is ignored for DIAL=OUT
|
|
for DIAL=IN|INOUT|NO, this parameter is mandatory
|
|
|
|
cwlhost : The local interface IP address on which to listen.
|
|
if not specified, all interfaces will be used.
|
|
ex:
|
|
lhost=127.0.0.1 : Only accept calls from local host
|
|
lhost=192.168.0.1 : Only accept calls from hosts
|
|
that can be routed through the interface
|
|
that has an IP address of 192.168.0.1
|
|
If there is no 192.168.0.1 local IP address,
|
|
this will fail.
|
|
This parameter is irrelevant and is ignored for DIAL=OUT
|
|
for DIAL=IN|INOUT|NO, this parameter is mandatory
|
|
|
|
|
|
rhost : the remote host ip address or name
|
|
This parameter is irrelevant and is ignored for DIAL=IN
|
|
for DIAL=OUT|INOUT|NO, this parameter is mandatory
|
|
|
|
rport : the remote port number or service name
|
|
This parameter is irrelevant and is ignored for DIAL=IN
|
|
for DIAL=OUT|INOUT|NO, this parameter is mandatory
|
|
|
|
rto, pto, eto : Read, Poll and Enable Timeout values in miliseconds.
|
|
specifying 0 means No Timeout (infinite wait). -1 Means immediate
|
|
timeout.
|
|
|
|
The read timeout is how long the handler will wait for an ending
|
|
character after the last character was received or the I/O initiated.
|
|
The read timeout default is 3000 Miliseconds (3 Seconds)
|
|
|
|
The poll timeout is how long the handler will wait for a polled
|
|
station to respond to a poll request.
|
|
The poll timeout default is 3000 Miliseconds (3 Seconds)
|
|
|
|
The enable timeout is how long the handler will wait for the TCP
|
|
connection to be established.
|
|
The enable timeout default is 10000 Miliseconds (10 Seconds), except
|
|
if DIAL=NO is also specified, in which case the enable timeout defaults
|
|
to 0.
|
|
|
|
Note : the ETO parameter is ignored if DIAL=NO is not specified.
|
|
for a dialed line, there is no enable timeout. If the eto
|
|
parameter is specified and DIAL is not "NO", then a warning message
|
|
is issued and the parameter is ignored.
|
|
|
|
|
|
dial=IN|OUT|INOUT|NO
|
|
Indicate call direction (if any).
|
|
This parameter also modifies the behaviour of certain CCWS
|
|
as well as TCP incoming call handling :
|
|
|
|
ENABLE :
|
|
DIAL=IN|DIAL=INOUT
|
|
Wait forever for an incoming call
|
|
|
|
DIAL=NO
|
|
Completes immediatelly if a call
|
|
is already present
|
|
Otherwise, attemps connecting to the
|
|
remote end
|
|
if the call fails, ENABLE exits with
|
|
Int Req status
|
|
DIAL=OUT
|
|
Enable is not a valid CCW for a DIALOUT
|
|
only line
|
|
DIAL :
|
|
DIAL=IN|DIAL=NO
|
|
DIAL is not a valid CCW for a DIAL IN
|
|
or non-switched line
|
|
DIAL=OUT|DIAL=INOUT
|
|
The outgoing call is attempted
|
|
|
|
Incomming TCP call :
|
|
In any case, if a call is already present, the
|
|
call is rejected.
|
|
|
|
DIAL=NO :
|
|
The call is accepted, even if no CCW is
|
|
currently executing
|
|
|
|
DIAL=OUT :
|
|
The call is rejected
|
|
|
|
DIAL=IN|DIAL=INOUT
|
|
The call is accepted if the line is currently
|
|
executing an ENABLE ccw.
|
|
|
|
|
|
The communication protocol :
|
|
|
|
The communication protocol is basic. Every character written
|
|
by the guest program with a WRITE CCW is transfered to the
|
|
remote end, untranslated and untouched (except for Transparent
|
|
BSC rules which deem that DLE characters are doubled when the
|
|
program has previously written a DLE/STX sequence).
|
|
|
|
|
|
Dial data format
|
|
|
|
Dial data is originally as follows :
|
|
x x x x 0 0 0 0 : Dial # 0
|
|
.........
|
|
x x x x 1 0 0 1 : Dial # 9
|
|
x x x x 1 1 0 0 : EON
|
|
x x x x 1 1 0 1 : SEP
|
|
|
|
In order to perform an outgoing call,
|
|
the data must follow these specifications :
|
|
|
|
N[N[N]]SEPN[N[N]]SEPN[N[N]]SEPN[N[N]]]SEPN[..[N]][EON]
|
|
|
|
Where N is any dialing number from 0 to 9 and SEP
|
|
is the separator.
|
|
|
|
The 4 first group of digits represet the IP address.
|
|
The last group represent a TCP port number.
|
|
|
|
For example (* is the SEP character representation) :
|
|
|
|
192*168*0*1*8888 : will issue a TCP connection to
|
|
192.168.0.1 port 8888
|
|
|
|
The EON is optional. If it is present, it must be the
|
|
last character of the dial data.
|
|
|
|
Bugs, Caveats
|
|
|
|
The Address Prepare is not implemented
|
|
The POLL CCW Has not been tested
|
|
Group DIAL IN is not implemented
|
|
DIAL CCW Not tested
|
|
There is 1 thread per line, when there should be 1 thread for ALL lines.
|
|
MAXDEVT may have to be adjusted under WINDOWS to accomodate for a large number of lines
|
|
(because some I/O may take an undefinite amount of time).
|
|
There is no 'REAL' Bsc line support yet.
|