Releases: sm0svx/svxlink
Release list
SvxLink 26.05
Most important changes since the previous release
IMPORTANT! This release may break your TCL event handler changes if they were
not done properly!
So, the TCL event handling system has been rewritten since the last release. It
has been changed to be more powerful and to better reflect the hierarchies in
the C++ code. If you have no local TCL changes you should be fine. If things
break or behave strange when you start the new version, move all your changes
out of the way so that there are no local TCL changes at all. Now it should
work with default behaviour. If you want your tweaked behaviour back, implement
each change one step at a time, testing every change before adding the next
change. Follow the rules below when implementing TCL changes.
- Never change or delete files in the events.d directory.
- Always put changes in the events.d/local directory.
- Never copy complete files from the events.d directory to the local directory.
- Always start out with an empty file in the local directory and then add just
the namespace directive including it's opening and closing brace. - From the original file, copy only the specific event handlers (functions)
that you want to change. - Don't copy any other code or variables unless you know why.
- Make your changes on the right hierarchy level. For example, changes in
Logic.tcl will affect both SimplexLogic and RepeaterLogic but changes in
RepeaterLogic.tcl will only affect that specific logic core.
The rules above are mostly valid both before and after this release. The
following bullet points list the most important changes in the TCL code.
- There is no need anymore to have a TCL file named the same as a logic core.
Thus no need to for example copy RepeaterLogic.tcl to RepeaterLogic2.tcl if
you have a second repeater logic. - For each logic type, there now is a TCL file called XyzLogicType.tcl. That
file contain all event handlers for that logic type. - The XyzLogic.tcl files now only are a template for local modifications. Those
files are the exception to the rule that no files should be copied from the
events.d directory. - Event handler functions are now inherited down in the hierarchy so you will
not find a lot of functions that just call another function higher up in the
hierarchy. So you will find that for example the SimplexLogicType.tcl file is
essentially empty, because all needed functionality is implemented in
Logic.tcl. - As an example, the hierarchy for a repeater logic is:
LogicBase -> Logic -> RepeaterLogicType -> RepeaterLogic. - The "override" prefix can be used if you just want to make a smaller change
to a function, like doing something before of after the original function.
The "$SUPER" variable is used to call the original function. Have a look in
squelch_timeout.tcl for a couple of examples. - The loading of TCL files are now more selective. You cannot just drop a file
in the local directory and expect it to be loaded. It must be properly named.
SvxLink will print which files are loaded at startup. Functions in files
loaded later will override functions in files loaded earlier.
Now at least read the ChangeLog for Svxlink below. It contains information in
short of bugfixes and new features.
And as usual, a number of bugs have been fixed. For a full list of changes and
more details, see below. For more information on configuration of new features,
see the manual pages.
Complete ChangeLog for SvxLink Server version 1.10.0
-
Improved announcements for reflector connection state. If the connection is
down when a talkgroup is active, a buzzing sound will be prepended to the
roger sound. -
Writing to the logfile in SvxLink applications are now done from a separate
thread. That will increase the accuracy of the timestamps in some
situations. Previously multiple log rows could be lumped together in a
block where all rows had the same timestamp. That made it harder to debug
some timing critical problems. -
Support for hidraw PTT and squelch for the CM119A audio chip added.
-
New config variable MACRO_PREFIX used to set a custom or no prefix for DTMF
macro commands. -
New TCL event "siglev_updated" that is called when the siglev value is
updated on the receiver. -
New configuration variable for RepeaterLogic, SQL_TIMEOUT, to set a soft
timeout on transmissions. -
Handle module idle commands in ModulePropagationMonitor.
-
Bugfix in ModuleSelCallEnc: If an invalid selcall variant ID was specified
the module crashed. -
Bugfix in ModuleTclVoiceMail: If no password was specified on login the
module crashed. -
The SvxLink applications can now log to syslog by specifying
--logfile=syslog: (including the colon character). -
New configuration variable ACTIVATE_ON_TG that can be used in a logic
linking configuration section to activate the link when a talkgroup is
activated in a logic core. -
An APRS status message containing application name and version will now be
sent every 24 hours. -
Improved TG inhibit activation in ReflectorLogic. When there is activity
(e.g. squelch open) in another logic core, and the talkgroup is indicated as
0, remote TG activation as well as local activity activation (e.g. CTCSS to
TG) is inhibited. Previously only remote activation was inhibited. By
default there now also is an announcement (e.g. "local") when the inhibited
state is entered and the usual selection timeout sound when the state is
existed. -
Improved auto-QSY. The SvxReflector auto-QSY timer is now not started until
a talker has been active on the talkgroup. The auto-QSY procedure is
triggered at the first talker stop that occur after an auto-QSY timeout -
Reduced CPU load for the http /status endpoint in SvxReflector.
-
SvxReflector security fix.
-
CTCSS_TO_TG_DELAY default value changed from 1000 to 0.
-
Bugfix in the receiver voter. Tone detections was not buffered, like other
signalling, until a receiver was selected. -
Bugfixes in SwSel5Decoder. Thanks to Rui Barreiros for reporting.
- Potential buffer overflow fixed
- Last defined tone was never detected
-
Add support for GPIOD v2.
Thanks to Rui Barreiros for implementing this. -
Add support for sigc++3
-
Add new config variable DTMF_IGNORE_WHEN_NOT_UP.
-
Changes in the reflector server command PTY commands based on PR from
Rui Barreiros:- Implemented CA LS and CA RM
- Renamed CA PENDING to CA LSP and implemented it
- Added CA LSC to list certificates only
- Responses are now sent to the PTY when appropriate
-
New reflector server talkgroup configuration, ALLOW_MONITOR, to set which
callsigns are allowed to monitor a specific talkgroup. -
SvxReflector Bugfix: Certificates that had passed their renewal time, but
was still valid, was never sent to a client. -
Improved HIDRAW code
The HIDRAW squelch and PTT code have been made more resiliant so that it
can handle a device that disappear and then comes back. Previously it
would flood the log with error messages and never recover.
Complete ChangeLog for Qtel version 1.3.0
-
Add support for Qt6 contributed by DL1JBE
-
Update italian translation contributed by Giovanni Scafora (giovanni69)
Complete ChangeLog for EchoLib version 1.3.6
- Add support for sigc++3
Complete ChangeLog for the Async library version 1.9.0
-
Async::AudioStreamStateDetector facelift
-
Add support for sigc++3
-
Add support for Qt6 contributed by DL1JBE
SvxLink release 25.05.1 -- 01 July 2025
This is a bugfix release for the 25.05 release. Have a look at the ChangeLogs for all details.
SvxLink release 25.05 -- 03 May 2025
The largest change in this release is the authentication system used in the SvxReflector server, which now uses X.509 certificates instead of an AUTH_KEY. This has also enabled the use of encryption for both the TCP and UDP reflector network connections.
Support for the LADSPA audio processing framework has been extended. Audio processing can now be applied to the TX as well as the RX. There now also is a more verbose way to configure plugins where the configuration parameters is kept in their own configuration section. That also enables changing LADSPA parameters at runtime.
A new 'NODE BLOCK' PTY command has been added to the reflector server. It can be used to temporarily block nodes at runtime for a specified duration.
The APRS (LocationInfo) code has been reworked to be more standards compliant. It is also now usable for non-echolink nodes. Especially, a lot of time has been spent making the QSY command, available in some transceivers, work as expected. This means that someone receiving a SvxLink APRS object over the air should be able to easily QSY to the announced frequency with the push of a button. The system will also automatically set up parameters like CTCSS and repeater shift.
SvxLink is now more resilient to audio device failures, which will be automatically reopened if they occur. A specific case where USB audio device failures have been seen is on the Raspberry Pi, which can experience power dips. This will be logged in the system log, and on some systems, the power dip may cause the audio dongle to reset. This can cause TX hangs on systems using RemoteTrx.
As usual a number of bugs have been fixed. The full list of changes and more details can be found in the full release notes. Information on configuration of new features can be found in the manual pages.
SvxLink release 24.02 -- 25 Feb 2024
It's been a long time since the latest major release. A lot have happened during this time. The most important changes are described below. Be sure to look at the SvxLink log on first startup. Especially look for WARNINGs that say that configuration variables have changed. Make changes as instructed and restart SvxLink. It's also a good idea to redo audio calibrations using the devcal and siglevdetcal utilities. When using the SvxReflector it is very important that all nodes use the same levels for audio calibration. Otherwise some nodes will sound weak while other nodes will sound over modulated.
This release introduce talkgroups in the SvxReflector. That make it possible to use the reflector server for multiple parallel QSOs. Node sysops can set up monitoring on selected talkgroups which will make the node automatically select a talkgroup when there is activity on it. There also is a simple mechanism to set priority between monitored talkgroups.
The reflector sysop may configure selected talkgroups in a few ways. There is an auto-QSY feature that can be configured to move nodes, that are actively taking part in a QSO on a talkgroup, to a temporary talkgroup. That will free up the original talkgroup for new calls. A node is classed as active if there have been local activity (e.g. squelch opens) on the node. If a QSY happens and a node has not been active, there will be a chance to follow the QSY by just
pushing the PTT.
SvxLink now also support using multiple CTCSS tones. That is primarily of use to select a reflector talkgroup based on which CTCSS frequency that is used. A transceiver may be programmed with the same RF on multiple memory channels but with different CTCSS frequencies. That will make it easy to choose which talkgroup to use upon first transmission to a SvxLink node.
A SvxLink node can now be configured to use multiple SvxReflector adresses. That allow for simple redundancy where all nodes will switch to a backup node if the primary SvxReflector stops responding.
A new squelch type, COMBINE, enable the use of multiple squelch detectors at the same time. The different squelch types is combined using a logical expression.
The new configuration variable COMMAND_PTY can be used to set up a PTY that can be used to set configuration variables and call TCL functions at runtime. That can be used to externally control behaviour in a running SvxLink instance.
The CTCSS detector has a new mode (4) which now is the default. The new mode is faster and much better at suppressing interference.
SvxLink can now use LADSPA plugins to shape receiver audio. The LADSPA_PLUGINS variable is used to load and configure plugins.
As usual a number of bugs have been fixed. The full list of changes and more details can be found in the full release notes. Information on configuration of new features can be found in the manual pages.
SvxLink hotfix release 19.09.2 -- 10 Mar 2021
If you are running an SvxReflector server you should upgrade immediately.
SvxLink release 19.09.1 -- 01 Sep 2019
This release of SvxLink have no single big feature addition but a lot of
smaller ones. Some examples are: AFSK metadata transmission for RF linked
remote receivers, per receiver voter delay adjustment, new module ModuleTrx to
remote control transceivers using DTMF, more flexible announcement
configuration and more.
As usual a number of bugs have been fixed. The full list of changes and more
details can be found in the README for release 19.09. Information on configuration of new features can be
found in the manual pages.
SvxLink release 19.09 -- REVERTED
Use release release 19.09.1 instead.
SvxLink release 17.12.2 -- 01 Mar 2018
Bugfix release fixing the following bugs:
-
ModuleEchoLink bugfix: Echolink remote roger beep was sent even though
listen only mode was active on the local node. -
Bugfix in the --logfile command line argument handling for svxlink,
remotetrx and svxreflector. Under some circumstances SvxLink would crash
with strange errors if used with a logfile.
SvxLink release 17.12.1 -- 06 Jan 2018
Bugfix: Qtel translations were not installed.
SvxLink release 17.12 -- 30 Dec 2017
The biggest news in this release is the initial revision of the SvxReflector
application. The SvxReflector application is meant to be used as a center point
to link SvxLink nodes together. The new SvxLink ReflectorLogic logic core is
used to connect a SvxLink node to the reflector server. One or more logics can
then be connected to the refelctor using normal logic linking.
In addition a lot of smaller feature additions have been made and also a number
of bugs have been fixed. The full list of changes and more details can be found
in the README for release 17.12. Information on configuration of new features can be found in the manual
pages.