# Polls

Polls are configuring by dialogue box Config/Polls. The box contains three tabs.

## Periodical

Argus has an ability to create polls automatically, using Cron-periods. Polls created with cron are identical to polls, created by Outbound, and are disposed after a successful outgoing session with poll destination node.

If a periodical polls appeared when a poll to specified destination node already exists, all counters (Busy / No Carrier / No Answer) of this poll are zeroed.

See also Poll Manager.

## Options

The values of Busy, No c. and Fail fields are used as maximal values of poll counters, when reached, the poll is set to Stand-off (Idle) mode.

Retry Seconds field sets the number of seconds to wait before making next poll. The actual time length of Retry and Stand-off intervals is a random value within 0.5*n .. 1.5*n, or saying in other words, +-50%. For example, when Retry Seconds value is set to 100, the polls would be repeated with a random interval from 50 to 150 seconds. The tolerance interval of 50% is used to make polling more efficient - from the probability point of view.

Transmit hold on outgoing allows hold-flavoured bundles to be transmitted to remote during an outgoing connection.

The resume is that maximal values of poll counters are configuring here. When the value is reached, the poll falls asleep on “Stand-Off minutes”, else the poll would be redialled again after at least “Retry seconds”. Transmit Hold on outgoing defines whether hold-attaches would be transferred on outgoing sessions or not.

## External

External polls allow executing an external application instead of polling nodes, specified in Address list (you may use address masks and Regular Expressions here) field of the dialogue. Application string format is the same as in Config/Externals/Doors or Config/Dial-up/Modems/External Fax Receiver, i.e. all Handshake Switches are applied and new introduced (as well as environment variables):

    %w
    ARGUS_NODE
| External poll's node address, eg "2:469/38"
    %x
    ARGUS_STATION
| Station name from nodelist, if applies
    %v
    ARGUS_LOCATION
| Site location from nodelist, if applies
    %X
    ARGUS_SYSOP
| Sysop's name from nodelist, if applies
    %y
    ARGUS_PHONE
| Phone number or IP address from nodelist or overrides
    %Y
    ARGUS_FLAGS
| Node flags from nodelist or overrides
    %W
    ARGUS_SPEED
| Node speed from nodelist, if applies

Options' format is:

    OkRange BusyRange NoCRange FailRange TimeoutMinutes TimeoutExitCode

It is possible to use enumerations and intervals in Ranges, (like as in cron). eg "1,3,9-15". They also can be skipped by "." (point) character. If none of values matches, the poll is considered to be completed OK. E.g., options field "`0 1 2,5-7 3,4 10 8`" means that an external poll is OK when the application returns exit code 0, busy on exit code=1, no connect on 2,5,6,7 and fail on 3,4. "10" means than the application would be terminated after 10 minutes of its execution, if it would not exit by itself. If the application was terminated by time-out, its exit code is set to `TimeoutExitCode`, i.e. 8 in the example above. The default value of `TimeoutExitCode` (if missed) is 1. If `TimeoutMinutes` value missed, the application would only exit by itself (if it would).