enigma-bbs/docs/messageareas/message-networks.md

4.7 KiB
Raw Blame History

layout title
page Message Networks

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.<networkType>.networks: declares available networks.
  2. messageNetworks.<networkType>.areas: establishes local area mappings and per-area specifics.
  3. scannerTossers.<name>: general configuration for the scanner/tosser (import/export). This is also where we configure per-node settings.

FTN Networks

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.

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

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:

{
  messageNetworks: {
    ftn: {
      networks: {
        araknet: {
          defaultZone: 10
          localAddress: "10:101/9"
        }
        fsxnet: {
          defaultZone: 21
          localAddress: "21:1/121"
        }
      }
    }
  }
}

Areas

The areas section describes a mapping of local area tags configured in your messageConferences (see Configuring a Message Area) 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 while exported messages will be sent to the relevant network.

Config Item Required Description
network 👍 Associated network from the networks section above
tag 👍 FTN area tag (ie: FSX_GEN)
uplinks 👍 An array of FTN address uplink(s) for this network

Example:

{
  messageNetworks: {
    ftn: {
      areas: {
        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 👍 Sets import and export schedules. Later style text parsing supported. import also can utilize a @watch:<path/to/file> syntax while export additionally supports @immediate.
packetMsgEncoding 👎 Override default utf8 encoding.
defaultNetwork 👎 Explicitly set default network (by tag in messageNetworks.ftn.networks). If not set, the first found is used.
nodes 👍 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:

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
    }
  }
}