From 14095d8f036eebdf73f8da1a83b78fc17a4dee90 Mon Sep 17 00:00:00 2001 From: Bryan Ashby Date: Mon, 12 Nov 2018 11:30:52 -0700 Subject: [PATCH] Updates RE message networks --- docs/messageareas/message-networks.md | 105 +++++++++++++++++++------- misc/config_template.in.hjson | 11 +++ 2 files changed, 87 insertions(+), 29 deletions(-) diff --git a/docs/messageareas/message-networks.md b/docs/messageareas/message-networks.md index a334ab94..fec31a08 100644 --- a/docs/messageareas/message-networks.md +++ b/docs/messageareas/message-networks.md @@ -2,29 +2,33 @@ layout: page title: Message Networks --- -Configuring message networks in ENiGMA½ requires three specific pieces of config - the network and your -assigned address on it, the message areas (echos) of the network you wish to map to ENiGMA½ message areas, -then the schedule and routes to send mail packets on the network. +ENiGMA½ considers all non-ENiGMA½, non-local messages (and their networks, such as FTN "external". That is, messages are only imported and exported from/to such a networks. Configuring such external message networks in ENiGMA½ requires three sections in your `config.hjson`. + +1. `messageNetworks..networks`: declares available networks. +2. `messageNetworks..areas`: establishes local area mappings and per-area specifics. +3. `scannerTossers.`: general configuration for the scanner/tosser (import/export). This is also where we configure per-node settings. ## FTN Networks - -FTN networks are configured under the `messageNetworks::ftn` section of `config.hjson`. +FidoNet and FidoNet style (FTN) networks as well as a FTN/BSO scanner/tosser (`ftn_bso` module) are configured via the `messageNetworks.ftn` and `scannerTossers.ftn_bso` blocks in `config.hjson`. -The `networks` section contains a sub section for each network you wish you join your board to. -Each entry's key name is referenced elsewhere in `config.hjson` for FTN oriented configurations. +:information_source: ENiGMA½'s `ftn_bso` module is not a mailer and **makes no attempts** to perfrom packet transport! An external utility such as Binkd is required for this -### Example Configuration +### Networks +The `networks` block a per-network configuration where each entry's key may be referenced elswhere in `config.hjson`. +Example: the following example declares two networks: `agoranet` and `fsxnet`: ```hjson { messageNetworks: { ftn: { networks: { - agoranet: { - localAddress: "46:3/102" + araknet: { + defaultZone: 10 + localAddress: "10:101/9" } - fsxnet: { - localAddress: "21:4/333" + fsxnet: { + defaultZone: 21 + localAddress: "21:1/121" } } } @@ -32,36 +36,79 @@ Each entry's key name is referenced elsewhere in `config.hjson` for FTN oriented } ``` -## Message Areas +### Areas +The `areas` section describes a mapping of local **area tags** configured in your `messageConferences` (see [Configuring a Message Area](configuring-a-message-area.md)) to a message network (described above), a FTN specific area tag, and remote uplink address(s). This section can be thought of similar to the *AREAS.BBS* file used by other BBS packages. -The `areas` section describes a mapping of local **area tags** configured in your `messageConferences` (see -[Configuring a Message Area](configuring-a-message-area.md)) to a message network (described -above), a FTN specific area tag, and remote uplink address(s). - -This section can be thought of similar to the *AREAS.BBS* file used by other BBS packages. - -When ENiGMA½ imports messages, they will be placed in the local area that matches key under `areas`. +When ENiGMA½ imports messages, they will be placed in the local area that matches key under `areas` while exported messages will be sent to the relevant `network`. | Config Item | Required | Description | |-------------|----------|----------------------------------------------------------| -| `network` | :+1: | Associated network from the `networks` section above | -| `tag` | :+1: | FTN area tag | -| `uplinks` | :+1: | An array of FTN address uplink(s) for this network | - -### Example Configuration +| `network` | :+1: | Associated network from the `networks` section above | +| `tag` | :+1: | FTN area tag (ie: `FSX_GEN`) | +| `uplinks` | :+1: | An array of FTN address uplink(s) for this network | +Example: ```hjson { messageNetworks: { ftn: { areas: { - agoranet_bbs: { // tag found within messageConferences - network: agoranet - tag: AGN_BBS - uplinks: "46:1/100" + fsx_general: // *local* tag found within messageConferences + network: fsxnet // that we are mapping to this network + tag: FSX_GEN // ...and this remote FTN-specific tag + uplinks: [ "21:1/100" ] // a single string also allowed here } } } } } ``` + +### FTN/BSO Scanner Tosser + +| Config Item | Required | Description | +|-------------|----------|----------------------------------------------------------| +| `schedule` | :+1: | Sets `import` and `export` schedules. [Later style text parsing](https://bunkat.github.io/later/parsers.html#text) supported. `import` also can utilize a `@watch:` syntax while `export` additionally supports `@immediate`. | +| `packetMsgEncoding` | :-1: | Override default `utf8` encoding. +| `defaultNetwork` | :-1: | Explicitly set default network (by tag in `messageNetworks.ftn.networks`). If not set, the first found is used. | +| `nodes` | :+1: | Per-node settings. Entries (keys) here support wildcards for a portion of the FTN-style address (e.g.: `21:1/*`). `archiveType` may be set to a FTN supported archive extention that the system supports (TODO); if unset, only .PKT files are produced. `encoding` may be set to override `packetMsgEncoding` on a per-node basis. If the node requires a packet password, set `packetPassword` | + +Example: +```hjson +scannerTossers: { + ftn_bso: { + schedule: { + // Check every 30m, or whenever the "toss!.now" file is touched (ie: by Binkd) + import: every 30 minutes or @watch:/enigma-bbs/mail/ftn_in/toss!.now + + // Export immediately, but also check every 15m to be sure + export: every 15 minutes or @immediate + } + + // Override default FTN/BSO packet encoding. Defaults to 'utf8' + packetMsgEncoding: utf8 + + defaultNetwork: fsxnet + + nodes: { + "21:1/100" : { // May also contain wildcards, ie: "21:1/*" + archiveType: ZIP // By-ext archive type: ZIP, ARJ, ..., optional. + encoding: utf8 // Encoding for exported messages + packetPassword: MUHPA55 // FTN .PKT password, optional + + tic: { + // See TIC docs + } + } + } + + netMail: { + // See NetMail docs + } + + ticAreas: { + // See TIC docs + } + } +} +``` \ No newline at end of file diff --git a/misc/config_template.in.hjson b/misc/config_template.in.hjson index e24b4e92..296e7826 100644 --- a/misc/config_template.in.hjson +++ b/misc/config_template.in.hjson @@ -262,6 +262,17 @@ } } + // Configuration block for scanner/tosser modules + scannerTossers: { + // The most popular being FTN/BSO style networks + ftn_bso: { + // + // When you're ready to hook up to FTN networks, please + // see the documentation on message networks. + // + } + } + // // ENiGMA½ comes with a very powerful File Base, but may be a bit strange // until you get used to it. Please see the documentation!