Fetching contributors…
Cannot retrieve contributors at this time
1551 lines (1115 sloc) 65.5 KB
1.7.0 -- ?? ??? 2018
* Now possible to set the roger sound to be always on in the SimplexLogic, even
when no module is active. Use the RGR_SOUND_ALWAYS configuration variable to
enable the feature.
* New feature added called "AFSK-com". This feature make it possible to
transport smaller amouts of metadata on an RF link, for example when linking
remote receivers in via RF. The metadata can be signal level measurements,
DTMF digits or tone detections (e.g. 1750Hz or CTCSS for repeater
There are two modes for AFSK-com, in-band and out-of-band. The in-band mode
is used to transport data when there is no audio being transported. The
out-of-band mode is used when data must be transmitted at the same time as
analogue audio, like continuous signal level updates.
To configure the AFSK handling use the OB_AFSK_* (for out-of-band) and
IB_AFSK_* (for in-band) configuration variables. Also there is a new
SIGLEV_DET=AFSK and DTMF_DEC_TYPE=AFSK to support transporting those values
using the AFSK-com feature.
* Now possible to specify 1750Hz and CTCSS detectors in a RemoteTrx RfUplink.
That is done using the new DETECT_1750 and DETECT_CTCSS configuration
* An RX identity can now be specified for each receiver in a system. That
identity can then be used in the TCL event handling scripts to for example
send different roger sounds depending on which receiver the signal
originated from. The identity is specified using the RX_ID configuration
variable and consists of one char.
* New receiver voter feature: Now possible to adjust the voting delay per
receiver. This may be good to do if some receivers are much slower to report
squelch open/signal level. As an example, let's say we have three receivers
where two of the receivers take at most 100ms to report signal level and one
receiver requires 300ms. We then need to set the VOTING_DELAY to something
like 350ms so as to be sure that all receivers get a chance to report their
signal level measurement. If only the slow receiver opens there will be a
total delay of 300+350=650ms. This is unnecessarily long since the other two
receivers should have reported their signal strength way earlier. It's thus
safe to shorten the voting delay for the slow receiver, so we do this:
RECEIVERS=FastRx1,FastRx2,SlowRx:200. The total squelch open delay will now
be 100+350=450ms for the fast receivers and 300+350-200=450ms for the slow
receiver. That is, all receivers are now equally fast.
* Support was added to control the frequency and modulation of receivers and
transmitters connected to the SvxLink node.
* New configuration variable CTRL_PTY that can be used in RX and TX
configuration setions. It will set a PTY than can be used to control the
frequency and modulation of external receivers and transmitters. An external
transceiver control script is needed to actually control a transceiver. An
example of such a script,, can be found in the SvxLink
distribution. That script may be modified to support a specific transceiver.
* Now possible to specify the same PTY for multiple receiver and transmitter
functions like squelch, ptt, DTMF, frequency control etc. That make it
possible to handle all commands on the one PTY in one script. It is still
possible to use separate PTY:s as before if that is desirable.
* New module ModuleTrx, a module to control one or more separate transceivers
connected to a SvxLink node. The frequency of the transceiver is set through
DTMF commands and then it's possible to transmit and receive on the
transceiver through the SvxLink node. Have a look at the manual page for all
* The sound clip hz.wav have been moved from the Core directory to the Default
directory and renamed to Hz.wav. Language packs need to be updated.
* There is a new function in locale.tcl called playFrequency that shoud read
back a frequency as intelligently as possible. Language packs need to be
updated if they use their own locale.tcl.
* New Default sound clips: kHz, MHz, GHz, ok. Language packs need to be
* The default group for SvxLink changed from 'daemon' to 'svxlink'.
* ModuleEchoLink: New configuration variable REMOTE_RGR_SOUND that is used to
enable the sending of a roger sound to remote Echolink stations when the
squelch is closed on the local node. Default is to not send a roger sound.
* Rename TCL function addTimerTickSubscriber to addMinuteTickSubscriber.
* Add new TCL function addSecondTickSubscriber.
* Now possible to not specify an ID for a module. It will then not be possible
to activate the module. This is typically useful for modules that have no
command interface but rather is just doing something in the background.
* When reading TCL files, print a warning instead of erroring out if a file is
not readable.
* The TCL function CW::setAmplitude now take the amplitude value in dB of
full scale amplitude rather than thusands of full amplitude.
Also it's now possible to give the CW::play function temporary values for CW
speed, frequency and amplitude.
* The MultiTx now "mute" the logging printouts from its transmitters so that
only one "Turning the transmitter ON/OFF" is displayed instead of one for
each transmitter.
* New configuration variable for logic cores, PHONETIC_SPELLING, which if set
to 0 will spell words using plain letters instead of the default phonetic
spelling. Not all language packs support this feature.
1.6.1 -- 01 Mar 2018
* 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.
1.6.0 -- 30 Dec 2017
* ModuleMetarInfo: smaller changes e.g. additional tcl function for raw
* ModuleMetarInfo: Because of termination the metar service on some
changes were needed in the module ( - >, better debug output if a metar can not be announced
* New argument "call" to EchoLink::is_receiving TCL event handler.
Patch by hsmade.
* New TCL event handler EchoLink::client_list_changed.
Patch by hsmade.
* New TCL function playDtmf. Patch by DL1HRC / Adi.
* ModuleEchoLink: Add command PTY that can be used to send commands to the
EchoLink module at runtime. Patch by hsmade.
* RemoteTrx now display squelch open/close even when disconnected from
the main system.
* Small bugfix in the LocationInfo functionality that made SvxLink exit
uncleanly, possibly with a segmentation fault.
* New TCL command, injectDtmf, to inject DTMF digits into the command
stream just as if they were received on the receiver. This function
can for example be used in conjuction with the dtmf_digit_received and
dtmf_cmd_received functions to remap commands to something different or
inventing compound commands.
* ModuleTclVoiceMail: SvxLink would not start if the HOME environment
variable was not set. That prevented proper operation from system
* ModuleFrn: Now possible to specify a backup server that is used when the
connection to the primary server fail. Use the new configuration variables
SERVER_BACKUP and PORT_BACKUP to configure the backup server.
Patch by sh123.
* New command PTY for controlling the receiver voter. It's possible to
enable and disable receivers using the ENABLE and DISABLE commands.
Use the COMMAND_PTY config variable in the voter configuration section
to set it up.
* New command PTY for injecting DTMF digits into a logic core. Use
configuration variable DTMF_CTRL_PTY to set the path to the PTY.
The PTY will also emit the DTMF digits received on the RF.
* New configuration variable GPIO_PATH for PTT and squelch configurations that
use GPIO. On some hardware platforms the path to control GPIO pins is not
standard. This configuration variable can be used to set the path.
* Bugfix: Setting FQ_CORR=0 in a WbRx configuration section resulted in an
error message
* FQ_CORR can now be negative
* New TCL event handing function EchoLink::info_received that is called when
an info message is received from a remote EchoLink station.
* ModuleEchoLink: The connected TCL event handling function now also is given
the callsign.
* Bugfix: The squelch detector was not able to handle larger audio blocks than
256 bytes. It now can.
* Bugfix: Could not handle WAV files that contained other subchunks than 'fmt'
or 'data'. Reading would fail for WAV files containing for example 'LIST'
or 'id3' subchunks.
* New application SvxReflector that is used to link multiple SvxLink nodes
together. On the SvxLink node side the new ReflectorLogic logic core is used
to connect to the SvxReflector server.
1.5.0 -- 22 Nov 2015
* Added support for using digital drop receivers on an RTL2832U based DVB-T
USB dongle. This will open up the world of cheap receiver hardware to all
SvxLink users. It will for example be very cheap to set up an extra receiver
with local coverage for a SvxLink based repeater, as long as there is a
network connection to the repeater. The modulation forms supported are:
FM, FM narrow, AM, AM narrow, USB, LSB, CW, CW wide and wideband FM
* New configuration variable for local receivers, RAW_AUDIO_UDP_DEST, which
makes it possible to stream the raw audio read by SvxLink from the audio
device to a UDP port. This feature was mainly added for debugging but may
be usable for other things as well.
* New configuration variable MASTER_GAIN for local transmitters. This has the
functionality as the PREAMP variable have for local receivers. That is,
it can be used to fine tune or amplify the gain of the signal if it's not
possible to do with the normal hardware sound controls.
* Added a calibration utility, devcal, which can be used to get all the
levels right for all transmitters and receivers in the system.
* New squelch detector type, OPEN, which keeps the squelch open at all times.
Used at calibration for example.
* Bugfix: The receiver voter had a bug which caused incoming audio to be
muted if a receiver switch occurred in the middle of an identification.
* Support added for raw HID (Human Interface Devices) based devices that can
be used for PTT and Squelch. An example of such a chip is the CM108 which
can be found in some USB audio devices.
Contributed by Adi / DL1HRC.
* Bugfix in ModuleMetarInfo: Numbers was some times read in the wrong way
* New logic core configuration, STATE_PTY, which specify a UNIX 98 PTY to open
where SvxLink state information can be published. This information can be
used by external applications to act on.
* The receiver voter now continuously output squelch state information to the
logic core state PTY.
* Fixed issues reported by the Coverity scan static analysis tool.
* New config variable CARD_CHANNELS which is used to set the number of
channels that is used on the sound card, e.g. 1=mono, 2=stereo.
* The DTMF_TONE_AMP transmitter configuration variable has been renamed to
DTMF_DIGIT_PWR. To get the same level as with the old variable, add 3dB
to the value set on the new configuration variable.
* Rewritten and greatly improved software DTMF decoder. The new decoder is
the default choice when DTMF_DEC_TYPE is set to INTERNAL. To keep using the
old DTMF decoder, set it to DH1DM instead. The improvements in the new DTMF
decoder are:
- Quicker: Now detect durations as short as 40ms
- Much better immunity to non-DTMF audio, like speech, which mean less
false detections
- Slightly more sensitive
- Lowered CPU requirements
* Now printing out when 1750Hz tone burst muting is active.
* Bugfix in the QSO recorder: If a write error occurred, the audio pipe could
get stuck leading to audio to stop flowing in other parts of SvxLink.
* Config file open code cleanup for SvxLink and RemoteTrx. Under some
circumstances "fopen: ..." error messsages were printed even though there
really wasn't an error. Also, when using the --runasuser switch, the
configuration file was still searched for using the HOME environment variable
of the user who started the process rather than using the home directory
of the target user.
* Add simulator for local receivers and signal level detectors. These
simulators can be used to debug problems in SvxLink.
* Bugfix: A Local Rx would let squelch open/close through even when muted.
* The install path for libraries are now automatically discovered which may
make libraries install in a another directory than before. For example, on
normal 64 bit x86_64 systems they will end up in /usr/lib64 and the plugins
will be placed in /usr/lib64/svxlink. On other platforms the paths may be a
bit stranger, like /usr/lib/arm-linux-gnueabihf on the Cubieboard.
This may require that the MODULE_PATH config variable is changed for the
plugins to be found. The best is to comment out the MODULE_PATH
configuration variable and let SvxLink determine what to use.
The old LIB_SUFFIX CMake variable is not used anymore.
* New configuration variable in svxlink.conf for remote transmitters and
receivers, LOG_DISCONNECTS_ONCE, that can be set to 1 to not log reconnect
attempts. This may be of use if a RemoteTrx is missing for a long time or if
it's only used from time to time.
* The CFG_DIR configuration variable read additional config from files in
the configured directory. The man-page stated that files starting with a dot
were ignored. This was not true but is now. The man-page was also lacking
information on that all files not ending in ".conf" are ignored.
* The default PTT type is now NONE so that svxlink and remotetrx can start
out of the box without reconfiguring them.
* Bugfix in the GPIO squelch detector. The usage of "!" in GPIO_SQL_PIN to get
inverted operation did not work.
1.4.3 -- 02 nov 2015
* SvxLink now compile in C++11 mode with GCC and other compilers that
understand the -std=c++11 compiler switch. The compiler switch will
automatically be turned on if a version of libsigc++ greater than 2.5.0 is
detected since those versions require C++11 to be enabled.
1.4.2 -- 06 jun 2015
* Bugfix: The logic linking would cause a crash under some circumstances.
For example SvxLink would crash on startup if link TIMEOUT was set and the
startup Tcl function was modified to play an audio clip.
1.4.1 -- 30 apr 2015
* ModuleEchoLink: If an incoming connect have a different IP address than
the one registered in the Echolink directory server, the station list is now
refreshed immediately instead of just rejecting the connection and wait for
the next periodic refresh.
1.4.0 -- 02 aug 2014
* The PTT hardware type must now be specified using the PTT_TYPE configuration
variable in a TX section. Specify "SerialPin" for using a pin in the serial
port, "GPIO" to use a pin in a GPIO port. Set PTT_TYPE to "Dummy" or "NONE"
to not use any PTT hardware at all. It is an error to not specify PTT_TYPE.
* New config variable for repeater logics: CLOSE_ON_SEL5 which make it
possible to close the repeater using a selective calling sequence.
Patch contributed by Adi / DL1HRC.
* Now possible to have active low functionality on the PTT pin for GPIO. This
is configured in the same way as for serial ports, by prefixing the gpio
pin specification with an exclamation mark (!) in the PTT_PIN config.
Example: PTT_PIN=!gpio5
* ModuleEchoLink: It's now possible to disconnect one specific station by
choosing from a list of callsigns. The disconnect by callsign feature
is activated using subcommand 7 while the EchoLink module is active.
This feature was contributed by Martin/DF1AMB.
* ModuleEchoLink: New TCL event handling function: "chat_received" which
is called when a remote chat message is received.
* ModuleEchoLink: New TCL event handling function: "squelch_open" which is
called when the local receiver squelch open and closes. This function can be
used to for example send a roger beep to the remote station when the squelch
Patch contributed by DL1HRC / Adi.
* Previously the upper threshold for the signal level reported from the noise
signal level detector was hardcoded to 120. It can now be set using the
configuration variable SIGLEV_BOGUS_THRESH. By default it's disabled.
* Now possible to make log entries have milliseconds in the timestamp. Use the
code "%f" in the TIMESTAMP_FORMAT configuration variable to make that happen.
* New configuration variable for SimplexLogic, MUTE_TX_ON_RX, which can be set
to allow transmission during reception. This may be desired if the logic is
connected to some full duplex device.
* Now possible to prefix the GPIO_SQL_PIN config variable value with an
exclamation mark (!) to get inverted operation for the GPIO squelch.
* Changed syntax for SERIAL_PIN in an RX section to match other config
variables better. Now just the pin name need to be specified. If inverted
operation is desired, the pin name may be prefixed with an exclamation mark
(!). The old syntax, SERIAL_PIN=PINNAME:LEVEL, is still supported but a
warning is printed if that form is used.
* ModuleEchoLink: New config variable REJECT_CONF which when set will reject
connections from stations that are in conference mode.
* ModuleEchoLink: New config variable BIND_ADDR which can be set to bind the
EchoLink UDP sockets to a specific IP-address/interface. This may be
needed if the computer is fitted with more than one ethernet interface and
EchoLink should only be used on one of them.
* Previously, when setting CTCSS_LEVEL in a LocalTx section, the voice level
was adjusted down by the same amount that the CTCSS level was adjusted up.
This is just confusing so I removed that compensation.
* Bugfix in the Voter: If the squelch were open while quitting, a crash could
* Bugfix in logfile handling: SvxLink/RemoteTrx would crash if the filesystem
was full while trying to write to the logfile.
* Flushing logs at exit.
There have always been a problem with the log handling in SvxLink that if an
error occurred during startup, the error printouts would not end up in the
log. In fact, nothing would end up in the log, leaving the user confused.
Now the log is flushed before exit so that all printouts end up in the log.
1.3.1 -- 30 jun 2014
* Bugfix: The voter may have had a race condition which caused an assertion
failure. The code is a little bit more forgiving now.
* Bugfix: The voter could cause an assertion failure if a signal level lower
than -100 were reported from one of the receivers.
* Bugfix in ModuleTcl example file.
1.3.0 -- 01 Dec 2013
* Improved support for linking logics together. It's now possible to have
multiple links active at the same time for a logic. A link can be set to
be default active. This mean that the link will be activated as soon as the
application starts and also that the link can be automatically reactivated,
after a timeout, if manually deactivated.
* Improved the logic shutdown feature. Upon shutdown, any active module is
deactivated immediately and module activation is not allowed until
the logic is activated again. This for example means that if the logic is
shut down and an EchoLink connection comes in, that connection will be
rejected. Also, no other DTMF commands than the logic activation command
is allowed when the logic is shut down.
The command was also renamed to ONLINE_CMD since everything became more
logical. Calling it SHUTDOWN_CMD was a bit confusing. Should subcommand 1
mean that the logic is shut down or brought back online? Naming the command
ONLINE_CMD make everything clear: 1=online, 0=offline.
* Improved QSO recorder. There now is only one configuration variable,
QSO_RECORDER, in a logic configuration section. This configuration variable
is used to set the DTMF command and to point out a configuration section
where the rest of the QSO recorder configuration is specified.
The QSO recorder can now close a recording after a configurable recording
time and start a new one. The maximum time is specified using the MAX_TIME
config variable. The SOFT_TIME config variable is used to specify an
interval where the file will be closed on the first detected squelch close.
This will give more natural cuts between recordings.
It is now also possible to specify a maximum total size for all files in the
recording directory. This is done using the MAX_DIRSIZE config variable.
When the limit have been reached, the oldest file(s) will be deleted.
The DEFAULT_ACTIVE config variable is used to set the default activation
state of the QSO recorder. If set to 1, the recorder will be activated upon
SvxLink startup. If the TIMEOUT variable is set, the activation state will
return to the one set in DEFAULT_ACTIVE if manually activated/deactivated.
If less than MIN_TIME milliseconds of audio has been recorded when a file is
closed, the file will be deleted.
If the node is idle for more than QSO_TIMEOUT seconds, the file will be
The ENCODER_CMD variable makes it possible to run an external audio
encoder to compress the recordings.
* Added support for Squelch on GPIO. Use SQL_DET=GPIO and GPIO_SQL_PIN=gpio3
in your config for GPIO support.
Patch contributed by DG9OAA / Jonny.
* GPIO pins are now specified with the full name (e.g. gpio3) instead of with
just the pin number. This enables the use of any pin naming scheme.
* Improved pre- and de-emphasis filters. They were not good at all in the
previous relese. Now the filters should behave as expected. Also, the
filters have been designed to be each others complement so that they will
exactly cancel each other out.
* Now possible to specify DTMF_DEC_TYPE=NONE (or just comment it out) if no
DTMF decoder is required for a certain receiver. Also made it possible to
specify NONE for SEL5_DEC_TYPE to make them behave in the same way.
* Bugfix for the REPORT_CTCSS config variable. Depending on the locale
settings (e.g. the LC_NUMERIC environment variable) the wrong CTCSS
frequency could be announced.
* Bugfix: Setting DTMF_MUTING=0 did not remove the audio delay, which it
should do.
* Sound clips are now included for module MetarInfo.
1.2.0 -- 29 Jul 2013
* Added support for EchoLink proxy.
* ModuleEchoLink: Now possible to configure multiple servers for the directory
server. The servers will be tried in order until a working one is found.
The SERVER config variable has been replaced by the SERVERS config variable
which is a space separated list of servers. Host names that resolve
to multiple IP addresses, like, will also be correctly
handled so that each resolved IP address will be tried in order until a
working one is found.
* Added support for PTT on GPIO. This is for example good for embedded
systems like the Raspberry Pi where GPIO pins are readily available. Using
GPIO will eliminate the need for a USB to serial converter.
Patch contributed by K1FSY / David.
* ModuleEchoLink: New TCL function "is_receiving" that is called when a remote
EchoLink transmission is started or stopped. The default implementation will
send a beep over the local transmitter.
Patch from DL1HRC / Adi.
* Now possible to force the transmitter off using a DTMF command. The new
configuration variable SHUTDOWN_CMD is used in a logic configuration
section to set the command that should be used. The node will continue
to operate as usual with the only difference that the transmitter will
not be turned on for any event.
1.1.0 -- 06 Jun 2013
* Bugfixes in APRS statistcs.
* Modified DTMF-decoder's bandwidth to be more tolerant against voice audio
and to comply with the ITU-T Q.23 und Q.24 standards.
Patch from Steve / DH1DM.
* ModuleParrot: A new event handler has been added which make it possible to
play a sound, for example a roger beep, when the recorded audio has been
played back.
* ModuleEchoLink: Added an autoconnect feature where one EchoLink ID can be
set up for auto connection. SvxLink will try to connect whenever idle.
Original patch by Robbie / ON4SAX and Volodymyr / UR3QJW.
* 16kHz internal sampling frequency is now the default. This will increase
the theoretical audio bandwidth from 4kHz to 8kHz. In reality the frequency
response starts falling off after 5.5kHz due to filtering.
* Improved pre/de-emphasis filters.
* The QSO recorder now print out when being activated and deactivated.
* ModuleEchoLink: Now possible to disable use of Speex for EchoLink. This can
be of use when running SvxLink on a system that have a less powerful CPU.
New config variable: USE_GSM_ONLY. Have a look at the ModuleEchoLink (5)
manual page for more information.
Patch from Adi / DL1HRC.
* Improved error handling when reading the SQL_DELAY, SQL_START_DELAY and
SQL_TIMEOUT config variables.
* Bugfix: There were an audio stuttering problem at the end of the long ident
when using 16k internal sampling rate on slower hardware. This has now
been fixed.
* ModuleEchoLink: The language for remote announcements were always the
default. The DEFAULT_LANG config variable were ignored. Now it is possible
to set a DEFAULT_LANG config variable in the ModuleEchoLink.conf file which
only affect remote announcements.
* Improved printouts so that it's easier to see which part of SvxLink (logic,
module etc) that made the printout. Also added a printout for receiver and
transmitter creation.
* ModuleEchoLink: Listen only was falsely indicated when the EchoLink module
was remotely activated.
* Periodic identifications were missing now and then under some conditions.
This should be fixed now.
* The maximum QSO limit (MAX_QSOS) did not work for outgoing connections for
all use cases.
* Now possible to specify NONE for RX and TX in all configs. For example,
previously it was not possible to specify NONE for uplink RX or TX in
1.0.0 -- 08 Mar 2013
* Moved from sigc++ version 1.2 to version 2.
Patch contributed by Felix/WU8K.
* The CTCSS detector has been improved. It is now much faster and have
a lower false trigger rate in its default configuration. The mean
detection time is now about 200ms where it previously was about 450ms.
Previous configurations will have to be changed to adapt to the new
detector. Have a look in the manual page at the new configuration
configuration variable is obsolete.
* Now possible to set RTS and/or DTR to a static state by configuration
if needed. Have a look at the SERIAL_SET_PINS config variable for the
LocalRx and LocalTx sections in the svxlink.conf.5 manual page.
* Improved the SigLevTone detector using the same techniques that was
used to improve the CTCSS decoder.
* Now possible to block incoming Echolink connects from stations if they
connect too often. New config variable: CHECK_NR_CONNECTS.
Patch from Adi/DL1HRC, reworked by SM0SVX/Tobias.
* Bugfix in Metar information module: SvxLink could crash if two
requests were made in rapid succession.
* Now possible to have personal greetings on incoming EchoLink connections,
if desired. Some TCL coding is neccessary to enable it though.
* Improved voter implementation that can vote continously and not only at the
start of a transmission. By default it will check the signal strength for
all receivers once per second and switch to the strongest one if the
difference is large enough. New config variables: REVOTE_INTERVAL,
* ModuleEchoLink: The text "[listen only] is now prepended to the sysop name
if listen only mode is active.
* New feature "extended squelch hangtimne" added. It is now possible to
configure an extended squelch hangtime that is activated when the
signal strength fall below a given threshold.
* Now SvxLink can send APRS statistics about RX squelch open count,
TX on count, RX squelch open time and TX on time.
Patch from Adi / DL1HRC.
0.13.1 -- 27 Nov 2011
* Bugfix in RemoteTrx: Could crash when a Net uplink was disconnected.
0.13.0 -- 05 Nov 2011
* Added selective calling system Motorola QC2.
* Small bugfix in RepeaterLogic: TX down was not always correctly handled
on interference shutdown.
* Bugfix in ModuleEchoLink: The "last disconnected station" variable was
updated even if a connection was rejected. This affected the "connect
to the last disconnected station" command.
* New feature: 1750Hz tone call muting. Use the 1750_MUTING configuration
variable in a local receiver configuration section to enable this new
feature. This feature was contributed by Adi / DL1HRC.
* FAI alerts is now taken care of in the PropagationMonitor module.
Patch from Adi / DL1HRC.
* Improved handling of SQL_HANGTIME and SQL_DELAY when using CTCSS. Now
the ToneDetector itself handle the delays which is much better.
* Bugfix in RemoteTrx: Groups was not properly setup so remotetrx
could not access stuff that it should have right to do.
Patch contributed by Eren / TA1AET.
* TEP and F2 alerts are now taken care of in the PropagationMonitor module.
Patch from Adi / DL1HRC.
* Bugfix in the MUTE_TX_ON_RX feature in RemoteTrx. The PTT would activate
even if muted.
0.12.0 -- 14 May 2011
* Bugfix in the EchoLink module: Short callsign (<6 chars) was not handled
correctly in the APRS code.
* Added a QSO recorder feature that can record all traffic on the channel.
The QSO recorder can be turned on and off using a DTMF command.
New configuration variables: QSO_RECORDER_DIR and QSO_RECORDER_CMD.
* The voice mail module now store the messages as WAV files. Old messages
will have to be removed or converted into WAV files.
Old filename format: YYYYMMDD_hhmmss_UUU{.subj,.mesg}
New filename format: YYYYMMDD_hhmmss_UUU{_subj,_mesg}.wav
* Voice mail messages are now time limited to a maximum time. Default
is 10 seconds for the subject and two minutes for the message.
* Bugfix: The SQL_TIMEOUT function did not work as expected.
* The repeater_down TCL function now have a "reason" argument that
can be either "IDLE" or "SQL_FLAP_SUP".
* It is now possible to have a "local" subdirectory in the events.d
directory where the TCL files in the "local" directory will override
the TCL files in the events.d directory.
* Added a threshold to the tone detector so that it is less prone to
trigger on silence. This was a problem when using CTCSS squelch
on a radio operated with closed squelch.
* Implemented a signal level transmission mechanism based on multiple
tones, one for each signal level step, in the high audio frequency
spectrum (5.5 - 6.5kHz). This can be used for linking in remote
receivers via RF but still measure the signal strength at the
remote receiver site. To map the signal level to tone frequencies
on the remote receiver side, either RemoteTrx can be used or an
Atmel AVR ATmega8 can be used for a more compact solution. The AVR
microcontroller solution take a signal level voltage and converts
that to one of ten tones which should be overlayed on the link audio.
Note: Tone transmission in RemoteTrx will only work if it has been
compiled in 16kHz mode. This is due to the high tone frequencies used.
* New feature: Tell repeater users that are not identifying to
identify themselvs. The time to wait for an identification, after the
repeater has been activated, is set using the IDENT_NAG_TIMEOUT
configuration variable. A valid identification is considered to be
a transmission longer than the time set by the IDENT_NAG_MIN_TIME
configuration variable. We don't know if it's really an
identification but it's the best we can do.
* New feature: The repeater can be told to activate again if the squelch
openes within a specified time from repeater close. Use the new
configuration variable OPEN_ON_SQL_AFTER_RPT_CLOSE to set this up.
* The TX_CTCSS feature have now been extended so that CTCSS tone
can be transmitted if there is incoming traffic from another
logic core (LOGIC), a module (MODULE) or if an announcement
is being played (ANNOUNCEMENT). Previously there were only two
choices, to send CTCSS tone when the squelch was open
(repeater use) or to always do it.
* Bugfix: In the previous release all sound clips were converted
to WAV files instead of RAW files. When the EchoLink module
announce a conference name it looks for a file called
conf-conf_name.wav (e.g. conf-linux.wav). Previously it looked
for a file with a ".raw" file extension.
* New module, PropagationMonitor. The propagation monitor module
receive emails from (or and announce
propagation alerts on the air using voice messages.
* New module, MetarInfo. Get METAR (weather) information from
predefined ICAO locations and announce the information on the
air. Usually airports give them out. Module contributed by
DL1HRC / Adi.
* A hamming window was added to the tone detector and DTMF
decoder to improve out-of-band audio rejection. Patch
from DH1DM / Steve.
* Now possible to issue commands to the core and to other modules even
when another module is active. This is achieved by prefixing the
command with a "*". If for example the EchoLink module is active and
you want to check if there are any voice mails available the command
to issue could look like this: *3001#.
* The "connect by callsign" command changed from "*" to "6*".
* The help module can now accept commands when not active. It will read
back help for the given module ID. For example the command 01# will
play the help message for the parrot module.
* The parrot module can now accept commands when not active. The only
thing it can do is to read back the entered digits. For example the
command 1123# will make the parrot module say "one two three".
* The EchoLink module can now accept commands when not active. The only
command supported at the moment is "2", reading back the local node ID.
Example: 22#
* Now users can check if there are any voice mail messages
available without first logging in. Idea from Martin Burkhardt.
The command to use is <module id><user id> so if the module id for
voice mail is 3 and your user id is 001, the command to check if
there are any voice mails available is 3001#.
* The DTMF repeater module can now accept commands when not active. It
will play back the entered digits. For example the command 4123# will
play the 1, 2 and 3 DTMF digits.
* A macro command may now be specified without a module name. The colon
separator is still required though. If no module name is specified, the
command is sent in to the DTMF handler without activating a module first.
* It now is possible to include a hash mark in a macro command by
specifying 'H' in the command string. The 'H' will be translated to a '#'
by the command parser and not interpreted as "end of command". This can
be of use if you for example want to transmit a DTMF # using the
DTMF repeater module. The macro specification would look something like
this: 10=412345H#. When macro 10 is activated the DTMF sequence 12345#
will be transmitted.
* Now possible to link more than one logic core together. The LOGIC1 and
LOGIC2 configuration variables have been replaced with one configuration
variable called CONNECT_LOGICS.
* New config variable MUTE_TX_ON_RX for a NetUplink in RemoteTrx. This
will stop the transmitter from transmitting if the squelch is open
on the receiver.
* Support for selcall activated functions added. New config variables:
Logic/SEL5_MACRO_RANGE, RepeaterLogic/OPEN_ON_SEL5,
LocalRx/SEL5_TYPE and LocalRx/SEL5_DEC_TYPE. Have a look in the
svxlink.conf (5) manual page for more details.
* New module SelCallEnc. This module is used to send selective calling
sequences out on the frequency upon user request.
* One RemoteTrx application can now be used to run more than one remote
transceiver. Previously two RemoteTrx instances had to be run to
support two transceivers. This required two sound cards to be used.
Now only one sound card can be used to support two transceivers.
Due to this change the configuration have changed a bit. To get everything
right, backup your old remotetrx.conf configuration file and use the
new default configuration file to start over. Manually move configuration
values from your old configuration file to the new file, carefully
reading the updated manual page, remotetrx.conf (5), to get everythin
* Now possible to set a PTT hangtime for the local tx type. This can be good
to have on a link transmitter in combination with a tone squelch. When
the transmitter is ordered to stop transmitting, the tone is immediately
turned off, causing the squelch to close on the other side. Since the
transmitter keeps transmitting for a while, no squelch tail will be heard.
* The DTMF repeater module now wait until all announcements have been played
before retransmitting the digits.
* The EchoLink module can now use the Speex audio codec on connections
between two SvxLink nodes which improves the audio quality a lot.
Patch contributed by Steve / DH1DM.
* Added a fallback repeater mode to the RemoteTrx which can be used
if using it as both RX and TX for a repeater. If the network
connection is lost to the repeater, the RemoteTrx activates a very
basic repeater mode, essentially just connecting the RX to the TX.
Idea and original implementation by Adi / DL1HRC.
* Bugfix: The SQL_TIMEOUT feature did not work for all squelch detector types.
* Configuration variable VOX_LIMIT has been renamed to VOX_THRESH.
* SvxLink system global configuration files are now by default stored in
the /etc/svxlink directory.
* New directory layout for event scripts and sound clips. The main event
scripts are now stored in /usr/share/svxlink/events.d. The sound clip
files are now stored in /usr/share/svxlink/sounds/<langcode>. TCL
modules have been separated from the event handlers and are now stored
in /usr/share/svxlink/modules.d
* New configuration variable DEFAULT_LANG that points out the default
language to use.
* All TCL-modules have been split into two parts, the module logic and
the event handlers. This has been done to make the process of
creating and maintaining translations easier and also to make on the
fly language switching easier.
* The ModuleTcl API for TCL modules changed a bit so external TCL
modules have to be adapted to the new API. There are no big changes.
Just a number of functions that have changed their names. The names
have been changed from my_func_name to myFuncName.
* Bugfix in ModuleEchoLink: SvxLink would crash if no stations were
found when using the random connect feature.
* New squelch detector type: EVDEV. This squelch detector read events
from a /dev/input/eventX device node. This can for example be of use
if you have a USB audio device with some buttons on it. If you're in
luck, it generates events when the buttons are pressed.
* Better error handling for the DTMF command parser. Previously if for
example two modules were setup with the same module id, SvxLink would
just quit with a cryptic error message.
* Now possible to reject and/or accept outgoing EchoLink connections to
specified stations using regular expressions in the same way that incoming
connections can be limited. New configuration variables: REJECT_OUTGOING
* Changed the name of some configuration variables in the EchoLink module
* Bugfix: Playing sound clips in the startup TCL event handler did not work.
0.11.0 -- 26 Apr 2009
* The SvxLink internal sample rate is now configurable by a compile time
define (INTERNAL_SAMPLE_RATE in makefile.cfg).
* The effects volume is now only lowered as long as there are traffic
coming into the logic core. Previously, the volume was lowered even
after, for example, the squelch had closed. Patch contributed by
Steve / DH1DM.
* New DTMF decoder derived from the SpanDSP code. Contribution by
Steve / DH1DM.
* New tone detector implementation. Contribution by Steve / DH1DM.
* Increased 1750Hz tone burst detector bandwidth from 25 to 50Hz.
Steve / DH1DM.
* Steve also contributed a couple of other improvements, bugfixes
and workarounds.
* Bugfix in CW.tcl: The CW code for 'L' was incorrectly mapped to '..-.'.
* Two new command line options added to SvxLink Server and RemoteTrx:
--pidfile and --runasuser.
* The detection bandwidth for CTCSS repeater open have been narrowed
down from 8 Hz to 4 Hz.
* Improved the RemoteTrx protocol: HMAC-SHA1 authentication, security
checks and most important, audio compression. It is not compatible
with the old protocol.
The authentication code also require a new dependency: libgcrypt.
* Added an audio pacer for message playback so that the audio output
fifo will not be filled up when playing messages. If it fills up,
this will cause a delay for other audio.
* Bugfix: The repeater logic hung when using the NO_REPEAT option.
* Added a squelch timeout for receivers so that a faulty receiver cannot
block the system indefinitly. Use the SQL_TIMEOUT configuration variable
to set this up.
* RepeaterLogic: The reason for repeater activation is now given in the
repeater_up event handler function. This make it possible to implement
different behavior depending on how the repeater was activated.
* Patch from DH1DM: Supressing roger beep after periodic id:s in
* Bugfix: Log lines were not flushed out to the log file immediately since
stdout was block buffered by default. Now it's forced to line buffered
mode instead.
* Now skipping characters we don't know how to spell in the spellWord TCL
* Bugfix: It was not possible to chain two voters together.
* Bugfix: SvxLink would hang if an audio clip was missing.
* APRS and EchoLink location info (link status page) functionality in
ModuleEchoLink added, contributed by DH1DM/Steve and DL1HRC/Adi.
There is a new configuration section, "LocationInfo" for this
and a new config variable LOCATION_INFO in the ModuleEchoLink.conf
configuration file.
* SvxLink can now read WAV files. However, only 8k sampling rate,
mono, 16 bit signed formated files are supported.
* The config file reader did not enforce a specific file extension which
could cause strange effects when using an editor that save backup files
in the same directory as the config files reside. Now all, except the
main config file, must have the extension ".conf".
0.10.1 -- 30 Jul 2008
* Bugfix: Again the NO_REPEAT config variable did not work. It was
simply ignored.
* Bugfix: The "transmit" function was never called in Logic.tcl.
This probably caused the IDENT_ONLY_AFTER_TX feature not to work.
* Bugfix: The squelchOpen function was not called in a RepeaterLogic when
the repeater opened if using OPEN_SQL_FLANK=OPEN.
* Added TCL functions for sending selcall sequences. Code contributed by
Adi / DL1HRC. Have a look at SelCall.tcl for usage instructions.
* New TX type, Multi, added to support multiple transmitters for one logic.
* Now support TCL 8.5.
0.10.0 -- 18 May 2008
got a division by zero error.
* Bugfix: The NO_REPEAT config variable did not work as expected. Audio
was not only being cut off from being retransmitted. No modules got
any audio either.
* Internal audio handling rewritten. The new audio pipe infrastructure
is now used everywhere in SvxLink.
* Bugfix in ModuleEchoLink: The DESCRIPTION config variable wasn't
used at all so no info message was sent upon connect.
* Now mixing sound effects with "traffic audio" (received repeater
audio, audio from modules (e.g. EchoLink) or audio from logic
* Added support for the DTMF decoder on S54S / Aleks interface board.
* Lower audio latency.
* Audio is now transported between logic links and modules.
* RepeaterLogic: Identifications are now also sent when the
repeater is up.
* The volume of sound effects and announcements are now lowered
when there are other traffic that should be sent out
(received repeater audio, module audio or audio from
logic links). There are two new configuration variables
to control this behaviour: FX_GAIN_NORMAL and FX_GAIN_LOW.
* New configuration variable for a simplex logic: MUTE_RX_ON_TX.
* Bugfix in ModuleEchoLink: When initiating an outgoing connection it was
possible to deactivate the EchoLink module before the connection was
established. This could especially happen if double detecting #.
* Bugfix in ModuleEchoLink: It was not possible to establish multiple
outgoing connections in one command. In fact, entering multiple
stations in one command would cause a memory leak.
* Implemented remote TX. The new application "remotetrx" now handle
both remote transmitters and receivers. The old application "remoterx"
has been removed.
* Implemented a simple TX uplink for the remotetrx application. This
make it possible to have remote receivers that is linked up to the
repeater site on an RF channel.
* Now possible to use left/right stereo channels as two mono channels.
Which channel to use is chosen by the new configuration variable
AUDIO_CHANNEL that must be set for RX and TX configuration sections.
* Changed the name of RX config variable VOX_START_DELAY to SQL_START_DELAY.
It is now possible to use the squelch start delay for all squelch types.
* Added support for running the sound card in either of 8, 16 or 48 kHz
sampling rate. Even though SvxLink internally still use 8kHz sampling
rate, it improves the audio quality some what. Especially there is a
difference when going from 8 to 16kHz since the filters can look
quite bad at 8kHz. Some audio boards simply work best at 48kHz.
New configuration variable GLOBAL/CARD_SAMPLE_RATE added to set this up.
* Added a signal level based squelch type. Set SQL_DET to SIGLEV to
use the new squelch type. Configuration variables SIGLEV_OPEN_THRESH
and SIGLEV_CLOSE_THRESH will control at which levels the squelch will
open and close. To use this squelch type, the signal level detector
must have been calibrated by setting up SIGLEV_SLOPE and SIGLEV_OFFSET.
Also, since the detector is not perfect you probably need to set
SQL_HANGTIME to a couple of hundred milliseconds. If using a voter,
SQL_DELAY might have to be setup to get reliable signal level readings.
A value of 40 seem to work fine.
* Implemented an "activate module on long command" feature. For example,
this feature can be used to automatically activate the EchoLink module
if the user types in a command longer than, lets say, four digits. This
make it easier for users that are not used to the SvxLink command
structure to establish an EchoLink connection.
New config variable: ACTIVATE_MODULE_ON_LONG_CMD.
* Macros behave a little bit different now. The macro digits are now sent
back into the logic core, digit by digit, as though they were received
from the DTMF decoder. This mean that all macro commands have to be
ended with a number sign to be executed.
* New voter configuration variable BUFFER_LENGTH to set how much audio,
in milliseconds, should be buffered during the voting delay.
Previously, the buffer length was adjusted to compensate for the
voting delay. This is not necessary in cases where only a short
voting delay is used (a couple of hundred milliseconds). It just adds
latency to the audio which is especially noticable on a repeater.
0.9.0 -- 02 Jan 2008
* It is now possible to spcify NONE for the PTT_PORT config variable if
no hardware PTT is required.
* Bugfix: It was not possible to turn ID off completely. It would always
ID at 12 AM.
* Improved the DTMF decoder. Now using a third party DTMF decoder from the
spandsp library. This mean that SvxLink now depend on this library to
work so it must be installed.
* Lowered the amplitude of the repeater idle sound.
* Now possible to set parameters for outgoing DTMF digits, typically sent
using the DTMF Repeater module. New config variables in the tx section:
* Bugfix: Now suppressing first roger beep when opening repeater on squelch up.
* Bugfix: Audio is now not sent to modules and other cores when the repeater
is down.
* Bugfix in ModuleDtmfRepeater: One of the frequencies for DTMF tone sending
was wrong (1366Hz instead of 1336Hz).
* Bugfix in ModuleEchoLink: The config variables DROP, REJECT and ACCEPT
was not properly initialized so that when they were not set in the
config file, SvxLink would behave unpredictably.
* SvxLink can now use GSM encoded sound clips.
* SvxLink now also run on bigendian systems.
* Fixed some warnings that appeared with gcc 4.2.
* Now linking against libtcl8.4 instead of libtcl. That seem to be
more standard.
* Now compile under CentOS 5.0, Fedora 8, Ubuntu 7.10 and Gentoo.
0.8.0 -- 15 Apr 2007
* Bugfix in ModuleEchoLink: The outgoing greeting message would be
mixed with incoming EchoLink traffic instead of muting the EchoLink
traffic until the greeting message had been played.
* Bugfix in ModuleEchoLink: A crash could occur if the remote station sent
some audio directly after a local diconnect.
* ModuleEchoLink: Better handling of QSO objects that are in the DISCONNECTED
* ModuleTclVoiceMail: Voice mails are now stored in
* Added a logrotate config file: /etc/logrotate.d/svxlink. It rotates the
logfile /var/log/svxlink.
* Added a startup script /etc/init.d/svxlink that can be used to start
the SvxLink server at boot. It also have a configuration file:
* Now possible to point out a configuration file on the command line using
the --config command line option.
* Now also looking for the configuration file at $HOME/.svxlink/svxlink.conf
* New configuration variable GLOBAL/CFG_DIR. It should point out a directory
(e.g. /etc/svxlink.d) where additional configuration files can be found.
This will make it possible for each module to have its own configuration
file. Good for modularity and it's easier to install third party modules.
* Bugfix: The stdin file descriptor was used after it had been closed.
* Catching SIGTERM and SIGINT. A message is written to stdout/logfile.
* Implemented CTCSS tone on transmit. New configuration variables are
Tx1/CTCSS_FQ, Tx1/CTCSS_LEVEL, SimplexLogic/TX_CTCSS and
* Now possible to set a squelch delay which can be good in some odd
situations. Configuration variable: Rx1/SQL_DELAY.
* Improved the CTCSS squelch detector. It is now possible to have a
setup with open squelch. It is also more resistant to QRM.
The configuration variable CTCSS_THRESH set the squelch threshold.
The configuration variable CTCSS_FQ now understand fractions so we
can write "136.5" instead of the approximation "136".
* Added a signal strength detector that can be used with the voter.
* Added a de-emphasis filter on received audio. This can be good if
you connect to the receiver via a 9k6 packet radio connector.
The audio must then be de-emphasized to not sound "thin".
The filter can be turned on/off by the configuration variable
DEEMPHASIS in the receiver configuration section.
* Added a pre-emphasis filter on transmitted audio. This can be good if
you connect to the transmitter via a 9k6 packet radio connector.
The audio must then be pre-emphasized to not sound "thick".
The filter can be turned on/off by the configuration variable
PREEMPHASIS in the transmitter configuration section.
* Added DTMF muting. Use the MUTE_DTMF configuration variable in an rx
section to enable/disable this feature.
* Added squelch tail elimination. This is good if running with open squelch.
Use the SQL_TAIL_ELIM configuration variable in an rx section to
enable/disable this feature.
* DTMF tone duration is now available. It is not used at the moment but it
would make it possible to implement LiTZ or other extra functions that
depend on DTMF tone length.
* Added a pre-amplifier in the RX frontend. This can be used as a last resort
if enough gain can't be achieved on the analogue side.
* ModuleEchoLink: New DTMF command "2" added that will play back the local
node ID. This is useful if you are on a trip and find a SvxLink node that
you want to know the ID of.
* New module DtmfRepeater. This module can be used as a DTMF pass-through
feature on a repeater logic where DTMF muting has been enabled.
* Added a peak detector in the receiver so that it is easier to adjust
the input volume. It is enabled by setting the PEAK_METER variable in
the receiver configuration section. Start SvxLink and open the squelch on
the receiver so that only noise is available on the input. Adjust the input
volume until you see messages printed about distorsion. Then lower the
volume until there are no more messages.
* Now using libsigc++ version 1.2 instead of the old and outdated 1.0.
* Manual pages added for svxlink, remoterx, all plugins and
configuration files.
* SvxLink now announce the current time at manual identification.
* Implemented CW sending code in the TCL event scripts. Have a look at the
documentation in CW.tcl.
* ModuleEchoLink: New configuration variables DROP, REJECT and ACCEPT added
to make it possible to filter on callsign which stations are allowed
to connect.
* RepeaterLogic: New configuration variable OPEN_SQL_FLANK which can be set
to either OPEN or CLOSE to control if the repeater should activate on
squelch open or squelch close for OPEN_ON_SQL and OPEN_ON_CTCSS.
* ModuleEchoLink: New feature "listen only" added. Using command 51 one can
activate a mode where SvxLink will not transmit received audio to remote
EchoLink stations. Neither locally received nor remotely received audio
will be sent. Deactivate using 50.
* ModuleEchoLink: New feature "random connect" added. Use 31 to connect to
a random link or repeater. Use 32 to connect to a random conference.
* ModuleEchoLink: New feature "reconnect to last disconnected". Use command
4 to reconnect to the station that was the last one to disconnect.
* Now possible to process received DTMF digits and commands in the logic
core TCL event scripts. New event functions: dtmf_digit_received and
* Added files to set full access permissions on the serial and OSS audio
devices: /etc/udev/rules.d/10-svxlink.rules and
0.7.0 -- 02 Dec 2005
* Bugfix: An uninitialized variable caused svxlink to crash. This bug
showed itself when using the TclVoiceMail module.
* The PTT_PIN configuration variable now accept multiple pins. Also, it
is now possible to specify reverse polarity if needed.
Examples: RTS, DTRRTS, !DTR!RTS or even DTR!RTS.
* A timestamp is now printed infront of each row in the logfile. The format
of the timestamp is controlled by the new configuration variable
GLOBAL/TIMESTAMP_FORMAT. Some formats are affected by the setting of the
LC_TIME, LC_ALL and LANG environment variables. Have a look at the manual
page for "strftime" for how to construct the format string.
The log file will be reopened if svxlink is sent the SIGHUP UNIX signal.
This can be used when setting up logrotate to automatically rotate the
SvxLink logs.
* Bugfix in ModuleParrot: The module timeout was not handled correctly.
The timeout timer was reset at squelch open but then it started to
count down directly instead of waiting until the squelch was closed.
* It is now possible to use DTMF * as part of a command. Previously it
was only used for triggering an identification. The only difference should
be that when typing * on the console it must be followed by a # for the
identification to be executed. When * is received on the radio channel,
the identification is executed on squelch close. No # needed here.
* ModuleEchoLink: A new "connect by call" feature has been added. This can
be used if the node number is unknown or if you want to search for
stations starting with a specific prefix. Callsigns are mapped to digits
by using the following method: ABC=2, DEF=3, GHI=4, JKL=5, MNO=6, PQRS=7,
TUV=8, WXYZ=9. The same mapping as on many phones. Letters are mapped to its
corresponding digit. The star character is ignored and all other characters
are mapped to digit 1.
A searh command start with * and then the callsign code is entered. So if
you want to connect to SM3SVX-L you should enter "*76378915#". Since the
codes are not unique a list of search hits will be presented to the user.
If the entered code ends with *, a wildcard search will be performed. So
if you want to search for all stations starting with SM3 you enter
* ModuleTclVoiceMail: This module now can send an e-mail to the recepient
when a new voice mail has arrived. The e-mail address to use is
configured in the TclVoiceMail.conf file for each user.
0.6.0 -- 09 Oct 2005
* New vox configuration variable VOX_START_DELAY. Specify a time in
milliseconds after the receiver has been unmuted until the vox starts
to operate. In a simplex logic configuration the receiver is muted
(internally in SvxLink) when the transmitter is activated and unmuted
when the transmitter is turned off. The vox start delay can be used
if the transceiver makes a noise when the PTT is released. This noise
would otherwise trigger the vox.
* New module "Tcl" added. This module does not do anything in
itself. It is just a wrapper that calls TCL functions on different
events (squelch open/close, DTMF commands received etc). This makes
it possible to write new modules in TCL which can be a little bit
more convenient than doing it in C++ directly.
* New module "TclVoiceMail". This module is implemented using the new Tcl
module. I wrote it to test the Tcl module. It is a quite simplistic
voice mail system but it demonstrates what you can do with modules
written in TCL.
* Added a template for writing modules in C++. It can be found in
svxlink/modules/template in the source code tree.
* Removed configuration variable IDENT_INTERVAL and replaced it with
Identification is now entirely handled in TCL.
0.5.0 -- 14 Aug 2005
* Added a highpass filter on the receiver side to filter out incoming
CTCSS tones.
* The repeater logic now opens on squelch close rather than squelch
open. This is so that the first announcement will not be missed
by the opener.
* Added a more flexible subsystem for handling events that should
be announced on the air (repeater_up, repeater_down, identify etc).
Exactly what should be done when an event occurs is specified in
a TCL script. This make the event system very flexible. It will
be easier to adapt SvxLink to other languages where the order
of words is not the same as in english. It would also be possible
to use a speech synthesizer which generate the sounds on the fly.
* Now four different ways of activating the repeater is supported:
1750 Hz tone burst, CTCSS, DTMF and squelch controlled. The three
types are configured individually using the configuration
variables OPEN_ON_1750, OPEN_ON_CTCSS, OPEN_ON_DTMF and
* A simple Voter has been added so that multiple receivers can
be used with one logic. The voter works on a first come first
serve basis. The receiver that signals squelch open first will
be the receiver that is used. The other receivers are muted.
* Made some changes to the receiver config section:
- VOX_HANGTIME renamed to SQL_HANGTIME and it now affects all squelch
- SQL_UP_DET and SQL_DOWN_DET merged into one config variable SQL_DET.
- VOX_FILER_DEPTH is now given in milliseconds instead of in number
of samples.
* It is now possible to link two logic cores together. This can for example
be used to link a repeater to another repeater via a link tranceiver.
Another use is if you have two repeater logics defined (e.g. 2m and 70cm)
you can link those together. The link is activated/deactivated on command.
* Now possible to use the repeater controller with external repeater
hardware that repeats the audio directly. Normally SvxLink plays back
the audio that is sampled but by setting NO_REPEAT=1 in the configuration
file this is prohibited.
0.4.0 -- 25 Mar 2005
* Bugfix: Crash when the parrot module was active and an echolink
connection were coming in.
* Applied patch from Eric Jacobson: Only ident if the link has been
transmitting. New config variable: IDENT_ONLY_AFTER_TX.
* Added roger beep for SimplexLogic.
* ModuleParrot: The TX hang bug might now have been fixed. I really hope so...
* ModuleEchoLink: Now not possible to initiate a connection to own node.
* ModuleEchoLink: Added a link idle timeout timer.
* ModuleEchoLink: Now reports the number of connected stations when an
identification is manually triggered by a "*".
* Now announcing the CTCSS frequency at manual identification if
* ModuleParrot bugfix: Leading zeros were skipped when reading back
entered DTMF digits.
* ModuleEchoLink bugfix: Now and then right after a disconnection, the link
was automagically reestablished. Incoming connections are now not allowed
from the disconnected station for five seconds.
* Added a simple macro system to be able to assign short command strings
to longer commands. See documentation for the MACROS section in the
configuration file description.
* Now possible to use an external hardware squelch indicator via a
serial port. Usable pins are CTS, DSR, DCD and RI.
* ModuleEchoLink: New command, "1", added. When giving this command,
all connected stations callsigns will be read back.
* The Repeater logic is now nice and stable. However, there are some
audio issues that need to be fixed. There is some noise after playing
sound clips that is not nice to listen to. The cause for this may be
Alsa OSS emulation problems. I'll switch to native Alsa to see if that
might help. Also, some times (not very often) the repeated audio get
chopped up.
0.3.0 -- 26 Sep 2004
* Added anti flutter to the DTMF detection code. The anti flutter code is
activated by prefixing all DTMF commands with the "A" character. When the
feature is activated, two or more of the same digit in a row are ignored.
To input more than one of the same digit in a row, use the repetition
character "B". To end the command, use the "C" character. The anti flutter
code is only active for one command. That is, until "C" is received.
Example: A112B3C = 1223, AC = empty command = #.
* Bugfix in the Parrot module: The module timeout timer kept running after
the module had been manually deactivated. This caused svxlink to crash when
the timeout occured.
* ModuleEchoLink: Added support for multiple echolink connections. Two new
configuration variable was added to support this: MAX_CONNECTIONS and
* ModuleEchoLink: Now sending an audio reject message if the connection
was rejected.
* Added command line parsing and two command line switches. The first is the
--daemon switch which make the SvxLink server run in the background.
The second is --logfile which make it possible to redirect stdout and
stderr to a file.
* ModuleEchoLink: Improved directory list handling.
* Bugfix: The TX would hang some times.
* Bugfix: Audio transmitted by modules had precendence over local messages
which caused interrupted announcements.
* Bugfix: The TX timeout caused some problems.
* Added an option to execute DTMF commands at squelch close in addition to
when # is pressed (XyzLogic/EXEC_CMD_ON_SQL_CLOSE). However, the DTMF
decoder will probably have to be improved to not false trigger for this
feature to be really useful.
* ModuleParrot: New configuration option REPEAT_DELAY that makes it possible
to wait a while after the squelch closes before playing back the recorded
0.2.0 -- 27 May 2004
* A SvxLink server node can now act as a repeater system.
* Added periodic identification.
* Improved sound clips.
* Improved DTMF decoding algorithm.
* ModuleEchoLink: Now printing out incoming chat messages.
* ModuleEchoLink: Now only printing out incoming info messages if it
differs from the last message received.
* CTCSS squelch implemented. Usage of this is recommended over using
the vox squelch. Make sure that your receiver let the CTCSS frequencies
* Fixed the Parrot module so that the whole FIFO is played. Previously
only 15 seconds was played.
* Now possible to set the length of the Parrot module FIFO in the config
file. That is, it is now possible to set the maximum recording length.
* ModuleEchoLink: "Connecting to <callsign>" is now announced before
actually connecting.
0.1.1 -- 16 Apr 2004
* Bugfix: Incoming connections wasn't properly taken care of in ModuleEchoLink.
0.1.0 -- 04 Apr 2004
* Initial revision
* New application: svxlink, a multi purpose voice services frontend.
* New module: A Help module for svxlink.
* New module: A Parrot module for svxlink that echos back everything you say.
* New module: An EchoLink module for svxlink to handle EchoLink connections.