@node Call
@cindex call
@vindex calls
@unnumbered Call configuration

Call is a rule when and how node can be called by @command{@ref{nncp-caller}}.

Example list of call structures:

@verbatim
calls: [
    {
        cron: "*/1 * * * MON-FRI"
        onlinedeadline: 3600
        nice: PRIORITY+10

        autotoss: true
        autotoss-doseen: true
        autotoss-gen-ack: true
    }
    {
        cron: "30 * * * SAT,SUN"
        onlinedeadline: 1800
        maxonlinetime: 1750
        nice: NORMAL
        rxrate: 10
        txrate: 20
    }
    {
        cron: "0 * * * SAT,SUN"
        xx: rx
        addr: lan
    }
    {
        cron: "*/5 * * * * * *"
        when-tx-exists: true
        nock: true
        mcd-ignore: true
    }
]
@end verbatim

tells that on work days of the week call that node every minute,
disconnect after an hour of inactivity and process only relatively high
priority packets (presumably mail ones). So we connect and hold
connection for very long time to pass only emails. On weekends call that
node only each half-hour for processing high-priority packets. Also only
on weekends try to connect to that node every hour only using LAN
address and only receiving any (any priority) packets (assume that low
priority huge file transmission are done additionally via offline
connections).

It contains the following fields (only @emph{cron} is required):

@table @emph

@vindex cron
@item cron
@include cronexpr.texi

@vindex nice
@item nice
Optional. Use that @ref{Niceness, niceness} during the call (255 is used
otherwise).

@vindex xx
@vindex rx
@vindex tx
@item xx
Optional. Either @verb{|rx|} or @verb{|tx|}. Tells only to either to
receive or to transmit data during that call.

@vindex addr
@item addr
Optional. Call only that address, instead of trying all from
@ref{CfgAddrs, @emph{addrs}} configuration option. It can be either key
from @emph{addrs} dictionary, or an ordinary @option{addr:port}.

@item rxrate/txrate
Optional. Override @ref{CfgXxRate, @emph{rxrate/txrate}} configuration
option when calling.

@item onlinedeadline
Optional. Override @ref{CfgOnlineDeadline, @emph{onlinedeadline}}
configuration option when calling.

@item maxonlinetime
Optional. Override @ref{CfgMaxOnlineTime, @emph{maxonlinetime}}
configuration option when calling.

@vindex autotoss
@item autotoss, -doseen, -nofile, -nofreq, -noexec, -notrns, -noack, -gen-ack
Optionally enable auto tossing: run tosser on node's spool every second
during the call. You can control either are @file{seen/} files must be
created, or skip any kind of packet processing, or enable @ref{ACK}
packets generation.

@vindex when-tx-exists
@item when-tx-exists
Call only if packets for sending exists. The check of outbound packets
existence is performed @strong{every} time we are going to make a call,
but @emph{when-tx-exists} does not influence @emph{cron}. When
@emph{cron} configuration decides that it is time to make a call, with
@emph{when-tx-exists} option it checks packets existence first.

@vindex nock
@anchor{CfgNoCK}
@item nock
NoCK (no-checksumming) tells not to do checksumming of received files,
assuming that it will be done for example with
@command{@ref{nncp-check}} command later. That can help minimizing time
spent online, because HDD won't do simultaneous reading of the data for
checksumming and writing of the received one, but just sequential
writing of the file. Pay attention that you have to make a call to
remote node after checksumming is done, to send notification about
successful packet reception.

@vindex mcd-ignore
@anchor{CfgMCDIgnore}
@item mcd-ignore
Ignore @ref{MCD} announcements: do not add MCD addresses for possible
connection attempts.

@end table
