1Preliminary 2703 BSC Support
2
3Only allows Point to Point connection.
4
5
6Hercules device statement :
7
8CCUU 2703 lport=port lhost=host rhost=host rport=port dial=IN|OUT|INOUT|NO
9          [pto=nnn|0|-1] [rto=nnn|0|-1] [eto=nnn|0|-1]
10
11lport : the local TCP port number or service name on which the line will listen
12        for incoming TCP calls
13        This parameter is irrelevant and is ignored for DIAL=OUT
14        for DIAL=IN|INOUT|NO, this parameter is mandatory
15
16cwlhost : The local interface IP address on which to listen.
17        if not specified, all interfaces will be used.
18        ex:
19        lhost=127.0.0.1 : Only accept calls from local host
20        lhost=192.168.0.1 : Only accept calls from hosts
21                that can be routed through the interface
22                that has an IP address of 192.168.0.1
23                If there is no 192.168.0.1 local IP address,
24                this will fail.
25        This parameter is irrelevant and is ignored for DIAL=OUT
26        for DIAL=IN|INOUT|NO, this parameter is mandatory
27
28
29rhost : the remote host ip address or name
30        This parameter is irrelevant and is ignored for DIAL=IN
31        for DIAL=OUT|INOUT|NO, this parameter is mandatory
32
33rport : the remote port number or service name
34        This parameter is irrelevant and is ignored for DIAL=IN
35        for DIAL=OUT|INOUT|NO, this parameter is mandatory
36
37rto, pto, eto : Read, Poll and Enable Timeout values in miliseconds.
38        specifying 0 means No Timeout (infinite wait). -1 Means immediate
39        timeout.
40
41        The read timeout is how long the handler will wait for an ending
42        character after the last character was received or the I/O initiated.
43        The read timeout default is 3000 Miliseconds (3 Seconds)
44
45        The poll timeout is how long the handler will wait for a polled
46        station to respond to a poll request.
47        The poll timeout default is 3000 Miliseconds (3 Seconds)
48
49        The enable timeout is how long the handler will wait for the TCP
50        connection to be established.
51        The enable timeout default is 10000 Miliseconds (10 Seconds), except
52        if DIAL=NO is also specified, in which case the enable timeout defaults
53        to 0.
54
55        Note : the ETO parameter is ignored if DIAL=NO is not specified.
56               for a dialed line, there is no enable timeout. If the eto
57               parameter is specified and DIAL is not "NO", then a warning message
58               is issued and the parameter is ignored.
59
60
61dial=IN|OUT|INOUT|NO
62        Indicate call direction (if any).
63        This parameter also modifies the behaviour of certain CCWS
64        as well as TCP incoming call handling :
65
66        ENABLE :
67                DIAL=IN|DIAL=INOUT
68                        Wait forever for an incoming call
69
70                DIAL=NO
71                        Completes immediatelly if a call
72                        is already present
73                        Otherwise, attemps connecting to the
74                        remote end
75                        if the call fails, ENABLE exits with
76                        Int Req status
77                DIAL=OUT
78                        Enable is not a valid CCW for a DIALOUT
79                        only line
80        DIAL :
81                DIAL=IN|DIAL=NO
82                        DIAL is not a valid CCW for a DIAL IN
83                        or non-switched line
84                DIAL=OUT|DIAL=INOUT
85                        The outgoing call is attempted
86
87        Incomming TCP call :
88                In any case, if a call is already present, the
89                call is rejected.
90
91                DIAL=NO :
92                        The call is accepted, even if no CCW is
93                        currently executing
94
95                DIAL=OUT :
96                        The call is rejected
97
98                DIAL=IN|DIAL=INOUT
99                        The call is accepted if the line is currently
100                        executing an ENABLE ccw.
101
102
103The communication protocol :
104
105        The communication protocol is basic. Every character written
106        by the guest program with a WRITE CCW is transfered to the
107        remote end, untranslated and untouched (except for Transparent
108        BSC rules which deem that DLE characters are doubled when the
109        program has previously written a DLE/STX sequence).
110
111
112Dial data format
113
114        Dial data is originally as follows :
115                x x x x 0 0 0 0 : Dial # 0
116                  .........
117                x x x x 1 0 0 1 : Dial # 9
118                x x x x 1 1 0 0 : EON
119                x x x x 1 1 0 1 : SEP
120
121        In order to perform an outgoing call,
122        the data must follow these specifications :
123
124        N[N[N]]SEPN[N[N]]SEPN[N[N]]SEPN[N[N]]]SEPN[..[N]][EON]
125
126        Where N is any dialing number from 0 to 9 and SEP
127        is the separator.
128
129        The 4 first group of digits represet the IP address.
130        The last group represent a TCP port number.
131
132        For example (* is the SEP character representation) :
133
134        192*168*0*1*8888 : will issue a TCP connection to
135                           192.168.0.1 port 8888
136
137        The EON is optional. If it is present, it must be the
138        last character of the dial data.
139
140Bugs, Caveats
141
142        The Address Prepare is not implemented
143        The POLL CCW Has not been tested
144        Group DIAL IN is not implemented
145        DIAL CCW Not tested
146        There is 1 thread per line, when there should be 1 thread for ALL lines.
147        MAXDEVT may have to be adjusted under WINDOWS to accomodate for a large number of lines
148            (because some I/O may take an undefinite amount of time).
149        There is no 'REAL' Bsc line support yet.
150