MODULEECHOLINK.CONF(5)

okay bestie so welcome to the manual page for ModuleEchoLink.conf β€” that's the config file for the SvxLink server's EchoLink module. It lives in section 5 (File Formats) of the manual, so it's MODULEECHOLINK.CONF(5). Pull up a chair, grab a snack, this one's a chonky girl and we're doing it in two parts πŸ“


✨ NAME ✨

ModuleEchoLink.conf β€” the configuration file for the SvxLink server EchoLink module πŸ¦‹


🌸 DESCRIPTION 🌸

So, svxlink is a general purpose voice service system for ham radio use, periodt. This man page is all about the SvxLink server configuration for the EchoLink module.

The EchoLink module is literally the thing that lets you connect to other EchoLink stations. That's its whole job. Main character energy fr fr πŸ’…


πŸŽ€ CONFIGURATION VARIABLES πŸŽ€

ngl, there are a couple of configuration variables that are common to all modules β€” those ones are documented over in the svxlink.conf(5) manual page, so go check that if you need them.

Below is the full rundown of every module-specific configuration variable the SvxLink EchoLink module understands. All of them. No skips. πŸ’–

  • ALLOW_IP β€” use this one very carefully, okay? Connections that originate from the given subnet will not be checked against the EchoLink directory server. The typical use case is when you wanna connect to your own svxlink server and both the server and you are sitting behind an IP masquerading firewall. 🫢
  • DROP_INCOMING... wait no, hold up, we do them in order:
  • DROP_ALL_INCOMING β€” this one silently drops all incoming connections. No message gets sent to the remote station telling them they got dropped. The connection just gets ignored, and there'll be no notification in the application log either. Sneaky. πŸ’€
  • DROP_INCOMING β€” drops all incoming connections where the remote callsign matches this regular expression. Again, no message goes to the remote station about the drop β€” the connection is just ignored. For the syntax deets, see the REGULAR EXPRESSIONS chapter below.
  • REJECT_INCOMING β€” rejects all incoming connections where the remote callsign matches this regular expression. This time a message is sent to the remote station saying the connection was rejected. Heads up: the DROP_INCOMING directive gets evaluated before REJECT_INCOMING. For the syntax, see the REGULAR EXPRESSIONS chapter below.
  • ACCEPT_INCOMING β€” only accepts incoming connections where the remote callsign matches this regular expression. If the callsign doesn't match, a message is sent to the remote station letting them know the connection was rejected. Order matters: DROP_INCOMING and REJECT_INCOMING get evaluated before ACCEPT_INCOMING. For the syntax, see the REGULAR EXPRESSIONS chapter below.
  • REJECT_OUTGOING β€” rejects all outgoing connections where the remote callsign matches this regular expression. For the syntax, see the REGULAR EXPRESSIONS chapter below.
  • REJECT_CONF β€” set this to 1 and it rejects all incoming connections where the name of the remote station ends in the word CONF. A message gets sent to the remote station saying the connection was rejected. What this does is block connects from stations that are in conference mode. And if a station enters conference mode after connecting, and transmits towards us, it will be disconnected as well. 🚫
  • CHECK_NR_CONNECTS β€” if a station connects too often it can be blocked for a configurable time span. Example: CHECK_NR_CONNECTS=3,300,120 β€” so if a station connects more than 3 times with less than 300 seconds in between each connect, that station gets rejected for 120 minutes. Timed out, blocked, no cap. ⏳
  • ACCEPT_OUTGOING β€” only accepts outgoing connections where the remote callsign matches this regular expression. The REJECT_OUTGOING directive gets evaluated before ACCEPT_OUTGOING. For the syntax, see the REGULAR EXPRESSIONS chapter below.
  • SERVERS β€” a space separated list of IP addresses or names of the EchoLink directory servers to use. The specified servers get tried in order until one is found that works, and then SvxLink sticks to that server. If that server fails, SvxLink will again try the next server in the list, and once it hits the end of the list the search starts from the beginning again. Hostnames that resolve to multiple IP addresses β€” like servers.echolink.org β€” are also correctly handled, so all returned IP addresses will be tried if necessary. Iconic failover behaviour honestly 🌈
  • CALLSIGN β€” the callsign to use to login to the EchoLink directory server πŸ“»
  • SYSOPNAME β€” the name of the person or club that is responsible for this system.
  • PASSWORD β€” the EchoLink directory server password to use.
  • LOCATION β€” the location of the station. Note: in the default configuration file the value of this configuration variable starts with "[Svx]". This is of course not necessary, but it's fun to see which other stations are running SvxLink. Little Easter egg, iykyk πŸ₯š
  • PROXY_SERVER β€” if set, connect to the given EchoLink proxy server host. All EchoLink connections β€” both incoming and outgoing β€” will then go through the proxy.
  • PROXY_PORT β€” set the TCP port used for connecing to an EchoLink proxy server. Default is 8100.
  • PROXY_PASSWORD β€” set the EchoLink proxy password used when connecting to an EchoLink proxy server. Use the password PUBLIC for public proxy servers.
  • BIND_ADDR β€” this configuration variable can be set to bind the EchoLink network sockets to a specific IP-address/interface. You might need this if the computer is fitted with more than one ethernet interface and EchoLink should only be used on one of them.
Example: BIND_ADDR=192.168.0.1
  • MAX_QSOS β€” the maximum number of stations that can participate in a conference QSO on this node. If more stations try to connect, the connect request will be rejected. Sorry bestie, the party's full 🎈
  • USE_GSM_ONLY β€” on smaller systems with a less powerful CPU, it's a good idea to prevent SvxLink from switching into the Speex codec when another SvxLink station is connecting via EchoLink. If this param is set to 1, SvxLink remains in the default codec (GSM). Protect that poor little CPU 🫢
  • DEFAULT_LANG β€” set the language to use for announcements sent to remote EchoLink stations. If it's not set, it'll be the same as the one chosen for the logic core. The reason you might set this up is if you want one language for the core and another language for annoncements sent to remote EchoLink stations.
  • MAX_CONNECTIONS β€” when more stations than specified in MAX_QSOS try to connect, a connection will temporarily be established long enough to play a message telling the remote station that the connection was rejected. The connection is then immediately terminated. And if the number of connections exceeds MAX_CONNECTIONS, the connect request is just ignored. This variable is typically set to MAX_QSOS+1 or more if you're using a large number for MAX_QSOS.
  • LINK_IDLE_TIMEOUT β€” the number of seconds that a connection is idle before disconnection will occur. The whole point is to prevent a link staying open if someone forgets to disconnect. Disable this feature by setting this config variable to zero (or comment it out). Goodbye dead air πŸ‘‹
  • AUTOCON_ECHOLINK_ID β€” set this variable to an EchoLink ID that you want to automatically connect to. SvxLink will autoconnect only when no other station is connected.
  • AUTOCON_TIME β€” set this to the time in seconds that you want in between autoconnect tries.
  • DESCRIPTION β€” a longer description that is sent to remote stations upon connection. This description should typically include detailed station information like QTH, transceiver frequency/power, antenna, CTCSS tone frequency etc. Serve the details πŸ’…
  • COMMAND_PTY β€” specify the path to a PTY that can be used to control the EchoLink module from the operating system. Commands: "KILL" will disconnect the current talker, "DISC callsign" will disconnect the station with the given callsign. Commands can be issued using a simple echo command from the shell.
  • LOCAL_RGR_SOUND β€” set this variable to 0 to disable playing a roger sound (beep) locally when the remote station stops talking. It's enabled by default.
  • REMOTE_RGR_SOUND β€” set this to 1 to enable sending of a roger sound (beep) to remote Echolink stations when the squelch closes on the local node. It's disabled by default.
  • REMOTE_EVENT_HANDLER β€” the path to the tcl file that handle remote events. The path is normally figured out from the EVENT_HANDLER set in the logic core confguration, so only set this configuration variable if you have a good reason. The file that should normally be used to handle remote Echolink events is events.d/EchoLinkRemote.tcl.

🌟 REGULAR EXPRESSIONS 🌟

So regular expressions get used in the DROP, REJECT and ACCEPT configuration variables. A regular expression can be quite complex, and the syntax is fully described in the regex(7) manual page. What's below is just a quick tutorial for the most important features β€” the greatest hits, if you will ✨

  • ^ β€” match the beginning of a string.
  • $ β€” match the end of a string.
  • . β€” match one character.
  • * β€” match the previous expression zero or more times.
  • | β€” match the expression before OR after the |.
  • \ β€” escape the following character. Note that backslash is also parsed by the SvxLink configuration parser, so a backslash must actually be typed as two. For example, to include a * in the matching pattern it must be escaped as \\*.
  • () β€” grouping an expression.
  • [] β€” match any of the characters inside of the brackets.

Some examples:

^(AB1CDE|BA5CBA-L)$

Match AB1CDE or BA5CBA-L.

^(AB1CDE-[LR])$

Match AB1CDE-L or AB1CDR-R.

^(AB1.*)$

Match all callsigns starting with AB1.

^(\\*.*\\*)$

Match all conference "callsigns". We need to escape the star character since it would otherwise be parsed by the regular expression parser. We also need two backslah characters so that the SvxLink configuration reader doesn't parse it as an escape sequence.

The matches in SvxLink are case insensitive, so "sm3" and "SM3" are the same. SvxLink use extended regular expressions (see regex(7)). And honestly? You almost always want to start the regular expression with "^(" and end it with ")$" so that the whole callsign will be used in the match. Trust, it'll save you so much grief πŸ’…

🌸 FILES 🌸

okay so where does this thing even live on your machine?? here's the whole map bestie πŸ—ΊοΈβœ¨

  • /etc/svxlink/svxlink.conf β€” the system wide configuration file. (or, deprecated πŸ‘€, /etc/svxlink.conf β€” the old spot, still hanging around like a ex who won't leave the group chat)
  • ~/.svxlink/svxlink.conf β€” the per user configuration file πŸ’… just yours, nobody else's business
  • /etc/svxlink/svxlink.d/ModuleEchoLink.conf β€” the global modularized configuration file ✨ and lowkey it does depend on whatever you set the CFG_DIR configuration variable to, so don't come for me if it's not there πŸ‘‘
  • ~/.svxlink/svxlink.d/ModuleEchoLink.conf β€” the per user modularized configuration file πŸŽ€ and fr fr, this one also depends on the CFG_DIR configuration variable setting. same rule, different folder, iykyk πŸ¦‹

πŸ‘‘ AUTHOR πŸ‘‘

the icon, the legend, the main character who made all this happen:

Tobias Blomberg (SM0SVX) <sm0svx at svxlink dot org> πŸ’–

give them their flowers, periodt 🌹


πŸ™ˆ REPORTING BUGS πŸ™ˆ

found a bug?? ok don't panic, do it right bestie:

⚠️ important vibe check: questions about SvxLink should NOT go on the issue tracker. that's not what it's for, babe 😭 the issue tracker is for bugs, not for "hey how do iβ€”"
  • got questions instead?? take those to the group that was literally set up for exactly this, over on groups.io: https://groups.io/g/svxlink 🫢

right place, right reasons, no chaos πŸ’…


πŸ”₯ SEE ALSO πŸ”₯

  • svxlink.conf(5) β€” go read the big one, it's giving main character ✨

that's the whole page bestie!! πŸŽ€ this was MODULEECHOLINK.CONF(5), the Linux version, dated APRIL 2021 πŸ“… and you read the entire thing so honestly?? slay, no cap, you ate that πŸ’–πŸ¦‹βœ¨

πŸ“¦ where this page comes from