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

You can donate to the Synchronet project using PayPal.

This is an old revision of the document!


Telnet Gateway

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()

Usage

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.

Command-line

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)
  • [mode] is an optional set of telgate mode flags (TG_*) OR'd together the pipe (|) symbol
  • [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
-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).

Address

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:

  • vert.synchro.net
  • 24.0.193.46
  • retromud.org:3000

Mode

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

Multiple mode flags may be specified by ORing them together with the pipe (|) character, like so:

TG_ECHO|TG_CRLF

Others

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

Examples

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.

Legacy

The Baja TELNET_GATE function and the corresponding exec/*gate.bin files have been deprecated. Use the corresponding JavaScript alternatives instead.

Configure

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.

See Also