====== Network Configuration ======

User-facing policy and connectivity settings for each external messaging / telemetry network Synchronet integrates with. Each menu entry opens a sub-menu with the specific knobs for that network technology:

  * **[[#internet_e-mail|Internet E-mail]]** — outbound SMTP policy from the terminal-side mail menu. Server-side delivery lives separately under [[util:SCFG]] //Servers › Mail Server// ([[server:mail|wiki]]).
  * **[[#qwk_packet_networks|QWK Packet Networks]]** — this BBS as a QWK network node: the hubs you call and the default outgoing tagline.
  * **[[#fidonet_echomail_and_netmail|FidoNet EchoMail and NetMail]]** — addresses, semaphores, NetMail directory, and posting policy. The bundled [[module:binkit|BinkIT]] mailer and [[util:sbbsecho|SBBSecho]] tosser handle actual packet exchange.
  * **[[#mqtt|MQTT]]** — publish Synchronet status/log messages to an MQTT broker (and subscribe to control topics) for external monitoring and remote control.

  ╔═══════════════════════════════╗
  ║     Network Configuration     ║
  ╠═══════════════════════════════╣
  ║ │Internet E-mail              ║
  ║ │QWK Packet Networks          ║
  ║ │FidoNet EchoMail and NetMail ║
  ║ │MQTT                         ║
  ╚═══════════════════════════════╝

===== Internet E-mail =====
User-facing policy for outbound Internet (SMTP) e-mail sent by your BBS users from the terminal-side mail menu — who may send, what they may attach, what name they appear as, and what (if anything) it costs them. Server-side delivery (SMTP listener, SendMail thread, anti-SPAM) is configured separately under [[util:SCFG]] //Servers › Mail Server// and documented at [[server:mail|the Synchronet Mail Server page]].

  ╔══════════════════════════════════════════════════════════╗
  ║                      Internet E-mail                     ║
  ╠══════════════════════════════════════════════════════════╣
  ║ │System Address             mybbs.com                    ║
  ║ │Inbound E-mail Semaphore                                ║
  ║ │Outbound E-mail Semaphore                               ║
  ║ │Allow Sending of E-mail    Yes                          ║
  ║ │Allow File Attachments     No                           ║
  ║ │Send E-mail Using Alias    Yes                          ║
  ║ │Kill E-mail After Sent     No                           ║
  ║ │Cost to Send E-mail        0                            ║
  ╚══════════════════════════════════════════════════════════╝

^ Option Name                ^ Description ^
| System Address             | The Internet domain name used as the right-hand side of outbound e-mail addresses (e.g. ''user@mybbs.com''). |
| Inbound E-mail Semaphore   | Path to a file Synchronet creates after receiving inbound Internet e-mail (used to trigger external delivery / processing). |
| Outbound E-mail Semaphore  | Path to a file Synchronet creates when there is new outbound Internet e-mail pending (used to trigger an external SMTP-out program if not relying on the built-in mail server). |
| Allow Sending of E-mail    | Allow users to send Internet e-mail at all. |
| Allow File Attachments     | Allow users to attach files to outbound Internet e-mail. |
| Send E-mail Using Alias    | Use the user's [[access:|alias]] (rather than real name) in the //From// header. |
| Kill E-mail After Sent     | Delete sent messages from the user's outbox after delivery, rather than retaining a copy. |
| Cost to Send E-mail        | [[access:credits|Credits]] charged per outbound Internet e-mail (0 = free). |

===== QWK Packet Networks =====
From this menu you can configure the default tagline to use for       
outgoing messages on QWK networked sub-boards, or you can select      
Network Hubs... to add, delete, or configure QWK hubs that your system
calls to exchange packets with.

This menu configures your BBS as a QWK network **node** (a system that
calls hubs). To run your BBS as a QWK network **hub** instead — so other
systems can call //you// to exchange packets — see [[howto:qwk-network-hub]].

  ╔═════════════════════╗
  ║ QWK Packet Networks ║
  ╠═════════════════════╣
  ║ │Network Hubs...    ║
  ║ │Default Tagline    ║
  ╚═════════════════════╝

==== QWK Network Hub ====

This menu allows you to configure options specific to this QWKnet hub.  

  ╔════════════════════════════════════════════════════════════════════╗
  ║                        VERT QWK Network Hub                        ║
  ╠════════════════════════════════════════════════════════════════════╣
  ║ │Hub System ID              VERT                                   ║
  ║ │Enabled                    No                                     ║
  ║ │Archive Format             ZIP                                    ║
  ║ │Call-out Command Line      *qnet-ftp %s dove.synchro.net YOURPASS ║
  ║ │Native Call-out Command    No                                     ║
  ║ │Call-out Node              1                                      ║
  ║ │Call-out Days              All                                    ║
  ║ │Call-out Frequency         4 times a day                          ║
  ║ │Include Kludge Lines       No                                     ║
  ║ │Include VOTING.DAT File    Yes                                    ║
  ║ │Include HEADERS.DAT File   Yes                                    ║
  ║ │Include UTF-8 Characters   Yes                                    ║
  ║ │Include MIME-encoded Text  No                                     ║
  ║ │Word-wrap Exported Messages No                                    ║
  ║ │Extended (QWKE) Packets    No                                     ║
  ║ │Exported Ctrl-A Codes      Leave in                               ║
  ║ │Advanced Options...                                               ║
  ║ │Import Conferences...                                             ║
  ║ │Networked Sub-boards...                                           ║
  ╚════════════════════════════════════════════════════════════════════╝
                                                                        
The Hub System ID must match the QWK System ID of this network hub.     
                                                                        
The Archive Format should be set to an archive/compression format       
that the hub will expect your REP packets to be submitted with          
(typically, ZIP).                                                       
                                                                        
The Call-out Command Line is executed when your system attempts a packet
exchange with the QWKnet hub (e.g. executes a script).                  
                                                                        
Toggle Native Call-out Command to Yes if your Call-out Command-line     
is invoking a native (not a 16-bit DOS) program or script.              
                                                                        
Kludge Lines (e.g. @TZ, @VIA, @MSGID, @REPLY) provide information not   
available in standard QWK message headers, but are superfluous when the 
HEADERS.DAT file is supported and used.                                 

The VOTING.DAT file is the distributed QWKnet voting system supported  
in Synchronet v3.17 and later                                          
                                                                       
The HEADERS.DAT file provides all the same information that can be     
found in Kludge Lines and also addresses the 25-character QWK field    
length limits. HEADERS.DAT is supported in Synchronet v3.15 and later. 
                                                                       
Synchronet v3.18 and later supports UTF-8 encoded messages within QWK
packets. If the hub is using Synchronet v3.18 or later, set this option
to Yes. This option also changes the QWK new-line sequence to the ASCII
LF (10) character instead of the traditional QWK newline byte (227).

Include MIME-encoded Text exports message bodies as MIME-encoded
content. Generally only useful when the hub expects MIME-formatted
QWK messages.

Word-wrap Exported Messages applies word-wrapping to exported message
text before packing.

Extended (QWKE) Packets are not normally used in QWK Networking.
Setting this to Yes enables some QWKE-specific Kludge Lines that are
superfluous when the HEADERS.DAT file is supported and used.

Exported Ctrl-A Codes determines how Synchronet attribute/color          
codes in messages are exported into the QWK network packets. This        
may be set to Leave in (retain), Expand (to ANSI), or Strip (remove).    
This setting is used for QWKnet NetMail messages and may over-ride the   
equivalent setting for each sub-board.                                   
                                                                         
Import Conferences... allows you to import a QWK control.dat file which  
can both create new sub-boards in a target message group of your choice  
and set the Networked Sub-boards with QWK conference numbers correlating 
with the hub system.                                                     
                                                                         
Networked Sub-boards... allows you to manually add, remove, or modify
local sub-board associations with conferences on this QWK network hub.

==== QWK Hub Advanced Options ====

The Advanced Options sub-menu of a QWK hub configures the archive command lines used when the built-in [[http://libarchive.org/|libarchive]] cannot handle the //Archive Format// (rare in modern setups):

  ╔══════════════════════════════════════════════════════════╗
  ║                  QWK Hub Advanced Options                ║
  ╠══════════════════════════════════════════════════════════╣
  ║ │Pack Command Line                                       ║
  ║ │Unpack Command Line                                     ║
  ╚══════════════════════════════════════════════════════════╝

^ Option Name        ^ Description ^
| Pack Command Line  | External pack/compress command for outbound REP packets, when not using libarchive's built-in support. See [[config:cmdline|Command Lines]] for the available specifiers. |
| Unpack Command Line | External unpack/extract command for inbound QWK packets, when not using libarchive. |

For ZIP, 7z, and tarball formats supported by libarchive, leave both blank — Synchronet will pack/unpack in-process.

===== FidoNet EchoMail and NetMail =====
Configuration for [[network:fidonet|FidoNet]]-style networks: //NetMail// (private messages between users on different systems) and //EchoMail// (sub-board posts replicated across systems). Synchronet handles the message-base side; the bundled [[module:binkit|BinkIT]] mailer and [[util:sbbsecho|SBBSecho]] tosser ferry packets to and from neighbor systems. Per-sub-board EchoMail settings live under [[config:message_areas|Message Areas]].

  ╔══════════════════════════════════════════════════════════════════╗
  ║                   FidoNet EchoMail and NetMail                   ║
  ╠══════════════════════════════════════════════════════════════════╣
  ║ │System Addresses                                                ║
  ║ │Default Origin Line                                             ║
  ║ │NetMail Semaphore                %jfidoout.now                  ║
  ║ │EchoMail Semaphore               %jfidoout.now                  ║
  ║ │NetMail Directory                ../fido/netmail/               ║
  ║ │Allow Sending of NetMail         No                             ║
  ║ │Allow File Attachments           Yes                            ║
  ║ │Send NetMail Using Alias         No                             ║
  ║ │NetMail Defaults to Crash        No                             ║
  ║ │NetMail Defaults to Direct       No                             ║
  ║ │NetMail Defaults to Hold         No                             ║
  ║ │Kill NetMail After Sent          Yes                            ║
  ║ │Cost to Send NetMail             0                              ║
  ║ │Choose NetMail Source Address    No                             ║
  ╚══════════════════════════════════════════════════════════════════╝

^ Option Name                  ^ Description ^
| System Addresses             | List of FidoNet (or other FTN) addresses by which this BBS is known. The first address is the //primary// address; additional addresses are typically AKAs (alternate addresses, e.g. for joining secondary FTNs). Edit via the sub-menu. |
| Default Origin Line          | Default //Origin// line appended to outbound EchoMail. Per-sub-board overrides are configured under [[config:message_areas#sub-board_network_options|Sub-board Network Options]]. |
| NetMail Semaphore            | Path to a file Synchronet creates when there is outbound NetMail pending (signals the mailer to make a session). |
| EchoMail Semaphore           | Path to a file Synchronet creates when there is outbound EchoMail pending. Often the same file as NetMail Semaphore. Common values use ''[[config:cmdline|command-line specifiers]]'' like ''%j'' (= [[dir:data]]). |
| NetMail Directory            | On-disk directory where outbound NetMail messages are stored as ''*.MSG'' files for the front-end mailer to pick up. |
| Allow Sending of NetMail     | Allow users to send NetMail at all. |
| Allow File Attachments       | Allow users to attach files to outbound NetMail. |
| Send NetMail Using Alias     | Use the user's [[access:|alias]] (rather than real name) in the //From// field. |
| NetMail Defaults to Crash    | New NetMail defaults to //Crash// flag (immediate, high-priority delivery). |
| NetMail Defaults to Direct   | New NetMail defaults to //Direct// flag (no routing through hubs; goes directly to destination). |
| NetMail Defaults to Hold     | New NetMail defaults to //Hold// flag (held until destination polls in). |
| Kill NetMail After Sent      | Delete sent NetMail from user's outbox after delivery. |
| Cost to Send NetMail         | [[access:credits|Credits]] charged per outbound NetMail (0 = free). |
| Choose NetMail Source Address | //Only shown when more than one System Address is configured.// If ''Yes'', the user is prompted to choose which of the system addresses to send from. If ''No'', the primary address is used. |

===== MQTT =====

Synchronet can publish status and log messages to an MQTT Broker       
for monitoring by MQTT clients. Synchronet will also subscribe to      
topics that may be used to control Synchronet servers and nodes from   
MQTT clients.                                                          
                                                                       
For the MQTT Topic Naming and Payload Schemes used by Synchronet, see: [[ref:mqtt]]
                                                                       
Note: An MQTT Broker is sometimes referred to as an MQTT Server.       

  ╔══════════════════════════════════════╗
  ║   Message Queue Telemetry Transport  ║
  ╠══════════════════════════════════════╣
  ║ │Enabled             No              ║
  ║ │Broker Address      192.168.1.1     ║
  ║ │Broker Port         1883            ║
  ║ │Keep-alive          60 seconds      ║
  ║ │Publish Verbosity   High            ║
  ║ │Publish QOS         0: At most once ║
  ║ │Subscribe QOS       2: Exactly once ║
  ║ │Log Level           Informational   ║
  ║ │TLS (encryption)    Off             ║
  ║ │Username                            ║
  ║ │Password                            ║
  ║ │Protocol Version    3.1.1           ║
  ╚══════════════════════════════════════╝

^ Option Name        ^ Description ^
| Enabled            | Master switch for the MQTT integration. |
| Broker Address     | Hostname or IP address of the MQTT broker (sometimes called //MQTT Server//). |
| Broker Port        | TCP port the broker is listening on. Default ''1883'' (plain) / ''8883'' (TLS). |
| Keep-alive         | MQTT KEEPALIVE interval in seconds. The client sends a PINGREQ if no other traffic happens within this interval. |
| Publish Verbosity  | ''Low'' = essential events only; ''High'' = also publish detailed activity (logon/logoff, message events, etc.). |
| Publish QOS        | MQTT Quality of Service level for messages **published** by Synchronet. ''0'' = at most once, ''1'' = at least once, ''2'' = exactly once. |
| Subscribe QOS      | QOS level requested when Synchronet **subscribes** to control topics. |
| Log Level          | Minimum log severity to publish (Debug / Informational / Warning / Error / Critical). |
| TLS (encryption)   | TLS mode: ''Off'', ''Pre-shared Key'' (PSK), or ''Certificate''. Reveals additional fields when set. |
| Username           | MQTT username for broker authentication. |
| Password           | MQTT password for broker authentication. |
| Protocol Version   | MQTT protocol version: ''3.1'', ''3.1.1'', or ''5.0''. |

When TLS is set to **Certificate**, additional fields appear: ''CA Cert'', ''Client Cert'', ''Key File'', ''Key File Password''. When TLS is set to **Pre-shared Key**, ''Key'' and ''Identity'' fields appear.

For the topics published / subscribed, see [[ref:mqtt|MQTT topic and payload reference]].

===== See Also =====
  * [[:config:|config index]]

{{tag>network fido qwk mqtt email}}
