% Syncronized to German version: NOT IN SYNC

  \chapter{Creating the boot floppy}

  As soon as configuration has been completed, you can create the boot floppy.

  Using the command

  \verb*zsh mkfloppy.shz       \hspace{2em}       on Linux/Unix

  or

  \verb*zmkfloppyz            \hspace{2em}        on Windows

  the needed driver/programs etc. from the directory opt together with
  the kernel and the root filesystem are written to the floppy disk.

  On Windows, you will have to enter the command in a DOS box. But this
  does not mean that you will be able to create the floppy in ``pure''
  DOS mode. Since version 1.3 the used programs mkfli4l.exe and zip.exe
  windows executables in the text mode (so-called ``Character Mode
  Executables'') are *no* DOS programs any longer. Thus, creating fli4l
  boot floppies in DOS mode is not possible any more.
  The reason: long filenames in the directory opt.

  The linux/unix version first writes a DOS-FAT (i.e.: empties the floppy!)
  and a boot sector including boot program to the disk. Then, the kernel, the
  root filesystem and the Tar archive opt.tgz is written to disk.

  The windows version works similary, but it is necessary to format the disk
  prior to the script call, as it will not empty the disk.

  On linux is it possible to create floppies that are formatted with a higher
  density. You can do it with this command:

\begin{example}
\begin{verbatim}
                fdformat /dev/fd0u1680
\end{verbatim}
\end{example}

  There will be 240 KB more space available.

  On windows there are corresponding programs that can format floppies
  this way, e.g.

  \link{ftp://ftp.tu-clausthal.de/pub/msdos/utils/dskutl/fdformat.zip}
  \link{ftp://ftp.tu-clausthal.de/pub/msdos/utils/dskutl/hdcp20ad.zip}
  \link{http://www.vgasoft.de/produkte/vgacopy.html} (Shareware)

  The floppy has to be formatted with 80 Tracks, double-sided and with
  21 Sectors/Track.

  In the config file base.txt you will have to set:

\begin{example}
\begin{verbatim}
                FDD_1680='yes'
\end{verbatim}
\end{example}

  The command for creating the floppy does not change:

  \verb*zsh mkfloppy.shz       \hspace{2em}       on Linux/Unix

  or

  \verb*zmkfloppyz            \hspace{2em}        on Windows

  Sometimes it can happen that pre-formatted disks will take more than
  5 minutes to boot. Normally the boot process should be finished within
  1 to 2 minutes. If it takes longer, it is most likely caused by a bad
  interleave. In this case you should just reformat the disk under
  dos/windows. It may help to remove the option ``-s'' from the batch file
  mkfloppy.bat after the syslinux call.

  On windows 2000 probably an error will occur when creating the floppy:

\begin{example}
\begin{verbatim}
``16-Bit-MS-DOS-Subsystem: Drive A: The drive could not be locked for
exclusive access. Maybe another application already uses it\ldots''
\end{verbatim}
\end{example}

  When this message appears you should click on ``Ignore''. The floppy will
  be re-created then.

  And another information:

  fli4l mounts the disk in the rootfs as read/write, in case the variable
  \jump{MOUNTBOOT}{MOUNT\_BOOT} is set to  'rw'. Then, the write lock of the
  floppy may not be activated.

  Should you change the configuration later on, only the file opt.tgz on the
  exisiting floppy disk has to be replaced.
  This is how you do it:

  Linux:

\begin{example}
\begin{verbatim}
        sh mktgz.sh             \# Create archive opt.tgz and file rc.cfg
        cd img                  \# Change to the directory ``img''
        mcopy opt.tgz a:        \# Copy file opt.tgz to the floppy
        mcopy rc.cfg a:         \# NEW! Copy file rc.cfg to the floppy
\end{verbatim}
\end{example}

  Windows (in DOS box):
\begin{example}
\begin{verbatim}
        mktgz                   \# Create archiv opt.tgz and file rc.cfg
        cd img                  \# Change to the directory ``img''
        copy opt.tgz a:         \# Copy file opt.tgz to the floppy
        copy rc.cfg a:          \# NEW! Copy file rc.cfg to the floppy
\end{verbatim}
\end{example}

  That's it!

  \chapter{Connecting PCs in the LAN}

  For every host in the LAN you will have to set up:

  \begin{enumerate}
  \item IP address (see \smalljump{sec:pc-lan-ip})
  \item Name of the host plus domain name
    (siehe \smalljump{sec:pc-lan-name})
  \item Default gateway (see \smalljump{sec:pc-lan-gateway})
  \item IP address of the DNS server (siehe \smalljump{sec:pc-lan-dns})
  \end{enumerate}


  \section{IP address}
  \marklabel{sec:pc-lan-ip}{}
  The IP address has to be in the same network as the IP address of the
  fli4l router (on the ethernet interface), for example 192.168.6.2 in case
  the router has the IP address 192.168.6.1.
  IP addresses have to be unique in the network, so it's a good idea to
  change (only) the last digit. You will also have to make sure you specify
  the same IP address as specified in the file config/base.txt.


  \section{Host and domain name}
  \marklabel{sec:pc-lan-name}{}
  The name of the host is for example ``my-pc'', the domain ``lan.fli4l''.

  \wichtig{The domain set up on the host has to be identical with the domain
  set up on the fli4l, in case you want to use fli4l as DNS server. Otherwise
  it could cause massive problems in the network.}

  The Reason: Windows host regulary search for hosts with the name of their
  workgroup: WORKGROUP.my-domain.fli4l. If the domain (here:
  my-domain.fli4l) doesn't match the one set up on the router, fli4l will try
  to answer the query by forwarding it to the internet \ldots

  The domain has to be entered in the TCP/IP settings of the host.

  \subsection{Windows 2000}

  On Windows 2000 the settings can be found under:

  Start \pfeil\\
  \hspace*{2ex}  Settings \pfeil\\
  \hspace*{4ex}Control Center \pfeil\\
  \hspace*{6ex}Network- and DFÜ-Connections \pfeil\\
  \hspace*{8ex}LAN-Connection \pfeil\\
  \hspace*{10ex}Properties \pfeil\\
  \hspace*{12ex}Internet protocol (TCP/IP) \pfeil\\
  \hspace*{14ex}Properties \pfeil\\
  \hspace*{16ex}Extended\ldots \pfeil\\
  \hspace*{18ex}DNS \pfeil\\
  \hspace*{20ex}Add DNS-Suffix \pfeil\\

  Type ``lan.fli4l'' (or the domain set up - without ``''!)
  \pfeil Click OK.


\subsection{NT 4.0}

  Start \pfeil\\
  \hspace*{2ex}Settings \pfeil\\
  \hspace*{4ex}Control Center \pfeil\\
  \hspace*{6ex}Network \pfeil\\
  \hspace*{8ex}Protocols \pfeil\\
  \hspace*{10ex}TCP/IP \pfeil\\
  \hspace*{12ex}Properties \pfeil\\
  \hspace*{14ex}DNS \pfeil\\
  \hspace{16ex}\begin{itemize}
  \item Enter hostname (of the client)
  \item Enter domain (same as in config/base.txt)
  \item Add IP address of fli4l router
  \item Add DNS suffix (add domain - see two lines above)
  \end{itemize}

\subsection{Win95/98}

  Start \pfeil\\
  \hspace*{2ex}Settings \pfeil\\
  \hspace*{4ex}Control Center \pfeil\\
  \hspace*{6ex}Network \pfeil\\
  \hspace*{8ex}Configuration \pfeil\\
  \hspace*{10ex}TCP/IP (the one, that is bound to the network\\
  \hspace*{10ex}interface to the router) \pfeil\\
  \hspace*{12ex}Properties \pfeil\\
  \hspace*{14ex}DNS-Configuration:

  Activate DNS and under ``Domain:'' enter ``lan.fli4l'' (or the domain
  set up - without ``''!).



  \section{Gateway}
  \marklabel{sec:pc-lan-gateway}{}

  It is absolutely necessary to specify a default gateway, because without
  the correct IP address here, nothing will work.
  So you will have to specify the IP address of the fli4l router here (of the
  ethernet interface) - for example 192.168.6.4, depending on the IP address
  that has been specified in the file config/base.txt for the router.

  It is wrong to enter fli4l as proxy in the windows or browser configuration
  unless you use junkbuster on the router. Normally fli4l is no proxy, thus
  please do \emph{not} specify as proxy!


\section{DNS server}
\marklabel{sec:pc-lan-dns}{}

  As IP address you should not specify the IP address of the provider's
  DNS server, but the address of the router (ethernet interface), as it
  will anwser queries itself or forwards them to the internet if needed.

  The values 1 to 4 do not have to be specified when a DHCP server is
  configured as fli4l transmitts the needed data automatically.

  When fli4l is used as DNS, many queries from windows hosts are not
  forwarded to the internet but fli4l can answer them itself.

  Other annotations

  {\bf Internet options}

  Under connections you will have to select ``do not dial''. Under settings
  for local network (LAN): Do NOT enter anything (unless you use
  \var{OPT\_\-P}roxy).

  Thank you, Alexander Levenetz, for investigating the windows configuration
  :-)


  \chapter{Client/Server interface imond}

  \section{imon-Server imond}

  imond is a network-capable server program that responds to certain queries
  or accepts commands that can control the router.

  imond also controls the Least-Cost-Routing. It uses the configuration
  file /etc/imond.conf, that is create automatically from the variables
  \var{ISDN\_\-CIRC\_\-x\_\-XXX} from the file config/isdn.txt and other
  at boot time by a shell script.

  imond runs permanentely as demon and listens on TCP/IP port 5000 and the
  device /dev/isdninfo.


  Following all possible commands that can be sent to TCP/IP port 5000:
  \begin{table}
    {\bf Admin commands}

    \vspace{1ex}
    \begin{tabular}{lp{9cm}}

      addlink ci-index              & Add channel to the circuit
                                      (channel bundling) \\
      adjust-time seconds           & Increments the date on the router by
                                      the number of seconds specified \\
      delete filename pw            & Deletes the file on the router \\
      hup-timeout \#ci-index [value]& Show or set the HUP timeout for
                                      ISDN circuits \\
      removelink ci-index           & Remove additional channel \\
      reset-telmond-log-file        & Deletes the telmond log file \\
      reset-imond-log-file          & Deletes the imond log file \\
      receive filename \#bytes pw   & Transfer a file to the router.
                                      Imond acknowledges the command using
                                      an ACK (0x06). After that, the file is
                                      transfered in blocks of 1024 bytes
                                      that are also acknowledged with an ACK.
                                      Finally, imond replies with an OK. \\
      send filename pw              & If the password is correct and the file
                                      exists, imond replies with OK \#bytes.
                                      Then, imond transfers the file in blocks
                                      of 1024 bytes that have to be
                                      acknowledged with an ACK (0x06).
                                      Finally, imond replies with an OK. \\
      support pw                    & Shows the status/configuration of the
                                      router \\
      sync                          & Syncs the cache of mounted drives \\
    \end{tabular}
  \end{table}



  \begin{table}
    {\bf Admin or User commands}

    \vspace{1ex}
    \begin{tabular}{lp{9cm}}

      dial                      &    Dials the provider
                                     (Default-Route-Circuit) \\
      dialmode [auto|manual|off]&    Shows or sets the dialmode \\
      disable                   &    Hangs up and sets the dialmode to
                                     ``off'' \\
      enable                    &    Sets the dialmode to ``auto'' \\
      halt                      &    Cleanly shuts down the router \\
      hangup                    &    Hangs up \\
      reboot                    &    Reboots the router! \\
      route [ci-index]          &    Set the default route to circuit X
                                     (0=automatically) \\
    \end{tabular}
  \end{table}


  \begin{table}
    {\bf User commands}

    \vspace{1ex}
    \begin{tabular}{lp{9cm}}
      channels                  & Shows the number of available ISDN
                                  channels\\
      charge \#channel-id       & Shows the online fee for a specific
                                  channel\\
      chargetime \#channel-id   & Time charged in consideration of the
                                  charge interval\\
      circuit [ci-index]        & Shows a cicuit name\\
      circuits                  & Shows number of default-route-circuits\\
      cpu                       & Show the CPU load in percent\\
      date                      & Shows date/time\\
      device ci-index           & Shows the device of the circuit\\
      driverid \#channel-id     & Shows driver-id of the channel X\\
      help                      & Shows help\\
      inout \#channel-id        & Show direction (incoming/outgoing)\\
      imond-log-file            & Shows imond log file\\
      ip \#channel-id           & Shows IP\\
      is-allowed command        & Shows, wheter a command is
                                  configured/allowed\newline
                                  Possible commands:
                                    dial|dialmode|route|reboot|
                                    imond-log|telmond-log|mgetty-log \\
      is-enabled                & Shows, wheter dialmode is off (0) or auto
                                  (1)\\
      links ci-index            & Show number of channels 0, 1 or
                                  2, 0 means: No channel bundling possible\\
      log-dir imond|telmond|mgetty& Shows the log directory\\
      mgetty-log-file           & Shows mgetty logfile\\
      online-time \#channel-id  & Shows online time of the current connection
                                  in hh:mm:ss\\
      pass [password]           & Show, wheter is it necessary to enter a
                                  password or enter a password\newline
                                  1 Userpassword is set\newline
                                  2 Adminpassword is set\newline
                                  4 imond is in admin mode\\
      phone \#channel-id        & Show telephone number/name of the peer\\
      pppoe                     & Show the number of pppoe devices (i.e. 0
                                  or 1)\\
      quantity \#channel-id     & Show the data transferred in byte\\
      quit                      & Terminates the connection to imond\\
      rate \#channel-id         & Show transfer rates (incoming/outgoing
                                  in B/sec)\\
      status \#channel-id       & Show status of channel X\\
      telmond-log-file          & Shows telmond log files\\
      time \#channel-id         & Show the sum of online times, format
                                  hh:mm:ss\\
      timetable [ci-index]      & Shows the time table for the LC-Routing\\
      uptime                    & Shows the uptime of the router in seconds\\
      usage \#channel-id        & Show the type of the connection, possible
                                  responses: Fax, Voice, Net, Modem, Raw\\
      version                   & Show the protocol and program version\\
    \end{tabular}
  \end{table}


  The TCP/IP port 5000 is only reachable from the masqueraded LAN.
  Access from remote is blocked by the firewall configuration by default.

  Imond supports two user levels: the user and the admin mode. For both
  levels you can set a password using var{IMOND\_\-PASS} and/or
  \var{IMOND\_ADMIN\_\-PASS}. Then, clients are forced by imond to
  submit a password. As long no password has been submitted, only the
  commands ``pass'' and``quit'' are accepted. Other are rejected.

  If you want to further restrict the access, e.g. only allow access
  from a single computer, the firewall configuration has to be changed.

  This is not possible momentarily using the standard configuration files
  config/base.txt. You will have to change the file /etc/rc.d/rc322.masq.

  The commands

\begin{example}
\begin{verbatim}
         enable/disable/dialmode   dial/hangup   route   reboot/halt
\end{verbatim}
\end{example}

  Can be globally enabled/disabled using the configuration variables
  \var{IMOND\_\-XXX} (see ``Configuration'').

  From a Unix/Linux computer (or a Windows computer in a DOS box) you can
  easily try it out:
  Type

\begin{example}
\begin{verbatim}
        telnet fli4l 5000        \# oder entsprechender Name des fli4l-Routers
\end{verbatim}
\end{example}

  and you will be able to directly enter the listed commands and look at
  the output.

  For example after entering ``help'' the help is shown, after
  ``quit'' the connection to imond is terminated.


  \subsection{Least-Cost-Routing - how it works}

  imond contructs a table (time table) from the configuration file
  /etc/imond.conf (which is created on bootup from the config variables
  \var{ISDN\_\-CIRC\_\-x\_\-TIMES} and others). It contains a complete
  calendar week in a raster of 1 hour (168 Stunden = 168 Bytes). But the
  table only contains the circuit that have a default route defined.

  Using the imond command ``timetable'' you can have a look at it.

  Here an example:

  Supposing 3 circuits are defined:

\begin{example}
\begin{verbatim}
        CIRCUIT_1_NAME='Addcom'
        CIRCUIT_2_NAME='Compuserve'
        CIRCUIT_3_NAME='Firma'
\end{verbatim}
\end{example}

  Only the first two cicuits have a default cicuit defined, i.e. the
  corresponding variables ISDN\_CIRC\_x\_ROUTE have the value '0.0.0.0'.

  If the variables \var{ISDN\_\-CIRC\_\-x\_\-TIMES} look like this:

\begin{example}
\begin{verbatim}
        ISDN_CIRC_1_TIMES='Mo-Fr:09-18:0.0388:N Mo-Fr:18-09:0.0248:Y
                      Sa-Su:00-24:0.0248:Y'

        ISDN_CIRC_2_TIMES='Mo-Fr:09-18:0.019:Y Mo-Fr:18-09:0.049:N
                      Sa-Su:09-18:0.019:N Sa-Su:18-09:0.049:N'

        ISDN_CIRC_3_TIMES='Mo-Fr:09-18:0.08:N Mo-Fr:18-09:0.03:N
                      Sa-Su:00-24:0.03:N'
\end{verbatim}
\end{example}

  it results in the following /etc/imond.conf being created:

\begin{example}
\begin{verbatim}
        #day  hour  device  defroute  phone        name        charge  ch-int
        Mo-Fr 09-18 ippp0   no        010280192306 Addcom      0.0388   60
        Mo-Fr 18-09 ippp0   yes       010280192306 Addcom      0.0248   60
        Sa-Su 00-24 ippp0   yes       010280192306 Addcom      0.0248   60
        Mo-Fr 09-18 ippp1   yes       019160       Compuserve  0.019   180
        Mo-Fr 18-09 ippp1   no        019160       Compuserve  0.049   180
        Sa-Su 09-18 ippp1   no        019160       Compuserve  0.019   180
        Sa-Su 18-09 ippp1   no        019160       Compuserve  0.049   180
        Mo-Fr 09-18 isdn2   no        0221xxxxxxx  Firma       0.08     90
        Mo-Fr 18-09 isdn2   no        0221xxxxxxx  Firma       0.03     90
        Sa-Su 00-24 isdn2   no        0221xxxxxxx  Firma       0.03     90
\end{verbatim}
\end{example}

  imond creates in the memory the following time table - here the output
  of the imond command ``timetable'':

\begin{example}
\begin{verbatim}
         0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
     --------------------------------------------------------------------------
     Su  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3
     Mo  2  2  2  2  2  2  2  2  2  4  4  4  4  4  4  4  4  4  2  2  2  2  2  2
     Tu  2  2  2  2  2  2  2  2  2  4  4  4  4  4  4  4  4  4  2  2  2  2  2  2
     We  2  2  2  2  2  2  2  2  2  4  4  4  4  4  4  4  4  4  2  2  2  2  2  2
     Th  2  2  2  2  2  2  2  2  2  4  4  4  4  4  4  4  4  4  2  2  2  2  2  2
     Fr  2  2  2  2  2  2  2  2  2  4  4  4  4  4  4  4  4  4  2  2  2  2  2  2
     Sa  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3

     No.  Name                   DefRoute  Device  Ch/Min   ChInt
      1   Addcom                   no      ippp0   0.0388     60
      2   Addcom                   yes     ippp0   0.0248     60
      3   Addcom                   yes     ippp0   0.0248     60
      4   Compuserve               yes     ippp1   0.0190    180
      5   Compuserve               no      ippp1   0.0490    180
      6   Compuserve               no      ippp1   0.0190    180
      7   Compuserve               no      ippp1   0.0490    180
      8   Firma                    no      isdn2   0.0800     90
      9   Firma                    no      isdn2   0.0300     90
     10   Firma                    no      isdn2   0.0300     90
\end{verbatim}
\end{example}

  For circuit 1 (Addcom) there are three time ranges (1-3) defined.
  For circuit 2 (Compuserve) there are four time ranges (4-7) and
  for the last one there are three time ranges (8-10).

  In the time table, the indices are printed out, that are valid in the
  corresponding hour. Only the indices 2-4 show up here, as the others
  are no default routes.

  If there are zeros in the table, there are gaps in the values of the
  \var{ISDN\_\-CIRC\_\-X\_\-TIMES} variables. At these times there is no
  default route, no internet access possible!

  On program start, imond checks for the weekday and the hour. Then, the
  index from the time table is picked out and the corresponding circuit.
  The default route is then set to this cicuit.

  If the status of a channel changes (e.g. offline - online) or at the
  latest after one minute, this procedure is repeated: check time, lookup
  in table, pick default route cicuit.

  If the used circiut changes, e.g. on mondays, 18:00, the default route
  is deleted, existing connections are terminated (sorry\ldots) and after
  that the default route is set to the new circuit. Imond may notice this
  up to 60 seconds too late - so at the latest at 18:00:59 the route is
  changed.

  If a circuit does not have default route, nothing will change. The value
  of \var{ISDN\_\-CIRC\_\-x\_\-TIMES} is only used to calculate the fee.
  This can be important if the LC routing is disabled temporary, e.g. using
  the client imonc, and a cicuit is dialled manually.

  But you can have a look at the tables for other time-range-indices
  (in our example 1 to 10), also at the ones of the
  ``Non-LC-Default-Route-Circuits''.

  Command:

\begin{example}
\begin{verbatim}
                    timetable index
\end{verbatim}
\end{example}

  Example:

\begin{example}
\begin{verbatim}
                    telnet fli4l 5000
                    timetable 5
                    quit
\end{verbatim}
\end{example}

  The output will look like:

\begin{example}
\begin{verbatim}
         0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
     --------------------------------------------------------------------------
     Su  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
     Mo  5  5  5  5  5  5  5  5  5  0  0  0  0  0  0  0  0  0  5  5  5  5  5  5
     Tu  5  5  5  5  5  5  5  5  5  0  0  0  0  0  0  0  0  0  5  5  5  5  5  5
     We  5  5  5  5  5  5  5  5  5  0  0  0  0  0  0  0  0  0  5  5  5  5  5  5
     Th  5  5  5  5  5  5  5  5  5  0  0  0  0  0  0  0  0  0  5  5  5  5  5  5
     Fr  5  5  5  5  5  5  5  5  5  0  0  0  0  0  0  0  0  0  5  5  5  5  5  5
     Sa  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

     No.  Name                   DefRoute  Device  Ch/Min   ChInt
      5   Compuserve               no      ippp1   0.0490    180
\end{verbatim}
\end{example}

  Got everything?

  Using the command ``route'', the LC routing can be enabled or disabled.
  If a positive circuit index is specified (1\ldots N) the default route
  is changed to the cicuit specified. If the index is 0, LC routing will be
  activated again and the active cicuit is chosen automatically.


  \subsection{Annotations to the calculation of the online chages}

  The whole model how the online charges are calculated will only work
  correctly, if the charge interval for a single cicuit (variable
  \var{ISDN\_\-CIRC\_\-x\_\-CHARGEINT}) remains constant throughout the whole
  week.

  Normally, this is correct for most of the internet providers. But if you
  dial in, e.g. to your companies network, using the (German) Telekom (not
  the internet provider T-Online), the change interval changes at 18:00 from
  90 seconds to 4 minutes (information from june 2000). Because of that, the
  definition

\begin{example}
\begin{verbatim}
        ISDN_CIRC_3_CHARGEINT='90'
        ISDN_CIRC_3_TIMES='Mo-Fr:09-18:0.08:N Mo-Fr:18-09:0.03:N Sa-Su:00-24:0.03:N'
\end{verbatim}
\end{example}

  is not absolutely correct. After 18:00 the price is converted to 3
  cents (4 minutes cost 12 cents), but the charge interval is wrong.
  Because of that, the displayed charge could differ from the actual one.

  Here is a tip, how different charge intervals can be handeled correctly,
  anyhow (also important for \var{ISDN\_\-CIRC\_\-x\_\-CHARGEINT}):
  Just define 2 cicuits - one for each charge interval.
  Of course you will have to adjust \var{ISDN\_\-CIRC\_\-x\_\-TIMES}
  so that always the valid cicuit is dialled, depending on the charge
  interval.

  Once again: If you connect to an ISP you will most likely not have this
  problem, because the charge interval is constant all the time and
  only the prices per minute change (or doesn't it? I guess the German
  provider T-* could even introduce such a price model :-).

  \input{base_winimonc}

  \section{Unix/Linux-Client imonc}

  For linux there are 2 different versions: a text-based (imonc) and a
  GUI application (ximonc).

  TBD: aktuell?
  Für Linux gibt es mittlerweile 2 Versionen: eine textbasierte
  (imonc) und eine mit graphischer Oberfläche (ximonc). Den Source zu
  ximonc findet man im Verzeichnis src. Die Dokumentation für ximonc
  wird erst in der 1.5-Final-Version zur Verfügung stehen. Ein
  erfahrener Linux-User sollte aber mit den Sources keine Probleme
  haben.

  Here, we will only describe the text-based version imonc. It is a
  curses-based program, i.e. it does not have a GUI. The source can be
  found in the directoy unix.

  Installation:

\begin{example}
\begin{verbatim}
        cd unix
        make install
\end{verbatim}
\end{example}

  imonc will be installed to /usr/local/bin.

  Command line parameters:

\begin{example}
\begin{verbatim}
        imonc hostname
\end{verbatim}
\end{example}

  hostname can be the name or the IP address of the fli4l
  router, e.g.

\begin{example}
\begin{verbatim}
        imonc fli4l
\end{verbatim}
\end{example}


  imonc show the following:

  \begin{itemize}
  \item Date/Time of the fli4l router

  \item Momentarily configured route

  \item Default-Route-Circuits

  \item ISDN channels
    \begin{description}
    \item[Status]:         Calling/Online/Offline
    \item[Name]:           Phone number of the peer or the circuit-name
    \item[Time]:           Online time
    \item[Charge-Time]:    Online time considering the charge intervall
    \item[Charge]:         The actual charge
    \end{description}
  \end{itemize}


  Possible commands:

  \begin{tabular}{lll}
    Nr  &Command             &Meaning\\
    0   &quit                &Quit program\\
    1   &enable              &Activate\\
    2   &disable             &Deactivate\\
    3   &dial                &Dial\\
    4   &hangup              &Hang up\\
    5   &reboot              &Reboot\\
    6   &timetable           &Output timetable\\
    7   &dflt route          &Set Default-Route-Circuit\\
    8   &add channel         &Add 2. channel\\
    9   &rem channel         &Remove 2. channel\\
  \end{tabular}

  Detailed information on every command:

  \begin{description}
  \item[0 -- quit] The connection to the imond server is terminated
    and the program quits.


  \item[1 -- enable] All circuits are set to dialmode ``auto''. This is
    the default state after boot. It results in fli4l dialling automatically
    on demand as soon as it receives a request by a host from the LAN.


  \item[2 -- disable] All circuits are set to dialmode ``off''. This means
    fli4l is virtually ``dead'' until it is revived by the enable command.


  \item[3 -- dial] Manual dial using the Default-Route-Circuit. You won't
    need this normally as fli4l normally dials automatically.


  \item[4 -- hangup] Manual hangup. You can make fli4l hangup before it does
    it automatically.


  \item[5 -- reboot] fli4l is rebooted. Pretty unnecessary command \ldots

    
  \item[6 -- timetable] The timetable for the Default-Route-Circuits is
    printed out. Example: see above.


  \item[7 -- default route circuit] Manually change the default route
    circuit. Can, e.g., make sense, if you want to disable the automatic
    LC routing of fli4l for a while, as some providers will only let you
    access your eMail if you're dialled in to their own ISP.

  \item[8 -- add channel] The second ISDN channel is manually added.
    Prerequisite: \var{ISDN\_\-CIRC\_\-x\_\-BUNDLING} is set to `yes'.


  \item[9 -- remove channel] Removes the second ISDN channel. See also
    ``add channel''.

  \end{description}

  Apart from that, the same annotation apply like for the windows client
  imonc.exe.

  A little remark: From fli4l-1.4 on, it is possible, to install a
  ``minimalistic'' imon client on the fli4l router itself using
  \var{OPT\_\-TOOLS}='yes'.

  You will be able to change some settings, e.g. routing etc. on the fli4l
  console locally. Be aware: This mini-imonc will only work on the fli4l
  router itself! On a linux or unix client you should always use the
  ``big brother'' unix/imonc.

