1 01/16/84  user_telnet, telnet
  2 
  3 Syntax:  telnet host_id {-control_args}
  4 
  5 
  6 Function: provides access to other ARPA Network hosts via the TELNET
  7 protocol.  The service normally provided by the foreign host's Server
  8 TELNET is a simulated local terminal, i.e., the host provides an
  9 environment as similar as possible to a terminal which is directly
 10 connected to the host.
 11 
 12 
 13 Arguments:
 14 host_id
 15    specifies the foreign host to which a connection will be made.
 16 
 17 
 18 Control arguments:
 19 -escape_char C, -ec C
 20    specifies that the ASCII character C is to be reserved for use as
 21    the "escape character" (see "Notes on escape conventions" below).
 22    The default escape character is "!".
 23 -socket N, -sc N
 24    specifies that the Initial Connection Protocol (ICP) is to be
 25    directed to socket N (a decimal integer) at the foreign host.
 26    Default is the host's Server TELNET "logger" socket, currently
 27    socket 23.
 28 
 29 
 30 -timeout T
 31    specifies the value (in seconds) of the timeout period.  This is
 32    the maximum amount of time which this command will wait for an
 33    initial response from the foreign host.  The default timeout is 15
 34    seconds.
 35 -uppercase, -uc
 36    causes all lowercase alphabetic characters to be translated to
 37    uppercase characters for transmission to the foreign host.
 38 
 39 
 40 List of requests:
 41 abort_output, ao
 42    aborts any output in progress and sends a TELNET Abort Output
 43    command to the host.
 44 abort_request, ar
 45    aborts all user_telnet requests in progress and returns control to
 46    the highest listening level of the user_telnet command.
 47 are_you_there, ayt
 48    sends a TELNET Are You There command to the foreign system.  The
 49    foreign system should then return some visible response.
 50 ascii C
 51    causes the ASCII character whose name is C (e.g., "ESC", "a", "A").
 52    to be sent to the server process.
 53 break, brk
 54    sends a TELNET Break command to the server process.
 55 
 56 
 57 control C, ctl C
 58    causes an ASCII "control" character to be sent to the server
 59    process.  The control character sent to the foreign process is the
 60    character whose value is obtained by "anding" the value of C and
 61    the octal value 037.
 62 erase {N}, ec {N}
 63    causes N TELNET Erase Character commands to be sent to the server
 64    process.  If N is not specified, the value one (1) is assumed.
 65 escape C
 66    changes the current user_telnet escape character to C.  C should be
 67    a printable ASCII character.
 68 
 69 
 70 execute S, e S
 71    causes the rest of the command arguments to be passed to the
 72    currently active Multics command processor.  The actual command
 73    line passed to the command processor is created by concatenating
 74    all arguments to the execute request (with appropriate intervening
 75    spaces).
 76 exit, quit
 77    exits from the current invocation of user_telnet.  Any connections
 78    will be closed and deactivated.
 79 go_ahead, ga
 80    sends a TELNET Go Ahead command to the server process.
 81 interrupt, ip
 82    sends a TELNET Interrupt Process command to the server process.
 83 
 84 
 85 kill, el
 86    sends a TELNET Erase Line command to the server process.
 87 nop
 88    sends a TELNET NOP (No Operation) to the server process.
 89 status, st
 90    causes the user_telnet command to print a summary of the state of
 91    all connections, and any requests currently in progress.
 92 timeout N
 93    sets the value of the timeout period to N seconds.
 94 
 95 
 96 Notes on escape conventions:
 97 Although the primary purpose of the user_telnet command is to provide
 98 a full-duplex communications channel, the user occasionally needs to
 99 communicate directly with the user_telnet command.  For example, some
100 hosts do not close the Network connection upon completion of a
101 session; the user must direct the user_telnet command to close it.
102 Alternatively, the user may wish to execute a Multics command at the
103 local host.  The "escape convention" provides these functions.
104 
105 
106 Although the escape convention used by the user_telnet command is
107 actually more complicated, the following simple rules for issuing a
108 request should suffice for most users:
109 
110 1.  Starting at the beginning of a line (i.e., immediately after a
111     NewLine character), type one escape character, followed by the
112     request, followed by a NewLine character.
113 2.  Avoid the use of the escape character in any context except
114     that of rule 1.  (Should the use of the "!" character be necessary
115     in communication with the foreign server, change the escape
116     character via the "-escape_char" control argument or the "escape"
117     request.)
118 
119 
120 Examples:
121 Thus, to leave the user_telnet command, type--
122    !exit
123 
124 or, to cause the foreign host to suspend the current
125 (foreign) process--
126    !interrupt
127 
128 
129 Notes on attention handling:
130 Occasionally, it is desirable to suspend a request being performed, or
131 to suspend the printing of characters received from the foreign host.
132 To provide this capability, the user_telnet command specially treats
133 the Multics condition "quit".  Upon receiving this signal, the
134 user_telnet command will suspend any current processing, print the
135 current escape character followed by a prompting message, and then
136 listen for one input line from the user.  While waiting for this line,
137 all communication with the foreign host is suspended.  After the line
138 has been received and processed, communication with the host is
139 resumed and any suspended request is continued -- subject, of course,
140 to the effects of any requests contained in the input line.  (See, for
141 example, the "abort_output" and "exit" requests.)
142 
143 
144 The "old" TELNET protocol:
145 There are actually two distinct TELNET protocols: the "new" protocol
146 (NIC #18639), which provides for the negotiation of options to effect
147 more precise control of communication, and the "old" protocol (NIC
148 #9348), which has a much smaller range of capabilities.  Because many
149 Network hosts have not yet switched to the "new" protocol, the
150 user_telnet command will also communicate properly with a Server
151 TELNET process using the "old" protocol.  In fact, the user_telnet
152 command currently assumes that the server process is using the "old"
153 protocol unless and until it correctly responds to a "new" protocol
154 option negotiation automatically initiated by user_telnet.
155 
156 
157 The "old" TELNET protocol does not provide conventions for many of the
158 user_telnet command requests, such as abort_output, are_you_there, and
159 interrupt.  Thus, when communicating according to the "old" TELNET
160 protocol, the user_telnet command will try to perform some subset
161 (including, possibly no action) of the actions specified in the
162 request description.