Table of Contents

BinkIT - FidoNet Mailer

BinkIT is a simple BinkP BSO/FLO-style FidoNet Mailer, written for Synchronet in JavaScript (by Deuce). BinkIT may be used in place of BinkD or any other FidoNet mailer.

Features

Install

If you've already configured SBBSecho v3, you may perform an automated install of BinkIT from a command prompt by running “exec/jsexec binkit install”.

This will update the ctrl/sbbsecho.ini file for you and setup the necessary Timed Events in SCFG, but you may need to edit the session passwords in sbbsecho.ini to match those expected by your links.

If your network links are not in FidoNet (i.e. reachable via the binkp.net domain), you may need to specify a NodeList for that domain or specify Host values for those linked nodes.

Upgrade to BinkIT v2

If you've already setup BinkIT 1.x (e.g. using binkit.ini), after updating your exec/*.js and load/*.js files to the latest (including binkit.js v2.x), you'll need to migrate your binkit.ini and ftn_domains.ini settings in sbbsecho.ini. This can be done automatically by running “exec/jsexec binkit upgrade”.

If you wish to perform the merge by hand, here are the changes:

Old binkit.ini key New sbbsecho.ini key
root Capabilities [BinkP] Capabilities
root Sysop [BinkP] Sysop
[address] Password [node:address] SessionPwd
[address] Host [node:address] BinkpHost
[address] Port [node:address] BinkpPort
[address] Poll [node:address] BinkpPoll
[address] AllowPlainPassword [node:address] BinkpAllowPlainAuth
[address] AllowUnencrypted [node:address] BinkpAllowPlainText
[address] SourceAddress [node:address] BinkpSourceAddress

The domain sections keys are unchanged, but the domain sections now require a domain: prefix:

Old ftn_domains.ini section New sbbsecho.ini section
[name] [domain:name]

Once the upgrade is complete, all of the BinkIT and SBBSecho configuration parameters can then be viewed and modified using the EchoCfg utility.

Manual Setup

BinkIT should be configured both as a service and as Timed Events in SCFG.

Service

Add the service in ctrl/services.ini:

[BINKP]
Port=24554
Command=binkit.js

Add 2 Timed Events in SCFG->External Programs->Timed Events:

BINKOUT

╔════════════════════════════════════════════════════════════════════╗
║                         BINKOUT Timed Event                        ║
╠════════════════════════════════════════════════════════════════════╣
║ │Internal Code                   BINKOUT                           ║
║ │Start-up Directory                                                ║
║ │Command Line                    ?binkit                           ║
║ │Enabled                         Yes                               ║
║ │Execution Node                  1                                 ║
║ │Execution Months                Any                               ║
║ │Execution Days of Month         Any                               ║
║ │Execution Days of Week          All                               ║
║ │Execution Time                  00:00                             ║
║ │Requires Exclusive Execution    No                                ║
║ │Force Users Off-line For Event  No                                ║
║ │Native Executable               No                                ║
║ │Use Shell to Execute            No                                ║
║ │Background Execution            No                                ║
║ │Always Run After Init/Re-init   No                                ║
╚════════════════════════════════════════════════════════════════════╝

To have the BINKOUT event triggered automatically upon any outgoing FTN-mail, set the OutgoingSemaphore key in your ctrl/sbbsecho.ini file to ../data/binkout.now (requires SBBSecho v3.02 or later).

BINKPOLL

╔════════════════════════════════════════════════════════════════════╗
║                        BINKPOLL Timed Event                        ║
╠════════════════════════════════════════════════════════════════════╣
║ │Internal Code                   BINKPOLL                          ║
║ │Start-up Directory                                                ║
║ │Command Line                    ?binkit -p                        ║
║ │Enabled                         Yes                               ║
║ │Execution Node                  1                                 ║
║ │Execution Months                Any                               ║
║ │Execution Days of Month         Any                               ║
║ │Execution Days of Week          All                               ║
║ │Execution Frequency             24 times a day                    ║
║ │Requires Exclusive Execution    No                                ║
║ │Force Users Off-line For Event  No                                ║
║ │Native Executable               No                                ║
║ │Use Shell to Execute            No                                ║
║ │Background Execution            No                                ║
║ │Always Run After Init/Re-init   No                                ║
╚════════════════════════════════════════════════════════════════════╝

The execution interval determines the polling frequency.

Command-line options

The following options may be specified on the command-line:

sbbsecho.ini

The ctrl/sbbsecho.ini file holds the configuration settings of BinkIT.

BinkP Options

In the [BinkP] section of sbbsecho.ini:

Each link should be specified as [node:<address>] section with the full 5D address (e.g.: “node:1:103/17@fidonet”) as the section name.

The following are all optional and allowed per node section:

Note:
For compatibility with links using the BinkP implementation in Mystic BBS version 1.12A39, you must set BinkpAllowPlainText=true.

Note:
For more details on the BinkP session-security related settings, see the documentation for sbbsecho.ini -> Node Sections.

Example sbbsecho.ini

[BinkP]
Sysop=Henry Samueli
 
[node:1:218/700@fidonet]
SessionPwd=TopSecret
BinkpPoll=yes
 
[node:1:2320/100@fidonet]
BinkpHost=livewirebbs.com
 
[node:10:1/1@othernet]
BinkpHost=coolbbs.example.com
BinkpPort=24556
SessionPwd=MaxSecret
BinkpPoll=yes

In the above example, 1:218/700 is a node you want to poll. If you create a second binkit event and add the -p (small p) option it will scan the outbound directories, send outbound mail and poll nodes that have Poll=yes option set. In this case 1:218/700@fidonet and 10:1/1@othernet will be polled and any new inbound mail will be picked up and outbound mail will be delivered. 1:2320/100@fidonet will not be polled, though if there is pending outbound, it will be sent.

In the case of 1:2320/100, let's say you have a need to route netmail to this node. In this case there is no automated polling to this node and anything that needs to be sent to this node via crash will be sent to livewirebbs.com with no password. If there is a nodelist, the port number will be used from the nodelist. In this example, the hostname is being overridden, so it won't use the nodelist or DNS to connect.

The network “othernet” will also be polled. In this case it will call out on port 24556 and the outbound root has been specified in the config. You can specify a domain wide outbound root in your sbbsecho.ini. It should be noted that [domain:othernet] should be defined in sbbsecho.ini with either a NodeList or DNSSuffix value.

If you check your outbound directory, do not be surprised if you see other outbound directories with extensions after them. For instance outbound.zyx.

Other Configuration

SCFG

The first listed FTN address (in scfg->Networks->FidoNet->System Addresses) is used as the default address, and it's zone is used as the default zone. All addresses configured in SCFG are used for the M_ADR command to the remote.

sbbsecho.ini

BinkIT reads the ctrl/sbbsecho.ini file, possibly using the following pieces of information:

freqit.ini

BinkIT integrates FreqIT functionality, so the freqit.ini file is used.

binkstats.ini

Not technically a configuration file, the data/binkstats.ini file contains cumulative statistics about all inbound and outbound BinkP connections made by BinkIT.

Domains

The domain: sections in sbbsecho.ini are used for 5D support in BinkIT. Each domain: section defines an FTN domain. If no domains are specified, zones 1-6 are set to 'fidonet' with a DNSSuffix of 'binkp.net'.

Each domain section can have the following keys:

Example Domains

[domain:fidonet]
Zones=1,2,3,4,5,6
OutboundRoot=/sbbs/fido/outbound/
DNSSuffix=binkp.net
 
[domain:othernet]
Zones=10
NodeList=/sbbs/fido/OTHERNET.234

Errors

Callout to 3:330/1@fidonet started.
Connection to f1.n330.z3.binkp.net:24554 failed.

This error means that the linked node (3:330/1@fidonet in the example) is not DNS-resolvable. You'll need to use a nodelist for the fidonet domain or a “BinkpHost” value for that node (with the IP address or host name of the node) in your sbbsecho.ini file.

Sent M_ERR command args: Encryption required

This error means that the remote/peer doesn't support encryption and encryption is required. To loosen this requirement and allow a plain-text/un-encrypted session with this link, set BinkpAllowPlainText=true for that linked node in your sbbsecho.ini file.

See Also