SW_DevITelex - fablab-wue/piTelex GitHub Wiki

Device "i-Telex"

Description

The i-Telex device modules enable connection to other TTYs that use the i-Telex protocol. The software splits into the client part and the server part. The client part handles outgoing connections, the server part is responsible for incoming connections.

Note

You can find detailed information on i-Telex at https://www.i-telex.net.

Tip

Consider registering at https://www.telexforum.de; you will find there lots of information around i-telex and telex in general, and also many helpful people...

Outgoing connections

Outgoing connections are handled by the Client part.

When the module is enabled in the config file with the default values, you should be instantly able to connect to every i-Telex client as long as your piTelex knows the hostname and port of the remote system. The transformation from the subscriber number you dial to hostname:port of the remote system is done in a first step via local "phonebook" that defaults to userlist.csv in the piTelex directory. If there is no matching entry, piTelex tries to resolve the request via internet connection to the "TNS" dictionary server network (TNS = "TeilNehmerServer" = subscriber server). Without connection to the internet your local phonebook allows you to connect to i-Telex devices in your local LAN.

An example of the required file structure of userlist.csv is given in userlist_example.csvin the piTelex directory. userlist.csvcan also be used for speed dials, as entries in this local phonebook always take precedence over TNS queries. But be aware not to use shortcuts that overlap with real i-telex subscriber numbers. If you have a shortcut "83" in your userlist.csv that resolves to a specific hostname, all numbers starting with "83" will be masked and become unreachable.

There are several variants of how piTelex evaluates and processes the dialled number. This can be configured via the global parameter dial_timeout and is described in SW_ConfigJSON#dialing.

Incoming connections

Incoming connections require the server part to be active, which is the default setting; to disable incoming connections, set port to zero.

Your piTelex instance will be reachable by every i-Telex client which knows hostname (or IP address) and configured port of your piTelex system. If the remote station is a piTelex system, it could add your number and hostname:port to it's local userlist.csv in order to reach you via telex number dialled at the remote station.

The more sleeky way is to get an entry in the "TNS", so that you can be reached via regular "telex number". For this you have to contact the i-Telex admins and send them a telex to one of the telex numbers

  • 925302 (Fernschreibzentralzeugamt Blumenhagen)
  • 952996 (Fernschreibzentrale Rödental)

and include the following information:

  • your name and location (city)
  • your telex id (answerback) (e.g. 123456 mytelex d)
  • Desired subscriber number (at least five digits; should be the first part of your telex id, if possible)
  • machine type (e.g. "Siemens T100")
  • IPv4 address and port of your piTelex system (or address:port of your router, if piTelex is behind it)
  • address mode (static, dynamic), see below

You will receive a confirmation message after the entry has been created.

Note

Depending on your local network configuration, it might be necessary to "drill a hole" through your router firewall and set up a port forwarding rule for connections coming in from outside at piTelex' port to pitelexhost:pitelexport.

Tip

IPv4, IPv6 and "Centralex" protocol

i-Telex cannot cope with IPv6-addresses; if you want to receive i-telex-messages, an IPv4 address is mandatory for your host (or router, see above). If you only have an IPv6 address or a "DS-Lite" connection , the centralex protocol can help. It uses an intermediate relay server with IPv4-address . For details on centralex, look here.

Caution

Dynamic addresses are supported via tns_dynip_number but must be agreed on with and configured by the TNS admins.

Do not touch the setting tns_dynip_number: 0 in telex.json without authorization by the TNS admins!

Setting tns_dynip_number to anything but 0 will enable dynamic IP updates with i-Telex TNS (Teilnehmerserver, Subscriber Server).

Change to your subscriber number if and only if

  • you've got your number approved by i-Telex administrators, and
  • you've chosen dynamic IP update and told i-Telex administrators so, and
  • you've set your tns_pin: <11111> properly.

System

System Comments
RPi OK
PC Linux OK
PC Windows OK
Mac OK

Dependencies

none

Command Line Arguments

Parameter Description
-I [<port>]
--itelex [<port>]
-I activates i-Telex functionality;
specify -I 0 to disable the server part (incoming connections)

Config File Parameters

Part Parameter Default type / range Description
ITelexClient tns_port 11811 number TCP port number of tns_host (tns=“TeilNehmerServer“)
ITelexClient userlist "userlist.csv" string filename of file containing speed dials, syntax see userlist_example.csv
ITelexSrv port 2342 1024 ... 65535 TCP port number (ports <1024 are privileged and not accessible for normal users)
ITelexSrv local_port 2342 1024 ... 65535 local TCP port number (either use portor a combination of local_portand public_port)
ITelexSrv public_port 2342 1024 ... 65535 TCP port number on the router (either use portor a combination of local_portand public_port)
ITelexSrv tns_dynip_number 0 positive integer Initially 0 (disable dynamic IP update). Set to own i-Telex calling number to enable dynamic IP update – must be agreed on with i-Telex administrators.
ITelexSrv tns_pin None positive integer < 65536 PIN for dynamic IP update; set according to i-Telex administrator‘s instructions
ITelex tns_srv "[tlnserv.teleprinter.net, tlnserv2.teleprinter.net, tlnserv3.teleprinter.net]" list of FQDNs,IPV4-addresses specify tns-hosts to use; ranking : first entry has highest prio, last has lowest
ITelexSrv block_ascii true false/true if true, block non-I-Telex connections (ASCII, PortScans,...)
ITelexCentralex centralex false true/false if true, use the centralex protocol
ITelexCentralex centralex_srv "tlnserv2.teleprinter.net" string FQDN or IP-Address of centralex
ITelexCentralex centralex_port 49491 pos. integer TCP port number of centralex service

Example config file snippet

  "i-Telex": {
      "type": "i-Telex",
      "enable": true,
      "port": 2342,
      "tns_dynip_number": 833788,
      "tns_pin": 12345
    },
⚠️ **GitHub.com Fallback** ⚠️