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.
The behaviour of talkgroup activation was not logical when using a
RepeaterLogic with OPEN_SQL_FLANK=CLOSE. The selected talkgroup would be
announced before the PTT was released and the next reception (the second
one) was filtered out by the MUTE_FIRST_TX_LOC=1 feature which made it a
bit confusing to understand when audio actually started to be sent to
the reflector.
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.