The Telnet Gateway (telgate.js
) module allows users of your system's Terminal Server to connect to other TCP/Telnet services on the Internet through your BBS. Typically, these services would be other telnetable BBSes, door game servers, and MUDs, although really, you can theoretically create a gate to any single-port TCP service (e.g. POP3, but not FTP).
The module itself (exec/telgate.js
) is just a thin wrapper around the JavaScript function: bbs.telnet_gate()
The Telnet Gateway module is normally executed via a command-line configured in SCFG, often as an “External Program”. By convention, JavaScript modules are executed from the Synchronet Terminal Server by starting the command-line with a question mark (?
) symbol. An asterisk (*
) prefix will also work, but will fallback to execute the old exec/telgate.bin
if the telgate.js
file is absent.
The Telnet Gateway module accepts command-line arguments to control its behavior when invoked. The command-line syntax is:
?telgate <address>[:port] [mode] [options]
Where:
<address>
is the IPv4 address or host name to connect to[:port]
is the optional TCP port number to connect to (default is 23
)[options]
are one or more of the following options:Option | Value | Description |
---|---|---|
-T | connect-timeout-seconds | Connection timeout (default: 10 seconds) |
-m | telnet-gateway-mode | Set of one or more telgate mode flags (TG_* ) separated by pipe (| ) symbols (default is 0 ) |
-q | none | Don't display banner or pause prompt (be quiet) |
-v | none | Display remote host name/address/port in messages |
-P | none | Don't pause for user key-press before connection attempt |
-C | none | Don't clear screen after successful session |
-N | none | Send a blank line (CRLF) after connecting (may be used multiple times) |
-s | characters | Send string of characters after connecting (may be used multiple times) |
-S | characters | Send CRLF-terminated string of characters after connecting (may be used multiple times) |
Option values may immediately following the option flag or may be provided as the next argument on the command-line (separated by white-space).
The <address> argument is the destination address in the format: <IP address or hostname>[:port]
If the TCP port number is not specified, the default is 23 (standard for telnet).
Examples <address> values:
The valid mode flags (defined in exec/load/sbbsdefs.js
) are:
Flag | Description |
---|---|
TG_ECHO | Echo back to the user's client what it sends (i.e. keyboard input) |
TG_CRLF | Expand sole CR (on input) to CRLF |
TG_LINEMODE | Send entire lines only |
TG_NODESYNC | Call Nodesync, get msgs, etc. |
TG_CTRLKEYS | Interpret control key (e.g. Ctrl-P, Ctrl-U, Ctrl-T, etc.) locally |
TG_PASSTHRU | Pass-through Telnet commands/responses (don't proxy the Telnet command responses) |
TG_RLOGIN | Use BSD RLogin protocol (not Telnet) |
TG_NOCHKTIME | Don't check time left online |
TG_NOTERMTYPE | Request client “DONT TERM_TYPE” |
TG_NOLF | Do not send line-feeds |
TG_RLOGINSWAP | Swap the RLogin alias/real-names |
TG_RAW | Connect to a raw TCP (not Telnet) server |
TG_EXPANDLF | Expand received sole-LFs to CR/LF pairs |
Multiple mode flags may be specified by ORing them together with the pipe (|
) character, like so:
TG_ECHO|TG_CRLF
Although telgate.js
is the original and most flexible Synchronet Telnet gateway script, there are other bbs.telnet_gate()
wrapper scripts available for your convenience:
Module | Description |
---|---|
mudgate.js | Sets the mode flags based on the needs of a typical MUD server |
unixgate.js | Sets the mode flags based on the needs of a typical Unix Telnet server |
rlogin.js | Actually a wrapper around the bbs.rlogin_gate JavaScript function |
To set-up an external gateway to another BBS in SCFG->External Programs->Online Programs:
Command line: "?telgate vert.synchro.net"
To set-up an external gateway to a MUD:
Command line: "?mudgate batmud.bat.org"
To set-up an external gateway to a Trade Wars Game Server (TWGS):
Command line: "?rlogin twgs.someserver.com"
While using the telnet gateway (and not currently in telnet “Binary” mode), users can press ctrl-] for a menu of telnet gate commands including: Disconnect, Toggle Echo, List Users, and Private Message.
The Baja TELNET_GATE
function and the corresponding exec/*gate.bin
files have been deprecated. Use the corresponding JavaScript alternatives instead.
The default Telnet Gateway option values and display messages can be over-ridden by creating/editing key in the [telgate]
section of your ctrl/modopts.ini
file.
Key | Default | Description |
---|---|---|
quiet | false | Don't display banner or pause prompt (quiet) |
pause | true | Pause for user key-press before connecting |
clear | true | Clear screen after disconnect |
timeout | 10 | Connect timeout (in seconds) |
verbosity | 0 | Display remote host address/port when non-zero |
help_msg | see code | Message to display for help (“” to disable) |
connecting_msg | see code | Message to display when connecting to remote host (“” to disable) |
failed_conntect_msg | see code | Message to display upon connection failure (“” to disable) |
Note:
You'll likely want to use string literal syntax for message strings.