Commit Graph

3464 Commits

Author SHA1 Message Date
ua1zbe c5ee49d7fe Изменил(а) на 'README.md' 2023-02-04 15:43:17 +03:00
ua1zbe 8cff94c3d1 Изменил(а) на 'README.md' 2023-02-04 15:42:15 +03:00
ua1zbe 7a65b8006c Изменил(а) на 'README.md' 2023-02-04 15:37:36 +03:00
ua1zbe b8530c737e Изменил(а) на 'README.md' 2023-02-04 15:36:34 +03:00
ua1zbe 7f96165f8a Изменил(а) на 'README.md' 2023-02-04 15:18:16 +03:00
Tobias Blomberg 574c05137d Bugfix in DNS lookup code
- Enlarge message buffer to support larger DNS answers
- Correct usage of function strerror_r to print error messages
2023-01-02 22:26:22 +01:00
Tobias Blomberg 690a3c29a8 Merge PR #437: pjSipLogic
This merge introduces support for SIP calling. Contribution by
DL1HRC / Adi.

The build is enabled by using the -DWITH_CONTRIB_SIP_LOGIC=ON CMake
command line option.
2023-01-02 19:01:53 +01:00
Tobias Blomberg a96d1e071a Update copyright year 2023-01-02 13:17:04 +01:00
Tobias Blomberg feec144a51 Bugfix in SvxReflector: Invalid client id
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.
2023-01-01 18:48:10 +01:00
Tobias Blomberg 22e17a967a Build SvxLink contribs last 2022-08-26 06:25:44 +02:00
Tobias Blomberg 8817430d1d Improve logic core plugin docs 2022-08-25 23:13:56 +02:00
Tobias Blomberg 95ab8280e8 Comment out TIMEOUT in Tx1 section for default config
It was confusing for some that the transmitter stop working after five
minutes by default config. Now it have to be explicitly enabled.
2022-08-25 14:40:03 +02:00
Tobias Blomberg 870b618c82 Refactor logic core code to better support contributions
The code in this commit will refactor the logic core code to better
support code contributed from thirdparty developers.

- Logic cores are now loaded as plugins instead of being directly
  linked.
- Custom TCL commands can be added to the EventHandler which is only
  valid in one logic core.
- Manual pages can now be build outside of the doc/man subdirectory.
2022-08-24 13:50:45 +02:00
Tobias Blomberg e7e69b0e70 Add announcement for reflector connection status
If the connection to the reflector is not up when a talk group is
locally activated, an announcemnt will tell the user that the reflector
is disconnected. The connection status will also be announced for the
"*" ReflectorLogic command.

Fixes #592
2022-08-20 14:32:24 +02:00
Tobias Blomberg 7ebd9ed530 Improve Async::StateMachine stability
Fixes #589 issue with ReflectorLogic, no reconnect after IP failure.
2022-08-04 09:02:17 +02:00
Tobias Blomberg c0266909f6 Use std::bind instead of std::bind1st and std::bind2nd 2022-05-27 17:33:44 +02:00
Tobias Blomberg 0a48e9ee8f Look for talk_group-<tg> file when announcing talkgroups 2022-05-21 16:21:48 +02:00
Tobias Blomberg a7bfdaeb19 Fix misspelling of word "distortion"
Fixes #580
2022-04-30 14:11:13 +02:00
Tobias Blomberg 70d8cf69cc Fix faulty comment 2022-04-24 15:46:42 +02:00
Tobias Blomberg 6cc6b0bdf2 Improved backgroup connect strategy in Async::TcpPrioClient
Reconnects that run in the backgrund when an Async::TcpPrioClient is
connected to a lower priority host is now tried once every minute on
second 00. This make it highly likely that all nodes reconnect to a
higher prio node at the same time when it comes online.
2022-04-24 14:49:25 +02:00
Tobias Blomberg a33e1ae545 Fix dangerous and probably faulty DNS lookup code 2022-04-24 11:45:49 +02:00
Tobias Blomberg f5267f4c8a Fix assertion when connecting to RemoteTrx 2022-04-14 20:02:43 +02:00
Tobias Blomberg 45b2bd4bfb Fix bad error message in DNS lookup code 2022-04-13 18:25:10 +02:00
Tobias Blomberg 6345dad203 Many smaller networking code fixes
A number of smaller networking code fixes have been applied to both the
Async code and the Echolib code.
2022-04-12 12:57:52 +02:00
Tobias Blomberg 1114ac3cec Host lookups did not work for hosts file 2022-04-03 20:50:16 +02:00
Tobias Blomberg 1ae3b521fb Fix Echolink DNS lookup bug 2022-03-31 22:42:18 +02:00
Tobias Blomberg b47fcfb0fb ReflectorLogic: Client side redundancy added
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.
2022-03-27 21:20:46 +02:00
Tobias Blomberg 4161a43cbe Fix CMakeLists for svxreflector-status rename 2022-03-26 19:43:16 +01:00
Tobias Blomberg 585ba94c08 svxreflector-status script renamed
The svxreflector_status.py script was renamed to svxreflector-status.
Also improved error handling plus bugfixes.
2022-03-26 14:50:23 +01:00
Tobias Blomberg 0ad64767a4 isTalker node info bugfix
Don't show when SHOW_ACTIVITY=0
2022-03-26 14:07:55 +01:00
Tobias Blomberg 5f8aa8b967 Add dynamic node info restrictedTG
The JSON restrictedTG boolean node info variable is set to true if the
talk group have an ALLOW specification.
2022-03-26 13:03:31 +01:00
Tobias Blomberg 6f65df27bc New reflector server TG config: SHOW_ACTIVITY 2022-03-25 23:27:10 +01:00
Tobias Blomberg 3319f37112 Update h/cpp template files 2022-03-19 13:20:18 +01:00
Tobias Blomberg 2b6e20e688 Fix SvxLink crash introduced in recent commit 2022-03-18 12:03:58 +01:00
Tobias Blomberg 4d35cb364b New TCL functions for handling remote events in linked logics
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.
2022-03-18 00:14:51 +01:00
Tobias Blomberg 6ca35154ac Fix possible memory leaks 2022-03-17 23:21:48 +01:00
Tobias Blomberg 8c50d40f93 Update copyright year for binaries 2022-02-06 14:12:57 +01:00
Tobias Blomberg 449537598b ReflectorLogic: Don't allow empty config variables
The following configuration variables are not allowed to be set to an
empty string: HOST, CALLSIGN, AUTH_KEY and EVENT_HANDLER.
2022-01-27 19:47:50 +01:00
Tobias Blomberg 4c4218df51 Reflector: Set TG#0 on selection of restricted TG 2022-01-22 18:19:43 +01:00
Tobias Blomberg df6de421ae Bugfix: Unlogical tg activation when OPEN_SQL_FLANK=CLOSE
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.
2022-01-15 20:55:32 +01:00
Tobias Blomberg 4ce8e7893d ReflectorLogic: New config variable VERBOSE
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.
2022-01-14 18:17:04 +01:00
Tobias Blomberg efc4e807ce Improve CTCSS_DEBUG printouts
- Fill using _ for better readability
- Indicate if the detector is active or not
2022-01-10 21:02:41 +01:00
Tobias Blomberg d5cd8ce81b Implement support for multitone CTCSS SNR offset
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.
2022-01-09 11:00:18 +01:00
Tobias Blomberg 68a653ef9a Don't run the genpw utility in debug mode 2022-01-07 17:00:49 +01:00
Tobias Blomberg 2512939aff CTCSS and tone detector improvments
- 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
2022-01-07 15:21:45 +01:00
Tobias Blomberg e06b87de3d Fix bug in SvxReflector causing crash on restricted TG monitoring
The SvxReflector would sometimes crash when a node tried to set up a
monitor on a restricted talkgroup.
2021-08-13 18:48:50 +02:00
Tobias Blomberg 0bc9506f3a 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.

Closes #538
2021-08-13 14:14:53 +02:00
Tobias Blomberg 4d2ebbd5ab Zerofill for AudioDeviceUDP
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.
2021-08-04 08:00:41 +02:00
Tobias Blomberg 084b8a5e9f Ensure that obsolete Qtel documentation will build 2021-06-27 13:38:26 +02:00
Bill McGonigle 2de02b257f Update qtel man page for current documentation location. 2021-06-27 13:37:51 +02:00