Provided by: ifcico_2.14tx8.10-21_amd64 bug

NAME

       ifcico - Establish connections with other FTN nodes.

SYNOPSIS

       ifcico [-h] [-x<verbosity>] [-I<file>] [-r0|1] [-n<phone>] [-l<ttydevice>] node

       ifcico [-h] [-x<verbosity>] [-I<file>] [-r0|1] [-t0|1] -a<inetaddr>[:<port>] node

       ifcico tsync | yoohoo | **EMSI_INQC816

       (this implies slave mode)

DESCRIPTION

       Ifcico stands for "Internet - Fidonet Copy In / Copy Out", this is a FidoNet(r) compatible
       transport agent.  Currently it supports FTS-0001, YooHoo/2U2 and EMSI handshake protocols,
       Xmodem  (untested),  Telink  (untested),  Modem7 (untested), SEAlink w/overdrive and crash
       recovery, Bark file and update requests, WaZOO  protocols:  DietIFNA,  plain  Zmodem  (aka
       ZedZip,  EMSI flag "ZMO"), ZedZap and Hydra, WaZOO file and update requests (nodelist flag
       should be XA). Password protected  requests  are  not  implemented.  There  are  plans  to
       implement Janus protocol in the future.

       There  is  also a special protocol optimized to use over TCP/IP connection, contributed by
       Stanislav Voronyi <stas@uanet.kharkov.ua>, it is identified by EMSI proto  code  TCP  (not
       registered).

       Outbound   directory   structure   is  BinkleyTerm  compatible,  with  domains  and  point
       subdirectories (full 5d).  There are separate "listed" and "protected" inbound directories
       for  the  incoming  sessions with the nodes present in the nodelist(s) and with nodes that
       have a password assigned respectively.  Files received  during  an  outbound  session  are
       always  put  into  the  "protected" directory. (Only "protected" directory is looked up by
       ifunpack by default).

       "Magic" file request processors are executable files placed in the "magic" directory.   If
       request  is  made for a file with matching name, the executable from the "magic" directory
       is run, and its stdout sent to the requester.  Full requester's address, in the form "John
       Smith  of  1:234/56.7"  is passed to the executable in the command line.  See "misc/FILES"
       for an example of a magic  request  processor.   Non-  executable  files  in  the  "magic"
       directory  are "references".  If a request is made for a file with matching name, the file
       is read line by line, and request re-made for the name found in each line.  Up to 5 levels
       of recursion are allowed.

       To  run  ifcico in master mode, you must make dialout devices read/writable for ifcico, -B
       and do the same for the directory where your uucp locks are created (usually /var/lock/).

       To make ifcico work in  answer  mode,  you  need  an  FTN-able  getty.   Linux  "standard"
       getty_ps,  and  Gert Doering's mgetty (from the mgetty+sendfax package) and later versions
       have fidonet support built-in. Getty must distinguish incoming  FidoNet  type  calls,  and
       start ifcico with one parameter:

       FTS-0001 call:   "ifcico tsync"
       FTS-0006 call:   "ifcico yoohoo"
       EMSI call:       "ifcico **EMSI_....."

       (in the latter case the received EMSI packet should be passed without trailing CR).

       If  you  are using getty_ps, don't forget to create the file /etc/default/uugetty with the
       contents similar to the following (case sensitive):

       FIDO=/usr/local/lib/fnet/ifcico
       EMSI=yes

       When called without parameters, ifcico runs in slave  mode  and  determines  the  type  of
       inbound  session  itself.   This  mode may be used when ifcico runs as an internet or ISDN
       daemon.

       To make ifcico scan for pending outbound mail and do  appropriate  calls,  start  it  with
       "-r1" flag.  To force polling of particular nodes, specify these nodes in the command line
       (addresses should be in domain notation, e.g.  "ifcico f23.n5020 f155.n5020").  The latter
       implies  master mode (-r1).  Note that "hold" packets and files, as well as file requests,
       do not cause the node to be polled.

       Inbound directory is created automatically if it does not  exist,  along  with  the  "tmp"
       subdir.  The  latter is used while receiving files. After being successfully received, the
       files  are  moved  up  to  the  "inbound"  directory.   "protinbound"  and   "listinbound"
       directories  accept files received during password protected sessions and session with the
       nodes present in the nodelist(s) respectively.

       Ifcico can use text format nodelists in original (MS/DOS) form with <CR><LF>'s as well  as
       in  UNIX  form, with <LF>'s only.  When you get a fresh nodelist, or change the "nodelist"
       statements in the config file, you must rebuild index with ifindex program.

       For outgoing calls, status files are created for nodes, with the extention ".sts".   These
       are ascii files containg three decimal numbers in a single line:

       time retries code

       time  is the last call attempt time (attempts failing with "retry time not reached" do not
       count).  It is unsigned long representing the number of seconds since the epoch.
       retries is the number of consequitve call attempts made that  returned  "call  failed"  or
       "could not establish session".  This field is zeroed when call succeeds.
       code is the return code of the last attempt.

       nlpatch program compiles a new version of the nodelist from the old nodelist and nodediff.

OPTIONS

       -h               Display a short help message.

       -x  Verbosity               Set the debug verbosity Verbosity may be a number from 0 to 32
       to set 'on' bits from 1 to number, or a string of letters where 'a' = bit 1, 'b' = bit  2,
       etc. up to bit 26.

       -I File               Use the alternate configuration file File.

       -r  Role                1  -  master,  0  - slave. default is 0 (slave mode) if no node is
       provided; else the default is 1 (master mode).

       -a Inetaddr               Tell an internet  address  Inetaddr  to  make  a  connection  by
       TCP/IP.  A  specific port can be given ( -a Inetaddr:Port ).  The default is the one given
       by fido in /etc/services.

       -t Mode               0 - TCP, 1 -  Telnet-Vmodem.  Tells  the  mode  to  use  for  TCP/IP
       connections, the default is TCP mode (-t0)

       -n Phone
               For modem conections, this overrides the phone number given in the nodelist

       -l TtyDevice
               For modem connections, this overrides the tty value give in the config file

       Node                This  is the FTN addres of the node to call. The addres must be in the
       format "[pNN.]fNN.nNN[.zNN[.domain]]".

       tsync | yoohoo | **EMSI_INQC816               Those values are typically given by an  FTN-
       able  getty  (  mgetty or getty_ps ), they determine the type of FTN protocol to use. They
       imply slave mode.

RETURN CODES

       ifcico returns maximum return code for all calls made. Codes are as follows:

       0     Successfull call
       1     Dialout port unavailable
       2     Dial failed (no "CONNECT" or TCP connection failed)
       3     Could not reset the modem (no "OK")
       4     System locked
       5     Retry time not reached
       6     Fatal error in nodelist lookup
       7     Call prohibited by config options
       8     Phone number unavailable
       9     No matching ports defined
       10    Unused
       >10   Session failures (not defined yet)
       30    Could not establish session

FILES

       $IFLIBDIR/config
                 Runtime configuration file.

       /etc/services
                 Determines the default port number for fido, the port used  by  ifcico  for  tcp
              connections.

       nodelist.???
                 A list of nodes in an FTN network.  ifcico uses it by compiling it with ifindex

       $BINDIR/ifindex
                 compiles a nodelist so ifcico can use it.

       $BINDIR/ifstat
                 show statistics of calls, etc.

SEE ALSO

       ifmail(8), ifindex(8), ifinfo(8), ifstat(8), ifpack(8), ifunpack(8), iftoss(8), mgetty(8),
       getty(1)

ACKNOWLEDGEMENTS

       Some ideas taken from Fidogate/RFmail package, written by Teemu Torma and hacked by Martin
       Junius.
       Some tcp code taken from JE version, written by Tsuneo Tanaka <ttan@twics.com>

       Hydra protocol support by Christof Meerwald <cmeerw@htl.fh-sbg.ac.at>

       1993, 1994 Eugene Crosser

       This  is  free software. You can do what you wish with it as long as this copyright notice
       is preserved.

       Manpage by Pablo Saratxaga <srtxg@chanae.alphanet.ch>