From 12c9d9b6378ebcc33418d21375485685fc2c89df Mon Sep 17 00:00:00 2001 From: Tobias Blomberg Date: Sun, 25 Feb 2024 22:09:49 +0100 Subject: [PATCH] Prepare for release 24.02 --- src/async/ChangeLog | 2 +- src/doc/README-24.01.adoc | 440 ++++++++++++++++++++++++++++++++++++++ src/echolib/ChangeLog | 2 +- src/qtel/ChangeLog | 2 +- src/svxlink/ChangeLog | 4 +- src/versions | 22 +- 6 files changed, 456 insertions(+), 16 deletions(-) create mode 100644 src/doc/README-24.01.adoc diff --git a/src/async/ChangeLog b/src/async/ChangeLog index 7d53402b7..2338b405b 100644 --- a/src/async/ChangeLog +++ b/src/async/ChangeLog @@ -1,4 +1,4 @@ - 1.7.0 -- ?? ??? ???? + 1.7.0 -- 25 Feb 2024 ---------------------- * ASYNC_AUDIO_ALSA_ZEROFILL is now enabled by default. diff --git a/src/doc/README-24.01.adoc b/src/doc/README-24.01.adoc new file mode 100644 index 000000000..d4974a224 --- /dev/null +++ b/src/doc/README-24.01.adoc @@ -0,0 +1,440 @@ +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 below. Information on configuration of new features can be +found in the manual pages. + +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + +Complete ChangeLog for SvxLink Server version 1.8.0 +--------------------------------------------------- + +* MetarInformation, more flexible airport announcement at the beginning of a + Metar + +* SvxReflector now support switching traffic on talk groups. + +* ReflectorLogic can now request switching talk groups based on the received + CTCSS tone frequency. It is also possible to switch to any talk group using + DTMF. + +* Now possible to use multiple CTCSS squelch tones in parallell. + +* SvxReflector now have a QSY functionality used to switch all active nodes on + a talk group to another talk group. + +* A logic link is now disconnected using # instead of 0#. If + any digits are specified after the prefix the link will be activated and the + digits will be given to the remote logic(s) for processing. Right now only + the ReflectorLogic care about these extra digits, also called the + subcommand. + +* A logic core connected to a logic link can now play announcements on all + other connected logics. This is used in the ReflectorLogic to announce talk + group selections and command feedback. + +* New signal level "detector": CONST + +* ModuleEchoLink bugfix: The LINK_IDLE_TIMEOUT did not work if the + remote_timeout TCL function was changed to not play any sound. + +* ModuleEchoLink bugfix: The LINK_IDLE_TIMEOUT did not work with short timeout + values where the timeout was shorter than the length of a locally received + transmission. + +* ModuleMetarInfo bugfix: Announcing twice + +* ModuleMetarInfo bugfix: SvxLink crashed on long LocationInfo comments + +* ModuleEchoLink: Now possible to silently ignore all incoming connections + using the DROP_ALL_INCOMING configuration variable. + +* The receiver configuration variables SQL_HANGTIME, SQL_EXTENDED_HANGTIME and + SQL_EXTENDED_HANGTIME_THRESH are now settable from within a C++ module for + example. + +* Improved GPIO up/down scripts with more error handling and support for + handling more cases. + +* New SvxReflector feature: Auto QSY. It is now possible to set a per + talkgroup time in the reflector after which a QSY to a random talkgroup is + performed. This can typically be used on call channels so that stations do + not dwell there for too long. + +* New squelch type: COMBINE. There now is a new squelch type that can combine + multiple other squelch types using a logical expression. + Implementing this new feature required rewriting quite a lot of the squelch + infrastructure code. Watch out for changed behavior in the squelch + functionality. + +* Bugfix: Squelch types DDR, SIM and TONE reported the "raw" signal strength + instead of the integrated one. This fix can change the behavior of the voter + and the extended hangtime feature. + +* Added debug mode for the CTCSS detector. Enable by setting CTCSS_DEBUG to 1 + in a receiver configuration section. + +* ReflectorLogic: Now possible to adjust the UDP heartbeat interval using the + UDP_HEARTBEAT_INTERVAL configuration variable. + +* Now possible to set configuration variables from TCL using the + setConfigValue function. This can be used to change certain configuration of + SvxLink while it is running. Only some configuration variables support being + changed at runtime. + +* If a configuration variable is changed in the logic core, or in the main + configuration section for a module, the new TCL function config_updated will + be called. + +* New configuration variable ONLINE that can be used to decide if a logic core + should be active or not on program startup. This variable also support being + set at runtime. + +* Use the new configuration variable COMMAND_PTY to set up a PTY that can be + used to send commands to a logic core. + +* Filter out CTCSS band for voice output. Interference on CTCSS transmission + could be caused by low frequency content in audio clips or incoming audio on + Echolink for example. + +* Ignore prioritized talkgroups qfter QSY if there have been local node + activity prior to the QSY. This fix a problem where a node would switch to a + prioritized talkgroup after a QSY to a lower priority talkgroup, if there + have been no local activity after the QSY. Priority will be honored again + after the node have switched to TG#0. + +* Make the audio limiter threshold in the receiver configurable using the + LIMITER_THRESH configuration variable in a receiver configuration section. + +* Add an audio limiter to the transmitted audio path. The threshold may be set + using the LIMITER_THRESH configuration variable in a TX configuration + section. + +* Bugfix: When AUTOACTIVATE_ON_SQL is used in a logic link definition it is + supposed to default to a timeout of 30 seconds if TIMEOUT is not set. That + did not work though. + +* ReflectorLogic: Use the QSY_PENDING_TIMEOUT configuration variable to enable + following a just ignored QSY request on squelch open. + +* By default, when activating a module in a logic core, all logic linking + audio will be muted. This behavior can be changed by using the + MUTE_LOGIC_LINKING configuration variable in the module configuration. + +* More informative squelch open/close printouts implemented. 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. + +* Fix receiver muting bug introduced with the AUDIO_DEV_KEEP_OPEN feature. + +* Bugfix: SQL_START_DELAY was not honored in all cases. + +* Rework squelch core code. The core squelch handling code was not fully + correct causing problems in some configurations. + +* New voter configuration variable VERBOSE 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. + +* 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. + +* Bugfix: Do not emit tone detected events from muted receivers. + +* The voter COMMAND_PTY now accept a new command MUTE that will keep the + receiver active but block all content. + +* Bugfix in ModuleMetarInfo: Gusts were not announced correctly in combination + with mps + +* Bugfix in ReflectorLogic: The AUTOACTIVATE_ON_SQL logic linking + functionality did not work for the ReflectorLogic. + +* The AUTOACTIVATE_ON_SQL logic linking configuration variable has been + renamed to ACTIVATE_ON_ACTIVITY. + +* Bugfix in reflector authentication. + +* 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. + +* Bugfix in ReflectorLogic: 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 TG was removed from the monitoring list completely. + +* Add support for PTT and squelch via the gpiod library. 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. + +* 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. + +* 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. + +* ReflectorLogic: New config variable VERBOSE 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. + +* 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. + +* 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. + +* Logic cores (SimplexLogic, RepeaterLogic etc) are now implemented as plugins + which mean they are dynamically loaded at runtime if needed. There are + multiple benefits with that: + - Easier to accept contributed logic cores into the main source tree since + no core code needs changing. + - As long as the plugin is not loaded it can cause no harm if it contain a + bug. + - Third-party logic cores can be packaged separately. Package maintainers + that build contributed code are urged to put such artifacts in its own + package with a name like svxlink-contrib-examplelogic. + See man svxlink.conf and the LOGIC_CORE_PATH configuration variable for info + on how SvxLink find the plugins. + +* Bugfix in SvxReflector: After 65536 client connections the warning "Incoming + UDP datagram from XX.XX.XX.XX:YYYYY has invalid client id ZZZZZ" was logged + for all new client connections. + +* New contribution from DL1HRC: SipLogic. The build is enabled by using the + -DWITH_CONTRIB_SIP_LOGIC=ON CMake command line option. + +* The CTCSS squelch detector is now used for both OPEN_ON_CTCSS and + CTCSS_TO_TG. That have multiple benefits. CPU usage is lower since only one + detector is used instead of three in parallell. The quality of the CTCSS + detector is better so shorter detection times may be used. On the downside, + there must be a CTCSS detector configured at every frequency that is + specified in either CTCSS_TO_TG or OPEN_ON_CTCSS. + +* Changed syntax for OPEN_ON_CTCSS. Only detection time is specified, no + frequency. All frequencies configured in the receiver configuration will be + used. + +* New configuration variable CTCSS_TO_TG_DELAY. + +* CTCSS_MODE=4 now is the default. + +* Bugfix: CTCSS transmission did not work correctly when AUDIO_DEV_KEEP_OPEN=1 + was specified. The tone did not turn off once it had been turned on. + +* The TX configuration variable CTCSS_LEVEL is now set in dBFS instead of + percent. + +* New configuration variable CTCSS_EMIT_TONE_DETECTED. May need to be set to 0 + in some advanced squelch configurations. + +* Now possible to set the jitter buffer delay on TX audio in RemoteTrx. This + may be useful if experiencing choppy TX audio. + +* Bugfix: Receiver voter muting had a couple of bugs that showed up when using + the voter command PTY to disable/mute/enable receivers. It's unknown if + these bugs have also caused any other problems. + +* 1750 Hz tone burst detector accuracy requirement increased to +/- 25 Hz. + +* Bugfix: When using "open repeater on squelch close", the squelch rx id was + not set up before the TCL event handler send_rgr_sound was called directly + after repeater open. This caused playing the wrong roger sound. + +* Bugfix in ModuleEchoLink: The INCORRECT PASSWORD message was ignored. + +* New global TCL function "getVar" that makes it easier to get the value of a + variable that may be non-existent. If the variable does not exist a default + value is returned instead. + +* New configuration variable LOCAL_RGR_SOUND in ModuleEchoLink that is used to + enable/disable the playing of a roger beep locally when the remote station + stops talking. + +* Add support for using the CM108B chip for squelch and PTT. + Contributed by DL1HRC. + +* New configuration variable TG_SELECT_INHIBIT_TIMEOUT that is used to + separately control the TG select inhibit feature. + +* Bugfix for the 1750_MUTING configuration variable. Setting it to 0 did not + disable the feature. It had to be commented out. + +* It's now possible to use LADSPA plugins to shape received audio. Fore more + information have a look at the documentation for the LADSPA_PLUGINS + configuration variable. + + + +Complete ChangeLog for Qtel version 1.2.5 +----------------------------------------- + +* 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. + +* Appstream adaptions from GitHub user "AsciiWolf" + - Added AppStream metainfo into files. + - Added png icon into files. + - Removed xpm icon from files. + + + +Complete ChangeLog for EchoLib version 1.3.4 +-------------------------------------------- + +* Replace potentially dangerous function call 'localtime' with 'localtime_r'. + +* Smaller adaptions to new networking code in Async. + + + +Complete ChangeLog for the Async library version 1.7.0 +------------------------------------------------------ + +* ASYNC_AUDIO_ALSA_ZEROFILL is now enabled by default. + +* Config::getValue() for vectors now tokenize on comma in addition to + whitespace. + +* Improved implementation for SvxLink::SepPair to work better with streaming. + +* Config: Add support for calling getValue on keyed containers, like std::set + and std::multiset. + +* Msg: Add support for std::set variable in messages. + +* New member function AudioSelector::selectedSource() used to find out which + source that are currently selected. + +* AudioSelector::autoSelectEnabled() can now be called with a constant source. + +* Add a signal to the Config class so that one can subscribe to changes in the + configuration. + +* Chunked mode added to the Async::HttpServerConnection. + +* Fix small memory deallocation bug in Async::AudioEncoderOpus. + +* New template class Async::Factory for creating object factories. + +* Added an AudioContainer framework. + +* The Config::valueUpdated signal is now only emitted if the value is changed. + +* The Pty::setLineBuffered method can now be used to enable line buffered mode + where incoming chars are buffered until a or is received. + +* Templated function Async::Config::setValue() so that generic types can be + used without converting them to string first. + +* The Async::Serial class now support all extended baudrates. + +* Rewritten the DNS resolver with support for more resource record types. + +* 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. + +* The Config class now also accept associative containers for getValue. This + for example make it possible to use a std::map to read a + configuration variable with a list of values on the form + VARNAME=88.5:-1,136.5:1. It is also possible to use other key/value + separators. + +* New class Async::StateMachine used to build Hierarchical Finite State + Machines. + +* 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. + +* Slightly changed semantics of the TcpClient::connect functions. It's now + not allowed to call the connect function if already connected. + +* Async::Plugin: A new class for loading code as plugins. + +* Bugfix Async::HttpServerConnection: EOL handling failed with newer + compilers. + +* New class Async::AudioLADSPAPlugin which enable the use of LADSPA plugins to + process audio. + diff --git a/src/echolib/ChangeLog b/src/echolib/ChangeLog index 6093a95cd..226677b15 100644 --- a/src/echolib/ChangeLog +++ b/src/echolib/ChangeLog @@ -1,4 +1,4 @@ - 1.3.4 -- ?? ??? ???? + 1.3.4 -- 25 Feb 2024 ---------------------- * Replace potentially dangerous function call 'localtime' with 'localtime_r'. diff --git a/src/qtel/ChangeLog b/src/qtel/ChangeLog index a49790598..e32c9960b 100644 --- a/src/qtel/ChangeLog +++ b/src/qtel/ChangeLog @@ -1,4 +1,4 @@ - 1.2.5 -- ?? ??? ???? + 1.2.5 -- 25 Feb 2024 ---------------------- * Bugfix: When a faulty bind address had been set up, Qtel just exited with a diff --git a/src/svxlink/ChangeLog b/src/svxlink/ChangeLog index 1aacba37a..3b291e799 100644 --- a/src/svxlink/ChangeLog +++ b/src/svxlink/ChangeLog @@ -1,4 +1,4 @@ - 1.8.0 -- ?? ??? ???? + 1.8.0 -- 25 Feb 2024 ---------------------- * MetarInformation, more flexible airport announcement at the beginning of a @@ -264,7 +264,7 @@ * Bugfix in ModuleEchoLink: The INCORRECT PASSWORD message was ignored. -* New global TCL function "getVar" than makes it easier to get the value of a +* New global TCL function "getVar" that makes it easier to get the value of a variable that may be non-existent. If the variable does not exist a default value is returned instead. diff --git a/src/versions b/src/versions index c8354a084..2150151cd 100644 --- a/src/versions +++ b/src/versions @@ -1,40 +1,40 @@ # Project release version -PROJECT=master +PROJECT=24.02 # Version for the Qtel application -QTEL=1.2.4.99.6 +QTEL=1.2.5 # Version for the EchoLib library -LIBECHOLIB=1.3.3.99.3 +LIBECHOLIB=1.3.4 # Version for the Async library -LIBASYNC=1.6.99.28 +LIBASYNC=1.7.0 # SvxLink versions -SVXLINK=1.7.99.95 +SVXLINK=1.8.0 MODULE_HELP=1.0.0 MODULE_PARROT=1.1.1 -MODULE_ECHO_LINK=1.5.99.5 +MODULE_ECHO_LINK=1.6.0 MODULE_TCL=1.0.1 MODULE_PROPAGATION_MONITOR=1.0.1 MODULE_TCL_VOICE_MAIL=1.0.2 MODULE_SELCALLENC=1.0.0 MODULE_DTMF_REPEATER=1.0.2 -MODULE_METAR_INFO=1.2.1.99.4 +MODULE_METAR_INFO=1.2.2 MODULE_FRN=1.1.0 MODULE_TRX=1.0.0 # Version for the RemoteTrx application -REMOTE_TRX=1.3.99.15 +REMOTE_TRX=1.4.0 # Version for the signal level calibration utility -SIGLEV_DET_CAL=1.0.7.99.9 +SIGLEV_DET_CAL=1.0.8 # Version for the deviation calibration utility -DEVCAL=1.0.2.99.10 +DEVCAL=1.0.3 # Version for svxserver SVXSERVER=0.0.6 # Version for SvxReflector -SVXREFLECTOR=1.99.18 +SVXREFLECTOR=1.2.0