ReflectorLogic: Client side redundancy added by using DNS SRV records or
a locally specified list of hosts. Renamed configuration variables:
HOST -> HOSTS, PORT -> HOST_PORT. New configuration variables:
DNS_DOMAIN, HOST_PRIO, HOST_PRIO_INC, HOST_WEIGHT.
Rewritten the DNS resolver with support for more resource record types.
Specifically SRV record support were needed to implement the reflector
client side redundancy.
New class Async::TcpPrioClient for handling pools of servers to connect to.
The pool members can be specified using DNS SRV records or locally using the
HOSTS configuration variable.
New class Async::StateMachine used to build Hierarchial Finate State
Machines.
Add a new method, Async::TcpClientBase::remoteHostName(), so that we can
find out what hostname we used in the connect call.
Rename Async::TcpClientBase bind to setBindIp. Also add a bindIP()
method to access the bind address.
The TCL event handler functions remote_cmd_received and
remote_received_tg_updated can now be used in a logic core to act on
commands and talkgroup activations from another logic core.
Add new configuration variable VERBOSE to the ReflectorLogic that
choose if printouts from the reflector logic should be verbose or not.
At the moment the only difference is that reflector join/leave messages
will be suppressed if VERBOSE=0.
New CTCSS configuration variable CTCSS_SNR_OFFSETS (note the plural S) which
replace the old variable with a similar name. The new variable take a comma
separated list of frequency:offset pairs to support the use of multiple
CTCSS tone frequencies. The siglevdetcal utility has also been modified to
output the new variable format. If you are using just one CTCSS frequency
with a previously calibrated offet value you can keep using that. The older
configuration variable will not be removed and it still work in the same
way.
- New CTCSS tone detector, mode 4, added. This detector is faster and more
selective. It probably also is more resilient to interference. Have a look
at the svxlink.conf (5) manual page under CTCSS_MODE for more information.
- Tone detectors for 1750 Hz tone burst, CTCSS repeater activation,
CTCSS_TO_TG etc now use frequency estimation in addition to energy detection
for better selectivity.
- Improved squelch state logging with more details about the detection.
- All configured CTCSS fqs are now used in siglevdetcal (=average among
all for noise level compensation).
- Bugfix for CTCSS_OPEN_THRESH/CTCSS_CLOSE_THRESH handling
- CTCSS_DEBUG is now time controlled, prining 10 times per second
Accessing GPIO pins via the sysfs interface is deprecated. When
PTT_TYPE is set to GPIOD there are two new configuration variables
available to set GPIOD up, PTT_GPIOD_CHIP and PTT_GPIOD_LINE. When
SQL_DET is set to GPIOD there are two new configuration variables
available to set GPIOD up, SQL_GPIOD_CHIP, SQL_GPIOD_LINE. If SvxLink is
built with libgpiod >= 1.5 SQL_GPIOD_BIAS will also be available to set
PULLUP/PULLDOWN for a GPIO input (squelch) pin.
Closes#538
AudioDeviceUDP can now write zeros to the UDP connection on underflow.
That is, when the "audio device" is open but there is no audio to write
zeros will be written instead. Enable this behavior by setting the
environment variable ASYNC_AUDIO_UDP_ZEROFILL=1.
Bugfix: When a faulty bind address had been set up, Qtel just exited with a
bit cryptic error message. Now it starts up with the possibility to use the
configuration dialog to fix the problem.
It was possible to activate a temporary TG monitor on a TG that was
configured to be permanent. When the temporary monitor timed out the
permananent TG was also removed from the monitoring list.
It is now possible to set the Echolink module drop/reject/accept
configuration variables at runtime. This can for example be used from
TCL, using the setConfigValue function, to change behavior at runtime.
See example in ReflectorLogic.tcl.
The AUTOACTIVATE_ON_SQL logic linking configuration variable has been
renamed to ACTIVATE_ON_ACTIVITY. That name is more descriptive since not
only squelch activity trigger the functionality.
- Not allowed to monitor unallowed talk group
- Not receiving metadata (e.g. talker start/stop etc) from unallowed
talk groups
Also now not allowed to request QSY from TG #0.
The new configuration variable ALLOW can now be used in a TG#xyz
configuration section to choose which callsigns that are allowed to
select the talk group.
Rename configuration variables to make it more clear that they are for
squelch configuration. An "SQL_" prefix have been added to the following
configuration variables: SIGLEV_RX_NAME, SIGLEV_OPEN_THRESH,
SIGLEV_CLOSE_THRESH.
A new voter configuration variable VERBOSE has been added which cause
the voter to print the squelch state events of the satellite receivers.
This can be used while fine tuning voter timing for example.
In the previous implementation of the squelch combiner the squelch
timing configuration variables, like SQL_DELAY, SQL_HANGTIME etc, was
applied to all subsquelches. This caused a strange behavior where the
top-level setting would "win" over the squelch specific settings. The
implementation have now been changed so that the squelch timing
configuration variables are applied on the combiner squelch itself.
Have a look at the SQL_COMBINER configuration variable description in
the svxlink.conf(5) manual page for more information.
Fix receiver muting bug introduced with the AUDIO_DEV_KEEP_OPEN feature.
Receivers were not completely muted which caused events, like tone
detection, to be emitted even though there should no events emitted from
a fully muted receiver.
The information that is printed within the parenthesis after the squelch
open/close message is now specific for each squelch type so that
meaningful information can be printed for that squelch type. For example
the CTCSS tone frequency and SNR is printed for CTCSS squelch. The value
printed for SIGLEV squelch is now the actual value that is used by the
squelch. Previously there was no connection between the value used by
the squelch and the printed signal level.