Provided by: ifcico_2.14tx8.10-19_i386 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>