====== BinkIT - FidoNet Mailer ======
BinkIT is a simple BinkP BSO/FLO-style FidoNet [[ref:fidonet_glossary#Mailer]], written for Synchronet in JavaScript (by [[person:Deuce]]). BinkIT may be used in place of BinkD or any other [[resource:FidoNet mailer]].
===== Features ====
* BinkP 1.1 support (except for the undocumented No Dupes mode)
* Supports operation over TLS (binkps) for both inbound and outbound sessions
* Supports BinkD compatible encryption
* Supports secure CRAM-MD5 authentication
* Full 5D address support
* Creates semaphore files for TIC (tickit.now) and Fido (fidoin.now) events automatically
* FREQIT integration for file requests from subs
* Nodelist support, can read the hostname and port number from a nodelist
===== Install =====
If you've already configured [[util:SBBSecho]] v3, you may perform an automated install of BinkIT from a command prompt by running "''[[dir:exec]]/[[util:jsexec]] binkit install''".
This will update the ''[[dir:ctrl]]/[[config:sbbsecho.ini]]'' file for you and setup the necessary Timed Events in [[util: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 ''[[dir:exec]]/*.js'' and ''[[dir: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 "''[[dir:exec]]/[[util: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 [[util:SBBSecho]] configuration parameters can then be viewed and modified using the [[util:EchoCfg]] utility.
===== Manual Setup =====
BinkIT should be configured both as a **[[:service:]]** and as **Timed Events** in [[util:SCFG]].
==== Service ====
Add the service in ''[[dir:ctrl]]/[[config:services.ini]]'':
[BINKP]
Port=24554
Command=binkit.js
Add 2 Timed Events in [[util:SCFG]]->External Programs->Timed Events:
==== BINKOUT ====
[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 ''[[config: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 [[util: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:
* Outbound path (''Outbound'' key)
* Secure Inbound path (''SecureInbound'' key)
* Insecure Inbound path (''Inbound'' key)
* Mailer type (''BinkleyStyleOutbound''). BinkIT will exit with an error if this is not set.
* Packer configuration (''SigOffset'', ''Sig'', ''Pack'', and ''Unpack'' keys in a ''archive:*'' sections).
==== freqit.ini ====
BinkIT integrates [[FreqIT]] functionality, so the ''freqit.ini'' file is used.
==== binkstats.ini ====
Not technically a configuration file, the ''[[dir: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:
* ''Zones'' a comma-separated list of zones present in this domain. When only a single domain lists a specific zone, that domain is used as the "default domain" for that zone.
* ''DNSSuffix'' used for DNS nodelist lookups. If this file doesn't exist, ''binkp.net'' is used for the fidonet domain.
* ''OutboundRoot'' the root path for this domain, used for constructing outbound directories for this domain.
* ''NodeList'' Full path to a nodelist file to use for this domain.
=== 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 =====