Skip to content
forked from leenooks/qico

qico, an ftn compatible mailer

License

Notifications You must be signed in to change notification settings

uncleeugene/qico

 
 

Repository files navigation

 Qico is an ftn compatible mailer that can run on older style modem ground lines as well as
 over IP using more modern (to be more precise - less fossil) binkp and ifcico protocols.
 
 This is version 0.59.1 forked from leenooks/qico with some number of small bugfixes.
 
Features
~~~~~~~~
 * EMSI Protocols: ZModem, ZedZap, Hydra (Std, 4k, 8k, 16k), Janus; Binkp.
 * Support 4D Binkley-Style, Amiga-style outbound, FileBoxes, LongNameBoxes.
 * "Muzzle" - a program that allows you to control the operation of mailer (ncurses based).
 * Daemon mode for outgoing calls and muzzle.
 * Asynchronous queue manager and sessions (both incoming and outgoing).
 * Built-in fast nodelist compiler.
 * Built-in utility for managing outbound.
 * Substitutions (substs) including ip addresses and hidden-lines setup.
 * Dynamic configuration - the ability to change most of the configuration parameters
   on the fly depending on numerous conditions.
 * Ability to limit the time for the session.
 * Supports WaZOO-and SRIF-compatible freq processors.
 * Supports all kinds of local file and path names transformations
 * Ability to limit the minimum speed of a connection.
 * Ability to pass / retent incoming files.
 * Live Chat (Hydra, Z * and Binkp).
 * Perl-hooks.

Building & Installation
~~~~~~~~~~~~~~~~~~~~~~~

   
   $ autoupdate 
   $ ./autogen.sh
   $ ./configure --help
   $ ./configure [options desired]
   $ make
   $ sudo make install

  Edit qico.conf, qico.passwd, qico.substs to fit your needs.
  Default configuration files location is /usr/local/etc,
  you may feed your own config file using -I option.
  
Using
~~~~~
 * For outgoing sessions it is enough to run qico -d, you may set your own
   systemd service like so:
   File: /etc/systemd/system/qico.service:
   
   [Unit]
   Description=Qico Mailer
   
   [Service]
   User=<username>
   Group=<group name>
   ExecStart=/usr/local/sbin/qico -I <path to qico.conf>/qico.conf -d
   ExecReload=/bin/kill -HUP $MAINPID
   
   [Install]
   WantedBy=multi-user.target
   
   ... and generate polls on cron using qctl tool.
   
 * For incoming modem calls(if mgetty) you'll need to set up mgetty like so:
   File: login.config:
   
       / FIDO / $USER $USER $BINDIR/qico -I <path to qico.conf>/qico.conf -a @

   where $ USER and $ BINDIR are values of those variables of CONFIG.
   mgetty has to be built with -DFIDO option (take a look into mgetty documentation).

 * Qico doesn't handle incoming IP sessions on itself, but you can register it in inetd
   or xinetd to accept incoming tcp/ip ifcico and (or) binkp connections.
   Following is the example of xinetd setup:
   
   File: /etc/services:
   
   ...
   binkp      24554/tcp
   ifcico     60179/tcp
   ...
   
   
   File: /etc/xinetd.d/binkp
   
   service binkp
   {
      flags             = REUSE
      socket_type       = stream
      wait              = no
      user              = <username>
      server            = /usr/local/sbin/qico
      server_args       = -I <path to qico.conf>/qico.conf -a binkp
      log_on_failure    += USERID
      disable           = no
   }
   
   service ifcico
   {
      flags             = REUSE
      socket_type       = stream
      wait              = no
      user              = <username>
      server            = /usr/local/sbin/qico
      server_args       = -I <path to qico.conf>/qico.conf -a auto
      log_on_failure    += USERID
      disable           = no
   } 
   
   Don't forget to start xinetd service.
   
 
 * Qcc.
   Qcc stangs for Qico Control Center. It's the tool you can use to control your
   running qico daemon, reread configs, create polls, manage the queue and so on.
   
   All hotkeys are case sensitive, brief summary can be accessed by pressing F1.
   For flag switches uppercase hotkey will set the flag and the lowercase will
   clear the corresponding flag.
   
   Address field will accept shortened addresses.
   Input line editor remembers the last 50 lines. Scroll over the history using arrow keys.

Notes
~~~~~
# Qico only Supports 4D BSO.

 #. REQ is the reason for the call. REQ +. FLO for ifcico.

 # qctl -f or f in qcc information will only mention nodelist, ignoring substs!

# If you have absolutely no sheets and they are not needed, you still have
   register at least one (though non-existent) and create an empty sheet
   index by running 'qico-n'.

 # If you want to reread configuration files, don't go "killall-HUP qico", because it
   will interrupt all running sessions. Do qctl -R instead.
   This also applies to "killall qico" / "qctl -q".

 # All the information used to check session conditions first obtained from nodelist and
   substs, and then from session EMSI.

# You can use ifextrp-pk (bundled) as freq processor. It is also possible to use any
  SRIF-compatible freq processor that is typically more functional.

 # "History" file is crated for quick and easy statistics generation (just awk should
 be enough). Simple stat generator is bundled with qico. History file format 
 (one line - one session):
   <line>, <time>, <length>, <address>, [P] [L] {I | O} {1 | 0}, <sent_bytes>, <recd_bytes>
   where <line> - terminal or tcpip for tcp / ip-sessions
       <time> and <length> - in seconds (unix time)
       P - protected, L - listed,
       I / O - inbound / outbound,
       1/0 - successful / failed


Download
~~~~~~~~
git clone https://github.com/uncleeugene/qico.git

Authors
~~~~~~~
Pavel Kurnosoff, 2:5030/736.25, [email protected], icq 45906870 (up to 0.45pl3.1)
Lev Serebryakov, 2:5030/661, [email protected], icq 3670018 (up to 0.49.9)
Cyril Margorin, 2:5020/2999.18, [email protected] (official branch)
Stepan Pologov, 2:467/126.125, [email protected] (current)
Mitry Matyushkov, 2:450/1024, r45c at mail dot ru (XE Maintainer)
Robert James Clay, 1:120/544, [email protected] (after 0.57.1)
ru.qico members made some contribution to this particular fork.



About

qico, an ftn compatible mailer

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 95.2%
  • M4 1.3%
  • Yacc 0.7%
  • CMake 0.6%
  • Lex 0.5%
  • Awk 0.5%
  • Other 1.2%