SW_DevITelex - fablab-wue/piTelex GitHub Wiki
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 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.csv
in the piTelex directory.
userlist.csv
can 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 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
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 | Comments |
---|---|
RPi | OK |
PC Linux | OK |
PC Windows | OK |
Mac | OK |
none
Parameter | Description |
---|---|
-I [<port>] --itelex [<port>] |
-I activates i-Telex functionality; specify -I 0 to disable the server part (incoming connections) |
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 port or a combination of local_port and public_port ) |
ITelexSrv | public_port | 2342 | 1024 ... 65535 | TCP port number on the router (either use port or a combination of local_port and 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 |
"i-Telex": {
"type": "i-Telex",
"enable": true,
"port": 2342,
"tns_dynip_number": 833788,
"tns_pin": 12345
},