Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
util:sexpots [2012/03/13 02:16] – [Notes on Advanced Features] Fix formatting. digitalmanutil:sexpots [2024/06/09 21:37] (current) – [Modem Settings] Note about the factory defaults digital man
Line 5: Line 5:
 ===== Overview ===== ===== Overview =====
  
-Synchronet BBS Software version 3 was designed for client connections over TCP/IP protocols only (predominently, Telnet). Over the 7 years since Synchronet v3's release, I've received occasional (but persistent) inquiries about the possibility or likelihood of adding modem support back into Synchronet to support direct analog dial-up users of the old BBS days before the Internet/broadband boom.+Synchronet BBS Software version 3 was designed for client connections over TCP/IP protocols only (predominantly, Telnet). Over the 7 years since Synchronet v3's release, I've received occasional (but persistent) inquiries about the possibility or likelihood of adding modem support back into Synchronet to support direct analog dial-up users of the old BBS days before the Internet/broadband boom.
  
-I've resisted this idea (for a few significant reasons I won't go into here), and have instead, suggested alternative methods of supporting dial-up users (e.g. running Synchronet v2.3 for DOS concurrently with v3, using *getty on Linux/Unix, using Manning's Dialup-to-Telnet Win32 gateway program with a front-end application, etc.). But these solutions all seemed insufficient in some ways or excessively complex or inconvenient. I wanted to provide something easier, more seemless.... "nicer". Though I'm pretty sure there isn't much demand for dial-up BBSes today (30Kbps!), there has been enough interest from sysops to at least justify some effort (in my mind) to attempt to relive the BBS days of old, using actual *gasp* modems!+I've resisted this idea (for a few significant reasons I won't go into here), and have instead, suggested alternative methods of supporting dial-up users (e.g. running Synchronet v2.3 for DOS concurrently with v3, using *getty on Linux/Unix, using Manning's Dialup-to-Telnet Win32 gateway program with a front-end application, etc.). But these solutions all seemed insufficient in some ways or excessively complex or inconvenient. I wanted to provide something easier, more seamless.... "nicer". Though I'm pretty sure there isn't much demand for dial-up BBSes today (30Kbps!), there has been enough interest from sysops to at least justify some effort (in my mind) to attempt to relive the BBS days of old, using actual *gasp* modems!
  
 I knew exactly what was required to write a Serial<->TCP tunneling program and blogged on the www.synchro.net web-site way back in 2002 that I planned on writing just such a program to give dial-up capabilities to Synchronet v3 Win32 sysops. I knew exactly what was required to write a Serial<->TCP tunneling program and blogged on the www.synchro.net web-site way back in 2002 that I planned on writing just such a program to give dial-up capabilities to Synchronet v3 Win32 sysops.
Line 33: Line 33:
 SEXPOTS is freeware, licensed under the GNU General Public License ([[http://www.fsf.org/licensing/licenses/gpl.txt|GPL]]) with portions licensed under the GNU Lesser General Public License ([[http://www.fsf.org/licensing/licenses/lgpl.txt|LGPL]]). SEXPOTS is freeware, licensed under the GNU General Public License ([[http://www.fsf.org/licensing/licenses/gpl.txt|GPL]]) with portions licensed under the GNU Lesser General Public License ([[http://www.fsf.org/licensing/licenses/lgpl.txt|LGPL]]).
  
-You can find the current source code (in C) in the Synchronet [[dev:CVS]] repository.+You can find the current source code (in C) in the Synchronet [[dev:Git]] repository.
  
 The latest and greatest build will be included in Synchronet-Win32 releases. The latest and greatest build will be included in Synchronet-Win32 releases.
Line 73: Line 73:
 </code> </code>
  
-===== Installation =====+Additional options for Unix versions: 
 + 
 +<code> 
 +    -syslog               log to syslog rather than stdout/err 
 +</code> 
 +===== Install =====
  
 No installation is required. You should be able to just run "sexpots", optionally specifying command-line options to over-ride the default values (shown below), or the values in your ''[[config:sexpots.ini]]'' file (if you have one). No installation is required. You should be able to just run "sexpots", optionally specifying command-line options to over-ride the default values (shown below), or the values in your ''[[config:sexpots.ini]]'' file (if you have one).
Line 80: Line 85:
  
  
-===== Configuration =====+===== Configure =====
  
-Configuration is normally performed by editing the file ''[[config:sexpots.ini]]'', located +Configuration is normally performed by editing the file ''[[config:sexpots.ini]]'', located in the same directory where the SEXPOTS program (e.g. ''sexpots.exe'') is located (e.g. ''[[dir:exec]]''). If ''[[config:sexpots.ini]]'' file doesn't exist or any of the ''key=value'' pairs are missing or blank in the file, the default values (indicated below) will be used.
-in the same directory where the SEXPOTS program (e.g. ''sexposts.exe'') is  +
-located (e.g. ''[[dir:exec]]''). If ''[[config:sexpots.ini]]'' file doesn't exist or any of the ''key=value'' pairs are missing or blank in the file, the default values (indicated below) will be used.+
  
 Optionally, a different [[config:ini files|.ini file]] may be specified on the command-line (e.g. for running multiple concurrent instances of SEXPOTS on different COM ports). If an .ini file is specified on the command-line, it will be loaded **after** ''[[config:sexpots.ini]]'' (if the file exists), over-riding any settings in ''[[config:sexpots.ini]]''. Optionally, a different [[config:ini files|.ini file]] may be specified on the command-line (e.g. for running multiple concurrent instances of SEXPOTS on different COM ports). If an .ini file is specified on the command-line, it will be loaded **after** ''[[config:sexpots.ini]]'' (if the file exists), over-riding any settings in ''[[config:sexpots.ini]]''.
Line 90: Line 93:
 Command-line options that modify values of the same name in the ''.ini'' file(s) will over-ride (take precedence over) the value in the ''.ini'' file(s). Command-line options that modify values of the same name in the ''.ini'' file(s) will over-ride (take precedence over) the value in the ''.ini'' file(s).
  
-The order of precendence for configuration values is (lower number is higher precedence):+The order of precedence for configuration values is (lower number is higher precedence):
   - Command-line options   - Command-line options
   - Command-line specified ''.ini'' file   - Command-line specified ''.ini'' file
Line 103: Line 106:
 Debug = FALSE               ; enable debug logging (overrides LogLevel) Debug = FALSE               ; enable debug logging (overrides LogLevel)
 PauseOnExit = FALSE         ; wait for key-press on exit (non-service) PauseOnExit = FALSE         ; wait for key-press on exit (non-service)
 +CLS = FALSE                 ; send a form feed (clear screen) before copyright banner
 +Prompt = 
 +PromptTimeout = 60          ; seconds to wait for a remote character after sending prompt (0=infinite)
  
 [COM] [COM]
Line 112: Line 118:
 DTRDelay = 100              ; Milliseconds to delay before hangup DTRDelay = 100              ; Milliseconds to delay before hangup
 NullModem = FALSE           ; Set to TRUE to not send AT commands to modem NullModem = FALSE           ; Set to TRUE to not send AT commands to modem
 +Parity = FALSE              ; Use parity (error detection/correction) bit
 +ParityOdd = FALSE           ; Use odd (not even) parity for parity calculations
 +ByteSize = 8                ; Number of data bits per byte
 +StopBits = 1                ; Number of stop bits per byte
  
 [Modem] [Modem]
Line 120: Line 130:
 Timeout = 5                 ; Seconds to wait for a response from modem Timeout = 5                 ; Seconds to wait for a response from modem
 ReInit = 60                 ; Minutes of inactivity while waiting for caller before re-initialization ReInit = 60                 ; Minutes of inactivity while waiting for caller before re-initialization
 +Answer = ATA                ; Answer command
 +Ring = RING                 ; Ring indication (from modem)
 +ManualAnswer = FALSE        ; Set to TRUE to disable auto-answer and use ring detection/manual answer instead
  
 [TCP] [TCP]
Line 125: Line 138:
 Port = 23                   ; TCP port number of TCP server Port = 23                   ; TCP port number of TCP server
 NoDelay = TRUE              ; Set to TRUE to disable the Nagle Algorithm NoDelay = TRUE              ; Set to TRUE to disable the Nagle Algorithm
 +Telnet = TRUE               ; Set to FALSE to disable Telnet mode
  
 [Telnet] [Telnet]
-Enabled = TRUE              ; Set to FALSE to disable Telnet mode 
 Debug = FALSE               ; Set to TRUE to log Telnet commands sent/recv Debug = FALSE               ; Set to TRUE to log Telnet commands sent/recv
 AdvertiseLocation = FALSE   ; Set to TRUE to send "WILL SEND LOCATION" AdvertiseLocation = FALSE   ; Set to TRUE to send "WILL SEND LOCATION"
Line 143: Line 156:
  
 Note: Support for the ''[modem] ReInit'' key was added in SEXPOTS v1.27. Note: Support for the ''[modem] ReInit'' key was added in SEXPOTS v1.27.
 +
 +==== Modem Settings ====
 +
 +Modem settings that SEXPOTS will work best with:
 +
 +^ AT Command ^ Description ^
 +| ''C1''     | Modem asserts the DCD signal when it makes connection with another modem and de-asserts the signal upon disconnect. |
 +| ''E0''     | Command echo from the modem is disabled. |
 +| ''Q0''     | Result codes are sent by the modem. |
 +| ''V1''     | Verbal result codes are sent by the modem (instead of numeric result codes). |
 +| ''W2''     | When connecting, the modem reports the line speed (just once) in the CONNECT message. |
 +| ''&C1''    | Modem asserts the DCD signal only when carrier is present. You will need to set ''IgnoreDCD = TRUE'' if your modem does not support this. |
 +| ''&D2''    | When the the DTR signal is de-asserted (on->off transition), the modem hangs up. |
 +| ''S2=43''  | Escape sequence character: ''+'' |
 +| ''S3=13''  | Carriage return character: ''^M'' |
 +| ''S3=10''  | Line feed character: ''^J'' |
 +| ''S95=3''  | CONNECT result code indicates DCE speed instead of DTE speed, append /ARQ in error-correction mode. ((for modems that support this S-Register)) |
 +
 +These are typically the default factory settings for modems manufactured in the last 30 years.
 +
 +If these settings are not your modem's factory defaults, then you may need to make adjustments to the modem initialization string or (if unsupported by your modem), make other adjustments to your configuration file or command-line options.
 +==== Prompting for a TCP Host ====
 +
 +By setting the ''Prompt'' key value (to a text string asking the remote user to press a key), you can have SexPOTS connect to one of a set of TCP hosts by creating additional ''[TCP:x]'' sections in your ''.ini'' file, where ''x'' is a single non-control character that the user may respond with to choose that host to connect with. If the user does not respond by the configured ''PromptTimeout'' duration (default: 60 seconds) or responds with an invalid key press, the default host is connected to.
 +
 +Example .ini file (with default values given):
 +<file sexpots.ini>
 +Prompt: "Hit 'P' for PBX or ENTER for BBS now"
 +
 +[TCP]
 +Host=mybbs
 +Port=23
 +Telnet=true
 +
 +[TCP:P]
 +Host=thepbx
 +Port=2600
 +Telnet=false
 +</file>
 +
 ===== NT Service Control ===== ===== NT Service Control =====
  
Line 159: Line 212:
   net stop sexpots   net stop sexpots
  
 +==== DebugView ====
 +
 +When running SEXPOTS as an NT Service, you may want to use a debugger viewer (e.g. [[https://docs.microsoft.com/en-us/sysinternals/downloads/debugview|DebugView]], run as Administrator) to see the detailed log messages:
 +
 +{{:util:dbgview_sexpots.jpg?600|}}
 ===== Notes on Advanced Features ===== ===== Notes on Advanced Features =====
  
Line 174: Line 232:
 ===== Linux/Unix Version ===== ===== Linux/Unix Version =====
  
-There is a preliminary *nix port of SEXPOTS in [[dev:CVS]], but it's not being distributed or supported at this time. Use ''mgetty'' instead.+There is a *nix port of SEXPOTS in [[dev:Git]].
  
 ===== See Also ===== ===== See Also =====
   * [[:server:terminal|Terminal Server]]   * [[:server:terminal|Terminal Server]]
   * [[:util:|Utilities]]   * [[:util:|Utilities]]
 +  * [[:config:INI files]]