home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Workbench / Dvices / TELSER1.LHA / doc / telser.doc < prev    next >
Encoding:
Text File  |  1994-12-31  |  43.5 KB  |  1,158 lines

  1. Document telser.doc
  2.  
  3.     =============================================================
  4.     telser 1.00 -- serial telnet(d) device for TCP/IP and AS225r2
  5.                             Documentation
  6.                         - December 28, 1994 -
  7.     =============================================================
  8.  
  9.       Copyright (c) 1994-1995 by Sam Yee.  All rights reserved.
  10.  
  11.  
  12. 1. Legal Stuff
  13. ==============
  14.  
  15. 1.1. Copyright
  16. --------------
  17.  
  18. The   program,  telser  and  its  associated  files  are  written  and
  19. copyrighted  by  Sam  Yee.   telser  is SHAREWARE and the UNREGISTERED
  20. version  of  telser  may be distributed freely providing the following
  21. conditions hold:
  22.  
  23. o Distributors may not charge more than the cost of a diskette used in
  24.   the distribution of this program.
  25.  
  26. o Distributors may only distribute the unmodified copy of the original
  27.   program, along with its documentation, and copyright notices intact.
  28.  
  29. o Commercial  distribution  is  only  possible with written permission
  30.   from the author.
  31.  
  32. 1.2. License Agreement
  33. ----------------------
  34.  
  35. The   REGISTERED   versions   of  telser  may  not  be  redistributed.
  36. Redistribution  is  illegal,  immoral,  and  strictly prohibited.  The
  37. licensed keyfile may be used on more than one machine if you own those
  38. machines and that they are not for business use.  Otherwise, different
  39. keyfiles are required for each machine.
  40.  
  41. 1.3. Disclaimer
  42. ---------------
  43.  
  44. This   program  and  its  documentation  are  provided  "as  is".   No
  45. warranties  are  made  with  respect  to  the  accuracy,  reliability,
  46. performance  or  operation  of this software and information.  You are
  47. using this program at your own risk.  The author is not liable for any
  48. damages that may have been caused by using this software.
  49.  
  50.  
  51. 2. Introduction
  52. ===============
  53.  
  54. telser.device   ("telser")   is   a  modem  simulator  over  a  telnet
  55. connection.   It  simulates  basic `modem commands'.  As such, you can
  56. use  telecommunication ("comm") programs over a telnet connection.  To
  57. your  comm  program,  it  thinks  it's  talking  to a modem.  Terminal
  58. emulation, file transfers, etc.  are all handled by your comm program.
  59. Connecting  to a host is as simple as typing "ATDT abc.edu,23" or even
  60. simpler if you add "abc.edu,23" to your comm program's phonebook.
  61.  
  62. telser  supports  the  most  common  Telnet  negotiation  commands and
  63. options.   For  example,  you  may  elect to notify the remote host on
  64. changes  to  your  terminal  emulation  type,  and  window  size.   An
  65. intuitive  "gadtools"  graphical user interface is supplied to control
  66. your  telnet  connections.   You also have the option to automatically
  67. connect to a host after starting up your comm program.  Instant logins
  68. at the click of a button!
  69.  
  70. telser  can  run  in  host  mode, which means it would accept incoming
  71. calls.   This feature allows you to set up a "multi-line" BBS over the
  72. internet!
  73.  
  74. telser  is capable of unlimited device units, which means you can have
  75. unlimited  incoming  and  outgoing  connections.  Telser supports both
  76. TCP/IP  packages  on  the  Amiga, namely AmiTCP (tested with 3.0b2 and
  77.  4.0) and AS225r2.
  78.  
  79.  
  80. 3. Demo Restrictions
  81. ====================
  82.  
  83. The  demo  version of telser allows one device unit.  Opening a second
  84. unit  causes  a  device busy result code.  If you use telser often you
  85. are  recommended  to  register.   When  you register you get unlimited
  86. device   units.  The future of this project is in your hands...
  87.  
  88.  
  89. 4. Requirements
  90. ===============
  91.  
  92. telser  runs  on  any  Amiga(tm)  with version 2.04 of the OS, running
  93. AmiTCP  or AS225r2.  AmiTCP 3.0b2 and 4.0 demo has been tested, but it
  94. does not work with 2.3.  telser uses very little memory (perhaps 80K).
  95. To  make  telser  even  more memory efficient, make it resident.  Then
  96. every device unit you open will use about 10K.
  97.  
  98.  
  99. 5. Installation
  100. ===============
  101.  
  102. The telser archive contains the following files:
  103.  
  104. telser.install      -- simple install program
  105. bin/telser          -- telser main program for AmiTCP
  106. bin/tstelnet        -- comm program that uses telser.device
  107. c/telser            -- telser main program for AS225r2
  108. db/telser.conf      -- configuration file for each device unit
  109. db/telser.hosts     -- list of host aliases
  110. db/telser.mdm       -- stores modem configuration
  111. db/telser.terms     -- list of terminal types
  112. db/telserd.conf     -- configuration file for serv/telserd
  113. devs/telser.device_amitcp  --
  114.                        device driver that talks to bin/telser
  115. devs/telser.device_as225r2 --
  116.                        device driver that talks to c/telser
  117. doc/telser-Axsh-setup.doc -- Axsh setup tutorial in text format
  118. doc/telser-Axsh-setup.doc.info -- icon for above
  119. doc/telser-Axsh-setup.guide -- Axsh setup tutorial in AmigaGuide(r)
  120.                                format
  121. doc/telser-Axsh-setup.guide.info -- icon for above
  122. doc/telser.doc      -- telser documentation in text format
  123. doc/telser.guide    -- telser documentation in AmigaGuide(r) format
  124. doc/telser.guide.info -- icon for the above
  125. libs/rawin.library  -- linemode editing handling library
  126. serv/telserd_amitcp -- telser daemon ("server") for AmiTCP
  127. serv/telserd_as225r2 -- telser daemon for AS225r2
  128. src/tstelnet.c      -- sample source that uses telser.device
  129. src/tstelnet.makefile -- makefile of course
  130.  
  131. The  files  in the archive will not overwrite any of files in your TCP
  132. package,  so don't worry.  If you have problems with the installation,
  133. I'll be happy to help you.  See `Contact Address'.
  134.  
  135. AmiTCP Installation
  136. -------------------
  137.  
  138. To install telser for AmiTCP, unpack the archive into AMITCP:
  139.  1> lha x DH0:telser100.lha AMITCP:
  140.  
  141. Copy and rename the device driver telser.device_amitcp into devs:
  142.  1> copy AMITCP:devs/telser.device_amitcp devs:telser.device clone
  143.  
  144. Rename the executables:
  145.  1> rename AMITCP:serv/telserd_amitcp AMITCP:serv/telserd
  146.  
  147. AS225r2 Installation
  148. --------------------
  149.  
  150. To install telser for AS225r2, unpack the archive into INET:
  151.  1> lha x DH0:telser100.lha INET:
  152.  
  153. Copy and rename the device driver telser.device_as225r2 into devs:
  154.  1> copy INET:devs/telser.device_as225r2 devs:telser.device clone
  155.  
  156. Rename the executables:
  157.  1> rename INET:bin/tstelnet INET:c/
  158.  1> rename INET:serv/telserd_as225r2 INET:serv/telserd
  159.  
  160. If you have no more files in INET:bin you can simply delete it.
  161.  
  162. Simple Installation Script
  163. --------------------------
  164.  
  165. To  install  telser  for AmiTCP or AS225r2, execute the telser.install
  166. script.  The script does what the above installation procedures do.
  167.  
  168. Type:
  169.  
  170.  1> cd AmiTCP: (or INET:)
  171.  1> execute telser.install
  172.  
  173. The following prompt will be displayed:
  174.  
  175. Install AmiTCP version of Telser? (y = yes, n = AS225r2 version) =>  y
  176.  
  177. When it's done, this message will be displayed:
  178.  
  179. Installing files completed...
  180.  
  181.  
  182. 6. Configuration
  183. ================
  184.  
  185. telser  is  a  very  configurable  program.  Most of the configuration
  186. files  can  be  manipulated  by  the  save  buttons in section
  187. `Telser Options Window'.  The rest must be editted with a text editor.
  188. In  most  files,  a  "#" or ";" tells telser to ignore ("comment out")
  189. those lines.
  190.  
  191. 6.1. Device Unit Configuration
  192. ------------------------------
  193.  
  194. db/telser.conf allows you to configure each unit of telser.device.
  195.  
  196. The follow is how db/telser.conf looks like:
  197. ------------------------------------------------------------------------------------------------
  198. #unit default host (alias)  map serial break to   OPENWIN    LINGER    DEBUG    logfile
  199. #                           Nothing               or         or        or
  200. #                           OpenWindow            NOOPENWIN  NOLINGER  NODEBUG
  201. #                           AbortOutput
  202. #                           AreYouThere
  203. #                           Break
  204. #                           EraseChar
  205. #                           EraseLine
  206. #                           GoAhead
  207. #                           InterruptProcess
  208. #                           NoOperation
  209. #                           SynchOperation
  210.  0    ""                    OpenWindow            OPENWIN    NOLINGER  DEBUG    T:telser.log
  211.  2    home                  OpenWindow            OPENWIN    NOLINGER  DEBUG    T:telser.log
  212.  3    home                  OpenWindow            NOOPENWIN  NOLINGER  DEBUG    T:telser.log
  213. ------------------------------------------------------------------------------------------------
  214.  
  215. Unit field:
  216.     The unit number the comm program will use.
  217.  
  218. Host (Alias) field:
  219.     This  field  tells  telser  which  host  should  a  connection  be
  220.     attempted once the comm program is started.  Enter "" if automatic
  221.     connection  is not desired at telser.device opening time.  You may
  222.     use an IP address, host alias, or a real hostname for this field.
  223.  
  224. Map Serial Break To field:
  225.     Most  comm programs allow the user to send a physical break signal
  226.     to   the   modem.   This  feature  is  inapplicable  to  a  telnet
  227.     connection.   Instead, telser allows the user to do various things
  228.     when he/she tries to send a "virtual" break.  When such a break is
  229.     sent, telser can be directed to do the following:
  230.  
  231.     Nothing:    ignore the virtual break signal
  232.     OpenWindow: Open telser's main window if it's not already opened.
  233.                 If already opened, bring the window to front.
  234.     AbortOutput: Send a telnet Abort Output command to host.
  235.     AreYouThere: Send a telnet Are You There command to host.
  236.     Break:       Send a telnet Break command to host.
  237.                  Note that this break is nothing like a modem break.
  238.     EraseChar:  Send a telnet Erase Character command to host.
  239.     EraseLine:  Send a telnet Erase Line command to host.
  240.     GoAhead:    Send a telnet Go Ahead command to host.
  241.     Interrupt Process: Send a telnet Interrupt Process command to host.
  242.                        Often this command kills the foreground process
  243.                        on Unix machines.
  244.     NoOperation: Send a telnet No Operation command to host.
  245.     SynchOperation: Send a telnet Synchronize Operation to host.
  246.  
  247.     Consult  Telnet  RFC's  (e.g.,  RFC854) for more information about
  248.     Telnet commands and options.
  249.  
  250. OpenWin/NoOpenWin field:
  251.     This  flag  tells telser to open its window when your comm program
  252.     starts up.  If OpenWin is specified, the window will be opened, or
  253.     if NoOpeWin no window will be opened.
  254.  
  255. Linger/NoLinger field:
  256.     This  flag  allows  you  to  terminate  your  comm program without
  257.     closing  the  telnet  connection.  This is useful when you need to
  258.     switch  comm  programs.  When Linger is specified, telser will not
  259.     quit  when  the  comm  program  exits.   Otherwise, if NoLinger is
  260.     specified,  the  connection  will  be closed and telser terminates
  261.     when  the  comm program quits.  This flag sets the Linger checkbox
  262.     in  section  `Telser Options Window'.  Some BBS packages need this
  263.     option on.
  264.  
  265. Debug/NoDebug field:
  266.     When  Debug  is  specified,  all  telnet  negotiation  options and
  267.     commands will be logged.
  268.  
  269. Logfile field:
  270.     Specify  the  file  name  where  all  logs should go.  Enter "" to
  271.     disable  logging  to  file.   The  logfile is written after telser
  272.     exits.   For  an  explanation  on  the  format  of log entries see
  273.     section `Logging'.
  274.  
  275. This  file  can  be  manipulated  by the "Save Unit Options" button in
  276. section  `Telser Options Window'.  This  file is not necessary for the
  277. operation  of  telser.  If a unit or the file is missing defaults will
  278. be used.
  279.  
  280. 6.2. Telnet Hosts Configuration
  281. -------------------------------
  282.  
  283. db/telser.hosts looks something like this:
  284. ----------------------------------------------------------------------
  285. #                                       telnet options
  286. #                                       bitmap (if set)
  287. #                                       0 - initiate negotiation
  288. #                                       1 - do binary
  289. #                                       2 - do echo
  290. #                                       3 - do sga
  291. #                                       4 - will ttype
  292. #                                       5 - will naws
  293. #                                       6 - will linemode
  294. #                                       7 - will tspeed
  295. #alias   hostname or IP      port term  bits
  296. #                                       01234567
  297. home     localhost           23   ansi  11111111
  298. archie   archie.rutgers.edu  23   ansi  11111111
  299. school   fraser.sfu.ca       23   vt100 11111100
  300. work     incognito.com       23   vt220 11111111
  301. fun      res.com             23   vt100 11111111
  302. ----------------------------------------------------------------------
  303.  
  304. Alias field:
  305.     An alias for the host you want to connect to.
  306.  
  307. Hostname or IP field:
  308.     The real name or IP address of the host you want to connect to.
  309.  
  310. Port field:
  311.     The  port  you  want to telnet into.  Normally this is 23, but for
  312.     MUD  (Multi-User  Dungeon) sites, this can be something like 6667.
  313.     Specify 0 if you don't care which port you are connecting to.
  314.  
  315. Term field:
  316.     The terminal emulation you will be using for the connection.  Note
  317.     that  telser  does not handle terminal emulation per se.  It is up
  318.     to  your comm program to do so.  Term is provided so that the host
  319.     you  are  connected  to  will automatically know what term you are
  320.     using.   You  must enable automatic terminal emulation if you want
  321.     to  notify  the  host  about  the  terminal you are using.  Telnet
  322.     options bit #4 is used for this purpose.
  323.  
  324. Telnet Options Bitmap field:
  325.     This  bitmap  allows you to specify what is to be performed during
  326.     telnet negotiation.  Putting a "1" at a bit position sets it.  The
  327.     bits are defined as follows.
  328.  
  329.     Bit 0:  We initiate telnet negotiation with the host.
  330.             If   0,   telser   will   not  talk  first  during  Telnet
  331.             negotiation.
  332.     Bit 1:  We ask the host to go into binary mode.
  333.     Bit 2:  We ask the host to echo what we typed.
  334.     Bit 3:  We ask the host to Suppress Go Ahead.
  335.     Bit 4:  We tell the host we will be sending our terminal type.
  336.     Bit 5:  We tell the host we will be sending our window size.
  337.     Bit 6:  We tell the host we will be going into linemode.
  338.             In  linemode,  editing  is  done  locally.  This speeds up
  339.             command line editing immensely.
  340.     Bit 7:  We tell the host we will be sending our terminal speed.
  341.  
  342.     Of course the host can refuse any of our requests.
  343.     To  understand what these Telnet options and commands do, refer to
  344.     their RFCs (Request-For-Comments).
  345.  
  346. This  file  can  be manipulated by the "Save Telnet Options" button in
  347. section `Telser Options Window'.
  348.  
  349. 6.3. Terminal Emulation Configuration
  350. -------------------------------------
  351.  
  352. db/telser.terms  allows you to specify the list of terminal emulations
  353. your  comm  programs can support.  They can be used to notify the host
  354. on what emulation you are using.
  355.  
  356. db/telser.terms looks something like this:
  357. ----------------------------------------------------------------------
  358. #term   cols rows
  359. ansi    80   24
  360. dumb    80   24
  361. vt52    80   24
  362. vt100   80   24
  363. vt102   80   24
  364. vt200   80   24
  365. vt220   80   24
  366. vt240   80   24
  367. vt300   80   24
  368. vt320   80   24
  369. vt340   80   24
  370. vt420   80   24
  371. rip     80   48
  372. unknown 80   24
  373. xterm   160  128
  374. ----------------------------------------------------------------------
  375.  
  376. Term field:
  377.     The terminal type supported by your comm program.
  378.  
  379. Cols field:
  380.     The number of columns of your comm window.
  381.  
  382. Rows field:
  383.     The number of rows of your comm window.
  384.  
  385. This  file is what gets displayed in the terminal list box in
  386. `Telser Main Window'.   Telnet negotiation on terminal type and window
  387. size will use these definitions.
  388.  
  389. 6.4. Modem Profile Configuration
  390. --------------------------------
  391.  
  392. db/telser.mdm  stores  the  modem profile for each telser.device unit.
  393. The  profile  is  loaded  every  time  telser.device  is opened with a
  394. particular unit.
  395.  
  396. db/telser.mdm looks something like this:
  397. ----------------------------------------------------------------------
  398. [0]
  399. B0
  400. E1
  401. F1
  402. M1
  403. ...
  404. ----------------------------------------------------------------------
  405.  
  406. The  number  in  [] is the unit number of the modem.  What follows are
  407. the  registers, etc.  for that unit.  In this case, telser.device unit
  408.  0 will  use  the  above.   You  normally don't need to edit this file
  409. directly.   Do  your stuff with the "AT" commands in your comm program
  410. and type "AT&W" to save it to this file.
  411.  
  412.  
  413. 6.5. Server Mode Configuration
  414. ------------------------------
  415.  
  416. db/telserd.conf  stores  the  units that telserd should attempt to use
  417. when an incoming call is detected.
  418.  
  419. db/telserd.conf looks something like this:
  420. ----------------------------------------------------------------------
  421. #unit ring-interval max-rings   startup-command cleanup-command logfile
  422. #     (seconds)                 "" for none     "" for none     "" for none
  423.  0    2             2           ""              ""              t:telserd.log
  424.  2    2             2           ""              ""              t:telserd.log
  425. ...
  426. ----------------------------------------------------------------------
  427.  
  428. Unit field:
  429.     The  telser.device  unit  to check for the possibility of making a
  430.     connection.   If this unit is not already opened or busy, the next
  431.     one will be attempted.
  432.  
  433. Ring-Interval field:
  434.     The number of seconds between "RING" messages are sent to the unit.
  435.  
  436. Max-Rings field:
  437.     The maximum number of "RING"s to send to the unit before giving up.
  438.     After giving up, the next unit is tried.
  439.  
  440. Startup-Command field:
  441.     The command to execute before actually trying to talk to the unit.
  442.     If the command fails (errorcode non-zero), this unit is ignored.
  443.  
  444. Cleanup-Command field:
  445.     The command to execute after the telnet connection is closed.
  446.  
  447. Logfile field:
  448.     The   file   where  all  logs  are  written  to.   If  logging  is
  449.     undesirable,  enter  ""  for  this  field.  The logfile is written
  450.     after telserd exits.
  451.  
  452. In addition to editing the above file you must also edit db/inetd.conf
  453. and db/services.
  454.  
  455. Your db/inetd.conf file should look like this:
  456.  
  457. telnet    stream  tcp nowait root amitcp:serv/telserd
  458.  
  459. If  you are using the current version of AS225 or newer, you must omit
  460. the "root" word from the above line!
  461.  
  462. Your db/services file should look like this:
  463.  
  464. telnet          23/tcp
  465.  
  466. Usually, the services file is already set up by your TCP package.
  467.  
  468. To   get   your   BBS   running   over  telser,  you  must  make  sure
  469. db/telserd.conf  contains  the  unit  number that is opened by the BBS
  470. software.   Also,  db/telser.conf  should  have  an entry for the unit
  471. used.   All  units  that  are  to  be  used by telserd should not have
  472. auto-login enabled!!!  i.e., make sure the "host" field is blank ("").
  473. You wouldn't want your BBS automatically dial out everytime the device
  474. is  openend.   If  you are using AXsh with telserd, make sure you have
  475. LINGER on or AT&D0!!!  It may apply to other BBS packages as welll.
  476.  
  477.  
  478. 7. How telser works
  479. ===================
  480.  
  481. In client mode:
  482.  
  483. <comm-prog> <--> <telser.device> <--> [telser] <-..->  [telnetd]
  484.                 ((( LOCAL MACHINE )))         (TCP/IP)  ((( REMOTE HOST )))
  485.  
  486. Your  <comm-prog>  opens telser.device and talks to it.  telser.device
  487. relays  all your serial commands to [telser].  telser also handles the
  488. telnet  protocol.  telser communicates with telnetd (or other daemons)
  489. on the remote host.
  490.  
  491. In server mode:
  492.  
  493. <BBS> <--> <telser.device> <--> [telser] <--> [telserd] <-..-> [telnet]
  494.                 ((( LOCAL MACHINE )))                  (TCP/IP) (( HOST ))
  495.  
  496. Your  <BBS> opens <telser.device> and waits for an incoming call.  The
  497. remote  user  uses  the  [telnet]  program  to  connect  to [telserd].
  498. ([telserd]  is launched by inetd.) [telserd] simply moderates messages
  499. between  [telser] and [telnet].  Once [telserd] makes a connection, it
  500. sends  a  "RING" message to [telser], which is then passed back to the
  501. <BBS>.  If [telser] is set up to auto-answer it would do an auto-matic
  502. connection  with [telserd].  Otherwise, the <BBS> must explicitly send
  503. an "ATA" command to [telser] to "answer" the call.
  504.  
  505.  
  506. 8. Using telser.device
  507. ======================
  508.  
  509. To use telser.device, run your comm program the usual way.  Select the
  510. option   to   change   the   serial  device  and  unit.   Change  from
  511. "serial.device" to "telser.device".  And if you need to have automatic
  512. connections,  define  a  unit  in  db/telser.conf.  See
  513. `Device Unit Configuration' for details.
  514.  
  515. If  telser.device  is  opened  successfully you should be able to send
  516. modem  commands to it.
  517.  
  518. To  make  a  connection with a host either type "ATDT <host>,[<port>]"
  519. from  your comm program or enter the host information and click on the
  520. Connect  button in the `Telser Main Window'.  To disconnect from host,
  521. either  log  off  from  the  host,  or  type  "+++ATH",  or  press the
  522. Disconnect button from the `Telser Main Window'.  After disconnection,
  523. a "NO CARRIER" message is returned.
  524.  
  525. When  you  are done, just exit your comm program.  telser will stay in
  526. memory   and/or  close  any  connection  depending  on  the  following
  527. condition.  If LINGER on or AT&D0, telser will not exit.  If LINGER on
  528. and AT&D2, telser will disconnect if connected, but will not exit.  If
  529. LINGER  off  and  AT&D2,  telser  will  exit and close any connection.
  530. Under any other condition, telser stays running.
  531.  
  532.  
  533. Controlling Telser from the Shell
  534. ---------------------------------
  535.  
  536. If  a  telser  client  is  still running (when running with the linger
  537. option  on)  but  it is not servicing a comm program, it may be killed
  538. off by sending a ^C break signal to it with the "break" command.
  539.  
  540. For example:
  541.  1> status
  542.  2> break <telser-proc> C
  543.  
  544. To  open  a telser client's window, send it an E signal.  e.g., "break
  545. <telser-proc> E".  To close the window, "break <telser-proc> D".
  546.  
  547.  
  548. 9. Using tstelnet
  549. =================
  550.  
  551. tstelnet  is a REALLY simple comm program that opens telser.device and
  552. allows  you  to connect to a host.  tstelnet starts from device unit 0
  553. and  goes  through  to  20 until telser.device is opened successfully.
  554. You  may of course specify a specific unit and in which case only that
  555. unit  is  attempted.   Trying units enables you to use tstelnet to act
  556. like  the  "telnet" program without having device unit conflicts which
  557. happens when two or more comm programs share a device unit.
  558.  
  559. Usage: tstelnet [-ddevice,unit] host-name [port]
  560.  
  561. Examples: tstelnet archie.rutgers.edu
  562.           tstelnet mud.com 6667
  563.           tstelnet -dtelser.device,100 amiga.rules.com
  564.  
  565. tstelnet  essentially sends "ATDT <host>,[port]" to the telser.device.
  566. Note  that tstelnet is not limited to the usage of telser.device.  You
  567. can  use it as a comm program for a real serial port.  e.g., "tstelnet
  568. -dserial.device,0  1-604-434-3665" would open serial.device unit 0 and
  569. tone-dials  1-604-434-3665.  To exit tstelnet just hit Control-C (^C).
  570. For  your  enjoyment, the C source code to tstelnet is included in the
  571. src/ directory.
  572.  
  573.  
  574. 10. Gadtools Graphical User Interface
  575. =====================================
  576.  
  577. As  mentioned  before,  your  telnet connections can be managed with a
  578. GUI.   The  GUI  may  be  opened  on  any public screen by setting the
  579. environment  variable  "TELSERPUBSCREEN"  to  point to the name of the
  580. screen.  For example:
  581.  
  582.  1> setenv TELSERPUBSCREEN TERM
  583.  1> copy ENV:TELSERPUBSCREEN envarc: ; permanently saves it
  584.  
  585. If  the  public  screen cannot be opened, the Workbench screen is used
  586. instead.  Note that some comm programs, such as Term, opens the serial
  587. device  first  before opening its screen.  In this case, if telser was
  588. told  to  open  its  GUI  at  start up time, it will not appear in the
  589. comm's  screen.   To  solve  this  problem,  simply  close the GUI and
  590. re-open  it.  Note that the environment variable can be changed at any
  591. time and will take effect the next time the GUI is re-opened.
  592.  
  593. Telser has 3 windows in which you can change things.
  594.  
  595. 10.1. Telser Main Window
  596. ------------------------
  597.  
  598. If  you  specify  it, when telser.device is opened a window that looks
  599. like   the  below  opens.  The  OpenWin/NoOpenWin  option  in  section
  600. `Device Unit Configuration'  can determine whether this window will be
  601. opened  at  device  opening  time.   Alternatively,  you  may  send  a
  602. "virtual"   break   signal   to   telser,   as  described  in  section
  603. `Device Unit Configuration', or typing "AT[" in command mode.
  604.  
  605. +--------------------------------------------------+-+-+
  606. |[]| [0] Telser 1.00 - Copyright (c)1994 by Sam Yee|%|Z|
  607. |--------------------------------------------------+-+-+
  608. | Unregistered version                        +------+ |
  609. |      Select Host     Select Term            | Help | |
  610. | +----------------+-+ +--------+-+ +---------+------+ |
  611. | |home            |#| |ansi    |#| |     Connect    | |
  612. | |archie          |#| |dumb    | | +----------------+ |
  613. | |school          |_| |vt52    |_| |   Disconnect   | |
  614. | |work            |^| |vt100   |^| +----------------+ |
  615. | |fun             |v| |vt102   |v| |  Send Commands | |
  616. | +----------------+-+ +--------+-+ +----------------+ |
  617. | +------------------+ +----------+ |Change Term Type| |
  618. | |fun               | |          | +----------------+ |
  619. | +------------------+ +----------+ |Change Win Size | |
  620. |              +-----+       +----+ +----------------+ |
  621. |         Port |6667 |  Cols |80  | | Telnet Options | |
  622. |              +-----+       +----+ +----------------+ |
  623. | +-------+-----+       Rows |24  |                    |
  624. | |Save As|Clear|            +----+                    |
  625. | +-------+-----+----------------------------------+-+ |
  626. | |[94-Oct-30 13:25:43] Trying localhost...        | | |
  627. | |[94-Oct-30 13:25:43] Connection refused         | | |
  628. | |                                                | | |
  629. | |                                                | | |
  630. | |                                                +-+ |
  631. | |                                                |^| |
  632. | |                                                |v| |
  633. | +------------------------------------------------+-+ |
  634. +------------------------------------------------------+
  635.  
  636. The title bar displays the unit number (e.g., "[0]") of telser.device.
  637. You  can  safely  close  the window if you don't need it anymore.  All
  638. other  windows  associated  with  this  window will be closed as well.
  639. Hitting the Escape key also closes the window.
  640.  
  641. The second line of text displays who telser is registered to.
  642.  
  643. The gadgets are defines as follows.
  644.  
  645. Select Host:
  646.     Select  a  host  you want to connect to.  To attempt a connection,
  647.     click  once  on a host and click on the Connect gadget.  Otherwise
  648.     double-click on the host.  If you want to connect to a host not in
  649.     the  list,  simply enter it in the edit box below the list box and
  650.     click on the Connect button.
  651.  
  652. Port:
  653.     This edit box enables you to establish a connection with a host at
  654.     particular port number.  In this example, the familar port 6667 is
  655.     used.
  656.  
  657. Select Term:
  658.     Select  the  terminal  type you will be using for this connection.
  659.     Once  a  term  has  been  selected,  the  Cols and Rows edit boxes
  660.     reflect the type of terminal.  However, Cols and Rows can still be
  661.     manually  changed.   Note  that  telser  will only notify the host
  662.     which terminal you are using if you tell it to.
  663.     See `Telser Options Window'
  664.  
  665. Cols:
  666.     This  edit  box  allows  you to specify the number of columns your
  667.     comm program supports.
  668.  
  669. Rows:
  670.     The number of rows your comm program supports.
  671.  
  672. Help:
  673.     Brings up the AmigaGuide(r) help file.
  674.  
  675. Connect:
  676.     Attempt  a  connection with the specified host.  Once a connection
  677.     has been established, this buttons is ghosted out.
  678.  
  679. Disconnect:
  680.     Disconnect  from  the  host  you are connected to.  If you are not
  681.     connected to a host, this button is ghosted out.
  682.  
  683. Send Commands:
  684.     When  a  connection is made, you may control the telnet connection
  685.     by  clicking  on this button.  It will then bring up a window with
  686.     many buttons you can push.  See `Telnet Send Commands Window'
  687.  
  688. Change Term Type:
  689.     If  you are already connected, you may tell the host what your new
  690.     terminal type is.
  691.  
  692. Change Win Size:
  693.     If  you  are already connected, you may tell the host how big your
  694.     comm  program's  window  is.   Programs  like  "vi"  on  Unix will
  695.     auto-adjust itself to reflect the change in window size.
  696.  
  697. Save As:
  698.     Save the logs to a particular file.  A file requester will open up
  699.     to request for a filename.
  700.  
  701. Clear:
  702.     Clear the logs.  No warning is given prior to the clear.
  703.  
  704. 10.2. Telser Options Window
  705. ---------------------------
  706.  
  707. This  window  allows you to manipulate options for a telnet connection
  708. or a telser unit.
  709.  
  710. +-----------------------------------------------+-+-+
  711. |[]| [0] Telser Options                         |%|Z|
  712. |-----------------------------------------------+-+-+
  713. |                  Telnet Host Options              |
  714. |  _                         _                      |
  715. | |_| Initiate Negotiation  |_| Will Terminal Type  |
  716. | |_| Do Binary             |_| Will Window Size    |
  717. | |_| Do Echo               |_| Will Terminal Speed |
  718. | |_| Do Suppress Go Ahead  |_| Will Linemode       |
  719. |                                                   |
  720. |                  Telser Unit Options              |
  721. |                                                   |
  722. |     Map Ser Break To       _                      |
  723. | +---------------------+   |_| Open Window         |
  724. | |@|    Open Window    |   |_| Linger  [ ] Debug   |
  725. | +-+-------------------+                           |
  726. |                                                   |
  727. | +---------------------+   +---------------------+ |
  728. | | Save Telnet Options |   |  Save Unit Options  | |
  729. | +---------------------+   +---------------------+ |
  730. +---------------------------------------------------+
  731.  
  732. The  "[0]"  above  indicates  that these options are for telser.device
  733. unit 0.
  734.  
  735. Telnet Host Options:
  736.     These options are defined in `Telnet Hosts Configuration'
  737.  
  738. Telser Unit Options:
  739.     These options are defined in `Device Unit Configuration'
  740.  
  741. Save Telnet Options:
  742.     Save these telnet options to the db/telser.hosts file.
  743.  
  744. Save Unit Options:
  745.     Save these telser.device unit options to the db/telser.conf file.
  746.  
  747.  
  748. 10.3. Telnet Send Commands Window
  749. ---------------------------------
  750.  
  751. When  a telnet connection has been established, sometimes it is useful
  752. to send telnet commands to the host.  This window will allow you to do
  753. just that.
  754.  
  755. +-----------------------------------------------------------+-+-+
  756. |[]| [0] Send Telnet Commands                               |%|Z|
  757. |-----------------------------------------------------------+-+-+
  758. | +-------------------+-------------------+-------------------+ |
  759. | |   Abort Output    |  Erase Character  | Interrupt Process | |
  760. | +-------------------+-------------------+-------------------+ |
  761. | |   Are You There   |     Erase Line    |    No Operation   | |
  762. | +-------------------+-------------------+-------------------+ |
  763. | |       Break       |      Go Ahead     | Synch Operation   | |
  764. | +-------------------+-------------------+-------------------+ |
  765. +---------------------------------------------------------------+
  766.  
  767. The  "[0]"  above  indicates  that these options are for telser.device
  768. unit 0.
  769.  
  770. All  these  commands  are documented in "Map Serial Break To field" of
  771. section `Device Unit Configuration'.
  772.  
  773.  
  774. 11. Logging
  775. ===========
  776.  
  777. All  log  entries have a time/date stamp.  The logs are written at the
  778. time  telser.device  closes,  unless  of course you click on the "Save
  779. Log"  button  in  the  `Telser Main Window'.  The  log entry types are
  780. defined as follows.
  781.  
  782. Trying <host>...
  783.     Client is trying to open a telnet connection with <host>
  784.  
  785. Connection established.
  786.     A successful connection has been made with the host.
  787.  
  788. select() returns <result>: error <code>
  789.     Internal error <code> caused by select()
  790.  
  791. Connection closed by foreign host.
  792.     telnetd on the other end has closed our connection
  793.  
  794. Connection closed.
  795.     you forcibly close the connection
  796.  
  797. unknown host: <host>
  798.     <host> is not in your hosts file or your name server.
  799.     Try again with an IP address instead.
  800.  
  801. tcp/telnet: unknown service
  802.     The remote host does not have telnetd running.
  803.  
  804. socket() error
  805.     Unable to open a socket
  806.  
  807. connect() error
  808.     Unable to connect to host at a particular port number.
  809.     Check your host name and port number and try again.
  810.     Port number 0 is the default.
  811.  
  812. Refer to your TCP/IP package for other network error messages.
  813.  
  814.  
  815. 12. Modem Commands
  816. ==================
  817.  
  818. The basic Hayes(r) compatible modem commands and options are supported
  819. by  telser.device.   Also,  several  new  commands are used by telser.
  820. Note  that  many  commands  and  options  are  there for compatibility
  821. reasons  and  are  ignored.   The  effective  commands and options are
  822. defined as follows.
  823.  
  824. Command/    Function
  825. Options
  826. --------    ----------------------------------------------------------
  827. A           Manually answer an incoming call.
  828. A/          Re-execute the last command. Useful for redialing.
  829.             It does not take AT or <Enter>.
  830. AT          Attention: lets the telser.device know that commands are
  831.             being issued to it.
  832. DP or DT    Attempt to connect to a host.
  833.             E.g.,  "ATDT archie.rutgers.edu,23".  The 23 following the
  834.             host name is the port number.
  835. DSn         Connect to the host stored at host list position n.
  836.             See &Zn.  E.g., "ATDS3"
  837. En          Command mode local echo.
  838.             E0  Echo OFF
  839.             E1  telser.device displays keyboard commands
  840. Fn          Online local echo.
  841.             F0  Echo ON
  842.             F1  Echo OFF (default)
  843. H0          Disconnect from host.
  844. In          Information display.
  845.             I0  Three digit version number.
  846.             I4  Display current modem settings.
  847.             I5  Display nonvolatile memory (NVRAM) (ie., from file)
  848.                 settings.
  849.             I7  Return version information
  850. O0          Return online.
  851. Qn          Result Codes displayed/suppressed.
  852.             Q0  Display result codes
  853.             Q1  Quiet mode; no result codes.
  854. Sr=n        Set register r to n.
  855. Sr?         Show contents of S-Register r.
  856. V0          Verbal/numeric result codes.
  857.             V0  Numeric codes
  858.             V1  Verbal codes
  859. Xn          Result code set.
  860.  
  861.             Result Code     X0  X1  X2  X3  X4
  862.             ----------------------------------
  863.             0/OK            .   .   .   .   .
  864.             1/CONNECT       .   .   .   .   .
  865.             2/RING          .   .   .   .   .
  866.             3/NO CARRIER    .   .   .   .   .
  867.             4/ERROR         .   .   .   .   .
  868.             5/CONNECT 1200      .   .   .   .
  869.             6/NO DIALTONE           .       .
  870.             7/BUSY                      .   .
  871.             8/NO ANSWER                 .   .
  872.             10/CONNECT 2400     .   .   .   .
  873.             13/CONNECT 9600     .   .   .   .
  874.             18/CONNECT 4800     .   .   .   .
  875.             20/CONNECT 7200     .   .   .   .
  876.             21/CONNECT 12000    .   .   .   .
  877.             25/CONNECT 14400    .   .   .   .
  878.             26/CONNECT 19200    .   .   .   .
  879.             27/CONNECT 38400    .   .   .   .
  880.             28/CONNECT 57600    .   .   .   .
  881.             29/CONNECT 115200   .   .   .   .
  882. Z           Reset to software defaults.
  883. &Cn         Carrier Detect (CD) signal.
  884.             &C0 CD override
  885.             &C1 Normal CD operations
  886. &Dn         Data Terminal Ready operations.
  887.             &D0 DTR override; so DTR drop would not cause a
  888.                 disconnection from host.
  889.             &D2 Normal DTR operations; telser disconnects when DTR
  890.                 drops.
  891. &V          Same as "ATI4"
  892. &W          Write current configuration to NVRAM (ie., db/telser.mdm).
  893. &Zn=s       Write host name string s to NVRAM at position n.
  894. +++         Escape to Online-command mode, or if S14=1, disconnect
  895.             from host and escape to command mode.
  896. [           Open the telser window. E.g., "AT[".
  897. ]           Close the telser window. E.g., "AT]".
  898. +CID=n      Caller ID
  899.             +CID=0 disable caller ID.
  900.             +CID=1 enable caller ID.
  901.             When caller ID is on, incoming calls will cause the
  902.             following to be displayed:
  903.  
  904.             RING
  905.             CID = IP address of caller
  906.  
  907. *cmd        Special modem commands for sending telnet commands.
  908.             *AO     Abort Output
  909.             *AYT    Are You There?
  910.             *BRK    Break
  911.             *EC     Erase Character
  912.             *EL     Erase Line
  913.             *GA     Go Ahead
  914.             *IP     Interrupt Process
  915.             *NOP    No Operation
  916.             *SYNCH  Synch Operation
  917.  
  918. $           Display quick command summary.  E.g., "AT$"
  919.  
  920.  
  921. S-Registers
  922.  
  923. Register    Default     Function
  924. --------    -------     ----------------------------------------------
  925. S0          0           Sets the number of rings on which to answer in
  926.                         Auto Answer mode.
  927. S1          0           Counts and stores the number of rings from an
  928.                         incoming call.
  929. S2          43          Stores the ASCII decimal code for the escape
  930.                         character.  The default is '+' (43).    A
  931.                         value of 128-255 disables the escape code.
  932. S3          13          Stores the ASCII decimal code for the
  933.                         Carriage Return Character.
  934. S4          10          Stores the ASCII decimal code for the Line
  935.                         Feed Character.
  936. S5          8           Stores the ASCII decimal code for the Back-
  937.                         space character.
  938. S14         0           If set to 1, the connection will be closed up
  939.                         on receipt of the escape code, returns to
  940.                         command mode and sends the NO CARRIER result
  941.                         code.
  942. S19         0           Sets the duration, in minutes, for the
  943.                         Inactivity Timer.  To disable it set it to 0.
  944.                         When the timer goes off, any connection will
  945.                         be closed.
  946.  
  947. 12.1. Connection Result Codes
  948. =============================
  949.  
  950. Telnet  connection  result  codes  are  mapped  to the following modem
  951. result codes.
  952.  
  953. NO CARRIER
  954.     unknown host or disconnection closed
  955.  
  956. NO ANSWER
  957.     unable to connect to host because host is down
  958.  
  959. NO DIALTONE
  960.     unable to open a socket
  961.  
  962. BUSY
  963.     unknown service
  964.  
  965. CONNECT ...
  966.     connection established.
  967.  
  968.  
  969. 13. serial.device compatibility
  970. ===============================
  971.  
  972. The basic serial.device commands are supported.  The ones that are not
  973. supported  are simply ignored and a successful result code is returned
  974. to the comm program.  Most comm programs are supported.  Some examples
  975. are:   Term  4.1,  VLT 5.867, NComm 3.0, Terminus 2.0c and 2.0d, JPTC,
  976. and  TinyTerminal.   Note  that  when  using telser with Terminus, the
  977. "Ignore  ODU"  option in settings/port should be turned off.  AXSH 1.3
  978. has  also  been  tested  to  work.   The comm programs that don't work
  979. include  hft,  XComm1.0a,  and Baud Bandit.  Note that EOF mode is not
  980. supported  yet.   If  you  are  a  comm/BBS  program author and telser
  981. doesn't work with your program let me know.
  982.  
  983.  
  984. 14. Troubleshooting
  985. ===================
  986.  
  987. Problem:
  988.     Nothing happens after I see the "CONNECT" string.
  989.  
  990. Cause:
  991.     Telnet negotiation failed.
  992.  
  993. Solution:
  994.     Turn BINARY mode off from the `Telser Options Window'.
  995.     On some Suns, use the terminal "UNKNOWN" when logging in.
  996.     After you logged in, issue "setenv TERM <your-term>".
  997.     (The Suns I have access to don't suffer this problem.)
  998.  
  999. ----------------------------------------------------------------------
  1000. Problem:
  1001.     You can't enter your user id and password.
  1002.  
  1003. Cause:
  1004.     The host expects a different end-of-line character that
  1005.     terminates a line of input.
  1006.  
  1007. Solution:
  1008.     On some Suns, use ^J (linefeed) instead of carriage-return.
  1009.     If possible, remap your carriage-return key to linefeed.
  1010.     It may also help if you set the terminal to "UNKNOWN".
  1011.  
  1012. ----------------------------------------------------------------------
  1013. Problem:
  1014.     You can't log into Amiga NetBSD systems.
  1015.  
  1016. Cause:
  1017.     Telnet negotiation failed.
  1018.  
  1019. Solution (maybe):
  1020.     Telser's LINEMODE options are not 100% implemented.
  1021.     Hopefully, it'll be completed in the future releases.
  1022.     Meanwhile, try the host again with LINEMODE set off in
  1023.     the `Telser Options Window'
  1024.  
  1025. ----------------------------------------------------------------------
  1026. Problem:
  1027.     You can log into a BSDI BSD/386 system, but it wont' respond
  1028.     to your keystrokes.
  1029.  
  1030. Cause:
  1031.     Telnet negotiation failed.
  1032.  
  1033. Solution:
  1034.     telser doesn't support LINEMODE completely, so turn off LINEMODE
  1035.     in the `Telser Options Window' and try again.
  1036.  
  1037. ----------------------------------------------------------------------
  1038. Problem:
  1039.     When you use DTR drop to hang up telser you don't see the full
  1040.     "NO CARRIER" string.
  1041.  
  1042. Cause:
  1043.     DTR drop invovles closing and re-opening the device.
  1044.     Some comm programs flush the device after it opens it,
  1045.     but before the first read.
  1046.     Therefore, the "NO CARRIER" can be partly flushed out.
  1047.  
  1048. Solution:
  1049.     Do not use DTR drop to hang up.  Instead use +++ATH\r.
  1050.  
  1051. ----------------------------------------------------------------------
  1052. Problem:
  1053.     When  telser.device  is  opened  the second time, the comm program
  1054.     reports busy.
  1055.  
  1056. Cause:
  1057.     The unregistered version of telser allows only one unit at a time.
  1058.     You are recommended to register.  See `Registration Form'
  1059.     You chose the same unit as the first comm program.
  1060.  
  1061. Solution:
  1062.     If you are already a registered user, make sure the telser.key
  1063.     file is in S:
  1064.     Chose a different unit and try again.
  1065.  
  1066. ----------------------------------------------------------------------
  1067. Problem:
  1068.     You can't do file transfers.
  1069.  
  1070. Cause:
  1071.     Intolerable time delays affecting the underlying transfer protocol.
  1072.  
  1073. Solution:
  1074.     Play with the protocol parameters such as relaxed timing,
  1075.     packet sizes, etc.
  1076.     telser would probably not work with kermit as kermit probably
  1077.     use the EOFMODE of the serial device, which telser doesn't
  1078.     support yet.
  1079.     You can also "uuencode" the file you want to transfer and
  1080.     ascii capture the output from the "cat" command.
  1081.  
  1082.  
  1083. 15. Acknowledgements
  1084. ====================
  1085.  
  1086. Thank-you's go to...
  1087.  
  1088.  - The AmiTCP group at Helsinki University for their great work;
  1089.  
  1090.  - Stephan Sürken for Text2Guide, which made creating AmigaGuide
  1091.    documents easy; and
  1092.  
  1093.  - All  the  beta-testers  (TOO  many to list.), especially  those who
  1094.    made  reports.  Big thanks to David Zvekic (IRC nick:  Ensoniq) and
  1095.    NJ   Verenini   (IRC  nick:   Spumoni)  for  working  closely  with
  1096.    debugging the AS225 and AmiTCP versions, respectively.
  1097.  
  1098.  
  1099. 16. Registration Form
  1100. =====================
  1101.  
  1102. ----------------------- telser Registration --------------------------
  1103. Surname___________________________ Given Name_________________________
  1104.  
  1105. Company Name_________________ Type of Business________________________
  1106.  
  1107. Street Address________________________________________________________
  1108.  
  1109. City______________________________ Prov./State________________________
  1110.  
  1111. Country___________________________ Postal/ZipCode_____________________
  1112.  
  1113. E-Mail (please specify)_______________________________________________
  1114.  
  1115. ______________________________________________________________________
  1116.  
  1117. Can the above e-mail address accept uuencoded files?___
  1118.  
  1119. What network software and hardware are you using?_____________________
  1120.  
  1121. ______________________________________________________________________
  1122.  
  1123. Where did you obtain telser?__________________________________________
  1124.  
  1125. Version of telser you have now________________________________________
  1126.  
  1127.  
  1128. Registration fee: $15US for unlimited units.
  1129.                   Canadian users may send $20CAN.
  1130.  
  1131. Method of payment:
  1132. [ ] Money order
  1133. [ ] Personal cheque, please allow 3-4 weeks for clearance.
  1134.     No personal cheques from outside of Canada.
  1135. [ ] Cash (wrap it with lots of paper).  Registered mail recommended.
  1136.     I hold no responsibility for missing cash.
  1137.  
  1138. I have read the section `Legal Stuff' and agree with it.
  1139.  
  1140. _________________________  ___________________________________________
  1141.        (Date)                           (Signature)
  1142. ----------------------------------------------------------------------
  1143.  
  1144.  
  1145. 17. Contact Address
  1146. ===================
  1147.  
  1148. Registration  fees,  questions,  ideas,  comments,  bug  reports, etc.
  1149. should go to:
  1150.  
  1151. Snail Mail: Sam Yee
  1152.             4595 Nanaimo St.
  1153.             Vancouver, B.C.
  1154.             Canada  V5N 5J5
  1155.  
  1156.   Internet: samy@sfu.ca
  1157.    FidoNet: 1:153/765 (Terra Firma BBS (604) 434-3665)
  1158.