====== Telnet Gateway ====== The Telnet Gateway (''telgate.js'') module allows users of your system's [[server: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 (''[[dir: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 [[util: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 ''[[dir: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
[:port] [mode] [options] Where: * '''' 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 [[:module:telgate#mode|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 [[:module:telgate#mode|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). ==== 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 ''[[dir:exec]]/[[dir: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 ==== 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 [[util: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 ''[[dir: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 ''[[dir:ctrl]]/[[config: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 ===== * [[:module:|Modules]] * [[:module:RLogin]] {{tag>JavaScript}}