Bryan Biedenkapp
083bfd9bdb
implement support to send network grant demand TDU for conventional stations; bump copyright date to 2024;
2 years ago
Bryan Biedenkapp
b343ca7efa
don't attempt to send ADJ_STS_BCAST if the modem is busy;
2 years ago
Bryan Biedenkapp
999159c3af
start ADJ_STS_BCAST announce timer regardless of whether the CC is running or not;
2 years ago
Bryan Biedenkapp
d1b2b19c08
refactor how we clock ADJ_STS_BCAST; correct wrongly used site data for ADJ_STS_BCAST;
2 years ago
Bryan Biedenkapp
01dfa15173
correct some issues with NXDN channel identification and some incorrect restriction calculations;
2 years ago
Bryan Biedenkapp
234279fe80
fix incorrect LC reference;
2 years ago
Bryan Biedenkapp
fe3d0b7e35
add command line argument to override enable modem debug (faster then continually modifying the YAML config file);
2 years ago
Bryan Biedenkapp
243ad6ce0c
increase NXDN voice call verbosity; correct incorrectly calculated data offset for NXDN voice data;
2 years ago
Bryan Biedenkapp
7c674daeaf
fix buffer overflow for certain unsupported configurations (the log message was irritating me so I fixed this);
2 years ago
Bryan Biedenkapp
1bda15cd85
add some extra compilable debug logging information;
2 years ago
Bryan Biedenkapp
12edb913b4
correct issue with AMBEFEC not properly calculating FEC for NXDN; correct buffer offset issue for P25 and NXDN;
2 years ago
Bryan Biedenkapp
d40960bba5
cleanup and refactor how TSBK, TDULC, CSBK buffers are handled (optimization to buffer sizes); fix use of magic numbers in NXDN RCCH handlers;
2 years ago
Bryan Biedenkapp
58780d9e3d
cover more potential exception states withn the REST service;
2 years ago
Bryan Biedenkapp
1d498fc48f
transmit P_CLEAR at the end of a TSCC call;
2 years ago
Bryan Biedenkapp
8c083a7bee
don't issue a P_GRANT immediately after TSCC payload activation, instead wait 250ms and then issue P_GRANT, then if traffic has not started issue P_GRANT every 500ms until either traffic starts or the payload activation is cleared;
2 years ago
Bryan Biedenkapp
99e56b338a
properly catch CSBK_MAINT;
2 years ago
Bryan Biedenkapp
23ff7a50d4
ensure late entry bursts are flagged as such;
2 years ago
Bryan Biedenkapp
262eb1c76c
store srcId from DMR payload channel activation; implement running timer to retry payload activation until either traffic starts or the payload activation is cleared;
2 years ago
Bryan Biedenkapp
9da279ac88
reduce number of P_GRANTs; ensure late entry is properly transmitting;
2 years ago
Bryan Biedenkapp
d76bb77966
file cleanup;
2 years ago
Bryan Biedenkapp
b3c803e918
implement fix for CSBK verbosity not being set; during CC stream hide CSBK/TSBK/RCCH verbosity; implement CSBKO_MAINT CSBK; correct missing behavior to perform DMR payload activation; add CRC handling for MBC;
2 years ago
Justin Richards
a64dfa38fd
Adding CORS headers to the REST api ( #42 )
...
* Adding CORS headers to default replies
* adding CORS headers and set payload OK for options method
2 years ago
Bryan Biedenkapp
a4d6857922
even tho the timestamp field is not used by DVM, lets ensure we roll the timestamp so the difference calculation never results in a rollover;
2 years ago
Bryan Biedenkapp
8bbcea2c6d
force redundant grant transmit in certain situations;
2 years ago
Bryan Biedenkapp
4aaf9e5494
readd an extremely undocumented feature, that no one ever should use, for a close friend who asked nicely;
2 years ago
Bryan Biedenkapp
41e4d7fccf
refactor CC/VC notification log messages;
2 years ago
Bryan Biedenkapp
685ea4df14
implement partial fix for trunked UU calls (calls can be made now, but operation is still glitchy);
2 years ago
Bryan Biedenkapp
26981f1345
deprecate and remove Voice On Control support (this commit marks end of support for VOC operation); make buffer overflow errors more apparent in the log; increase verbosity of CC notification logging messages;
2 years ago
Bryan Biedenkapp
b76334dbb4
ugh -- I missed the broadcast timer too, oops;
2 years ago
Bryan Biedenkapp
d107bdd679
ensure CW doesn't go out of the channel is an NXDN control channel;
2 years ago
Bryan Biedenkapp
e045f0d0f0
bump Debian package version in CMakeLists;
2 years ago
Bryan Biedenkapp
addf751999
remove threading for protocol readers (this didn't make sense, as the data for Rx is queued by the Modem class, so reading can't really happen till after a modem clock anyway);
2 years ago
Bryan Biedenkapp
362898a6e0
correct typo;
2 years ago
Bryan Biedenkapp
07084269aa
add support to textually name threads;
2 years ago
Bryan Biedenkapp
4e758bba91
Merge branch 'master' into dev_355
2 years ago
Bryan Biedenkapp
388e23c67c
fix issue where the gain mode wasn't being appropriately selected;
2 years ago
Bryan Biedenkapp
c67314e49d
rename getData to get in RingBuffer; ensure the RingBuffer contains a data to the given length before attempting to return that data;
2 years ago
Bryan Biedenkapp
2e65458008
refactor Host.cpp into more partial clas files for better code organization;
2 years ago
Bryan Biedenkapp
c035a7ba60
Merge branch 'master' into dev_355
2 years ago
Bryan Biedenkapp
278ce22e5f
potential fix for crash issue during low/bad signal on DMR;
2 years ago
Bryan Biedenkapp
a5a220bf9d
clarify text documentation for Trellis class;
2 years ago
Bryan Biedenkapp
8fdaa60d32
clarify text documentation for Trellis class;
2 years ago
Bryan Biedenkapp
5a1f672dfe
ensure threads die immediately if the g_killed flag is set when the threads are started; block clocking operations when performing CW;
2 years ago
Bryan Biedenkapp
7a90f953fd
add proper mutex locking to prevent thread clobbering during clocking (i.e. attempts to make modem and protocol clocking thread safe); split frame read nad write operations into their own threads;
2 years ago
Bryan Biedenkapp
629c2fe75e
initial commit for dvmhost 3.55 dev branch; add support for std::function<> based lambdas as threads; split DMR, P25 and NXDN frame processing into their own source files for the host (Host.DMR.cpp, Host.P25.cpp, Host.NXDN.cpp) these files will contain host-level processing code for the specific protocols; implement protocol frame processors as their own running threads;
2 years ago
Bryan Biedenkapp
82a5b775a9
code cleanup;
2 years ago
Bryan Biedenkapp
e7d1e86e90
code cleanup;
2 years ago
Bryan Biedenkapp
13d398480d
OCD file cleanup;
2 years ago
Bryan Biedenkapp
d9c4f0d79d
fix inverted byte order for LLA auth packets; add logging for when a SU fails LLA authentication;
2 years ago
Bryan Biedenkapp
4d234ccfe7
okay at least my APX6000 fails authentication now;
2 years ago
Bryan Biedenkapp
936402275f
very very preliminary work for U_REG LLA support;
2 years ago
Bryan Biedenkapp
5ea4ccc98e
just some OCD file formatting cleanup;
2 years ago
Bryan Biedenkapp
1eb24608a0
add tiny AES library (for future LLA use);
2 years ago
Bryan Biedenkapp
0ebd3f7c79
fix bad TSBK layout (this looks like a poor copy and paste job);
2 years ago
Bryan Biedenkapp
4a764f67df
[EXPERIMENTAL] add support to configure voice channel iden table IDs;
2 years ago
Bryan Biedenkapp
102d6a5674
don't bother with last destination ID checking during grant processing if in dedicated CC mode [this may turn out to be a dirty hack];
2 years ago
Bryan Biedenkapp
19190ce69d
implement missing rfLossWatchdog on DMR and NXDN (this fixes edge case issues where end of call single frame loss could cause a call to not terminate properly);
2 years ago
Bryan Biedenkapp
06f25ca7de
combine DMR and P25 Trellis implementations into a single EDAC implementation for conciseness;
2 years ago
Bryan Biedenkapp
015b9e2f0a
add support to test TG grant status when determining sloppy-voting overlap; ensure RF states are returned to RS_RF_LISTENING upon failure (don't assume state);
2 years ago
Bryan Biedenkapp
21555a1119
add support for marking whether or not a talkgroup was granted on a channel by RF or network;
2 years ago
Bryan Biedenkapp
df2a2b3f14
slightly reorganize where buffers and states are reset at the beginning of late entry calls;
2 years ago
Bryan Biedenkapp
f2de61a92f
better handle packet sequence out-of-sync checking (additional current - 1 check);
2 years ago
Bryan Biedenkapp
28552617e4
handle edge case where network traffic is in progress with a running net TG hang timer but no set dest id;
2 years ago
Bryan Biedenkapp
050d5e3a5c
fix issue with internal net TG hang not appropriately holding a TG;
2 years ago
Bryan Biedenkapp
b05c631081
ensure fileLevel 0 never writes to log files; potential fix for netLastDstId;
2 years ago
Bryan Biedenkapp
da7ae2f550
upstream: fix Trellis bit order;
2 years ago
Bryan Biedenkapp
3b3bc884a4
implement parrot grant demand support for FNE conference bridge; correct issue with grant demands appearing as U2U instead of GROUP;
2 years ago
Bryan Biedenkapp
31fae83b3d
always process network grant responses regardless of dedicated control state if control processing is enabled;
2 years ago
Bryan Biedenkapp
9a871eba41
fix wrong variable used to populate MI data for encryption for network packets;
2 years ago
Bryan Biedenkapp
5c371c97cb
add support to grant demand to support denying a grant and supporting unit to unit; better support LOC_REG_RSP being sent over the network;
2 years ago
Bryan Biedenkapp
a09338f57d
refactor quick-and-dirty table entry check to a more proper unordered_map find; implement new REST API to return the current affiliations; correct instance where a affiliation response would be sent across the network for denied/rejected affiliations (this would result in the FNE2 for example erroneously adding affiliation entries to its internal tables);
2 years ago
Bryan Biedenkapp
abb57affe2
refactor how GROUP VCH UPDATEs are sent; ensure notifyEnable is set to true by default;
2 years ago
Jim
4ae6a946f4
Fixed incorrect channel spacing sanity check ( #39 )
...
* Fixed incorrect channel spacing sanity check
* Updated comments
---------
Co-authored-by: faulty <faulty@evilcomputing.net>
2 years ago
Bryan Biedenkapp
37fe46df12
make redundant immediate an option (for experimentation purposes);
3 years ago
Bryan Biedenkapp
5fa4da4caf
correct display of redundant grant transmit startup message;
3 years ago
Bryan Biedenkapp
d0715f4b92
ensure immediate P25 packets are queued at least twice;
3 years ago
Bryan Biedenkapp
27acf348d2
better deliniate sections of ControlSignaling classes;
3 years ago
Bryan Biedenkapp
09dd03f946
rename and reorganize some code to better be consistent across the project;
3 years ago
Bryan Biedenkapp
e4cc23a3a3
better handle same TGID RF preemption during grants when network call grants are disabled;
3 years ago
Bryan Biedenkapp
ebd973b226
invert flag check;
3 years ago
Bryan Biedenkapp
5f7b62ece2
some minor code reorganization for clarity; implement new disableNetworkGrant feature for non-trunk mode P25 operations, this disables network calls from making channel grants that would exclusively lock the channel for the duration of that call (when SUs are utilizing a mode that makes them obey grants), this is useful for systems where RF-only TG steering is required;
3 years ago
Bryan Biedenkapp
31f6b072fb
correct some problems reported for --cal not writing the modem tuning partition; correct some issues with Rx tuning not properly applying during calibration procedures;
3 years ago
Bryan Biedenkapp
4559a9c273
fix long standing oopsie, this assertion check should have been changed a long time ago;
3 years ago
Bryan Biedenkapp
69bb8ec5ea
fill out LDU2 DFSI data;
3 years ago
Bryan Biedenkapp
3e25951d9d
neuter the DFSI implementation (we only use parts of the TIA-102.BAHA spec here, the real DFSI work will happen elsewhere);
3 years ago
Bryan Biedenkapp
7cb639027d
add support to transmit LC_FAILSOFT during conventional fallback (an option, no one uses yet...);
3 years ago
Bryan Biedenkapp
0c40b2b254
fix override of packet sequence when it shouldn't; fix handling TDU from a specific source;
3 years ago
Bryan Biedenkapp
54a2afc0bc
silence TSCC disabled error when attempting to fetch the TSCC slot instance;
3 years ago
Bryan Biedenkapp
9a03d084c9
fix issue where TGID ACL may never be enabled; check ACLs before issuing a grant from a grant demand;
3 years ago
Bryan Biedenkapp
962744ab50
alter out-of-sequence warnings to be less noisy;
3 years ago
Bryan Biedenkapp
ed9ee36507
i thought i removed this check, damn it Git; ensure we immediately return after a grant demand;
3 years ago
Bryan Biedenkapp
8447bee31a
oh goody fix assinine logic check I invente that breaks the universe for everyone;
3 years ago
Bryan Biedenkapp
dfdaa98434
only allow grant demands if we're also control enabled;
3 years ago
Bryan Biedenkapp
ab1c84243e
add support for the control byte on P25 TDUs, this implements a required remote grant demand request allowing remote network applications to get a channel grant before sending traffic;
3 years ago
Bryan Biedenkapp
4f6fcd421b
refactor network data buffer sizes;
3 years ago
Bryan Biedenkapp
edb2529f68
allow the frame loss threshold to be configurable (this could help in fringe signal fading situations to prevent premature call termination in some situations);
3 years ago
Bryan Biedenkapp
84b13d668a
move netId and sysId 0 check;
3 years ago
Bryan Biedenkapp
a3234a8583
reorganize code slightly;
3 years ago
Bryan Biedenkapp
a0f5a8302d
reorganize code slightly;
3 years ago
Bryan Biedenkapp
c62d79e2be
implement support for explicit source ID;
3 years ago
Bryan Biedenkapp
24ad09c5ee
whoops forgot to include defines;
3 years ago
Bryan Biedenkapp
3cce6e0b68
implement support for TIA-102.AABF-D LC_EXPLICIT_SOURCE_ID;
3 years ago
Bryan Biedenkapp
2a3c827cab
properly complete grantTG REST API implementation;
3 years ago
Bryan Biedenkapp
ca3810fa12
report destination ID being rejected when for non-authoratative mode;
3 years ago
Bryan Biedenkapp
952606b304
revert commit fbf8ec3 (I mistakenly added this with a group of other commits);
3 years ago
Bryan Biedenkapp
fbf8ec32c1
add support to send raw CSBK or TSBKs from the network;
3 years ago
Bryan Biedenkapp
ee36fc5927
fix missed constant name change;
3 years ago
Bryan Biedenkapp
f6167360d6
fix missed constant name change;
3 years ago
Bryan Biedenkapp
f42b9f597c
whoops forgot header file in last commit;
3 years ago
Bryan Biedenkapp
88f67ec7f5
cleanup more direct frame queue calls;
3 years ago
Bryan Biedenkapp
9dd2fc2ce6
replace direct calls for FrameQueue enqueue and flush;
3 years ago
Bryan Biedenkapp
d0be614c27
split announcement group config into its own config var;
3 years ago
Bryan Biedenkapp
7014d3823e
complete conference bridge FNE peer communication;
3 years ago
Bryan Biedenkapp
27f73c1089
cleanup RTP protocal and remove vestigial text tags in most cases;
3 years ago
Bryan Biedenkapp
054a9a5da8
refactor conference bridge FNE slightly; remove mostly unused functions;
3 years ago
Bryan Biedenkapp
f2de006954
ensure stream IDs are maintained from source peer to destination peer;
3 years ago
Bryan Biedenkapp
e94964ea2f
refactor TG hang to only apply to authoritative voice channels; correct handling of non-authoritative permitted destination IDs for NXDN and DMR; move non-authoratative handling into main processNetwork() for P25;
3 years ago
Bryan Biedenkapp
bed079f68e
implement a fixed internal TG hangtimer for network traffic, this will put a hold on the last received TG for 2 seconds; refactor how P25 handles simultaneous calls from the network and how RF preemption of in-progress network calls when RF wants to transmit on a different TG works;
3 years ago
Bryan Biedenkapp
1128d28d97
actually AMBT PDUs don't transit the network, so we'll ignore network PDUs for control only mode;
3 years ago
Bryan Biedenkapp
c1639729a6
correct typo;
3 years ago
Bryan Biedenkapp
7a86b4f5b8
allow PDUs to be processed for dedicated CCs; enhance W3AXLs code Data.cpp code to check the dedicatedControl flag too;
3 years ago
Patrick W3AXL
74838f990a
initial re-commit based on latest master ( #35 )
3 years ago
Bryan Biedenkapp
a2865f7052
be verbose on VC's about when we send the grant release REST call;
3 years ago
Bryan Biedenkapp
6330a4c2a9
fix some log messages; ensure VOC is forcibly disabled if control support is disabled;
3 years ago
Bryan Biedenkapp
ff66d6bbe2
ensure DataHeader's are always passed by reference;
3 years ago
Bryan Biedenkapp
9a71eb344f
refactor how confirmed data blocks are handled; better handle determining src and dst LLIds during PDU processing; better handle data offset and PDU data length calculations; handle properly acknowledging confirmed packets with A/N flag set;
3 years ago
Bryan Biedenkapp
9b43411376
when decoding a PDU data block ensure class variables are set to reasonable defaults (since the actual DataBlock class tends to be reused); ensure DataHeader is passed to DataBlock decode() and setFormat() by reference; implement supporton DataHeader to retreive the raw byte contents of a decoded PDU header; ensure the PDU Rx process resets the second header data, irregardless of use; if we are using a PDU second header, ensure its data contents are added to pduUserData as the second header contents are CRC-32'ed along side all the data blocks (infact only the initial header is excluded from CRC-32 all other blocks following initial header *must* be CRC-32'ed with the data blocks); refactor PDU last block detection; ensure writeRF_PDU_Buffered and writeNet_PDU_Buffered regenerate the full packet CRC-32;
3 years ago
Bryan Biedenkapp
20882d5100
whoops actually fix the PDU confirmed last block problem;
3 years ago
Bryan Biedenkapp
798ca22315
fix incorrect use of secondary header;
3 years ago
Bryan Biedenkapp
8c26de644f
reset pdu data length at the end of handling a PDU sequence;
3 years ago
Bryan Biedenkapp
4daac87c1a
refactor P25 PDU network handling code; better handle PDU confirmed extended addressing;
3 years ago
Bryan Biedenkapp
41f590fb0f
better handle SIGHUP (reset g_killed to false at the top of the HostMain signal loop);
3 years ago
Bryan Biedenkapp
99c908e475
fix buffer copy lengths for FNENetwork;
3 years ago
Bryan Biedenkapp
31e6769ddc
don't network repeat AMBT PDUs; ensure AMBTs aren't processed if control processing is disabled;
3 years ago
Bryan Biedenkapp
b4bbca3ca5
introduce RF loss watchdog to prevent a situation where a frame loss could cause a deadlock; fix message output for TDULC;
3 years ago
Bryan Biedenkapp
c97c3f9412
prevent possible deadlock scenario from a failed login sequence, allow RPTL to reset to login sequence if the peer hasn't reached a running state;
3 years ago
Bryan Biedenkapp
b1718f3e0a
fix payload calculation for activity log; correct order of operations for testing if the RF hangtimer is running;
3 years ago
Bryan Biedenkapp
8cd92914ba
reword some warning messages to be more verbose; reorder when embedded FNE will transmit parrot frames;
3 years ago
Bryan Biedenkapp
91a79cfc24
fix issue with using a reference vs copy for the talkgroup rules YAML filename;
3 years ago
Bryan Biedenkapp
95e0ed9260
be more verbose in logging when the REST service network layer returns errors;
3 years ago
Bryan Biedenkapp
ca7eb1a407
remove TCP_NODELAY socket option, refactor when SO_LINGER is set on the socket options; correct some file formatting;
3 years ago
Bryan Biedenkapp
8c15cb5b50
don't attempt a socket tear down, the shutdown of the ioService should clean these up;
3 years ago
Bryan Biedenkapp
220ad671ac
remove extraneous messages from reconnect loop; m_ioService must be the *LAST* object in the ASIO chain to be destroyed, otherwise weirdness will happen;
3 years ago
Bryan Biedenkapp
963a9ab421
fix warning message when failing to update status;
3 years ago
Bryan Biedenkapp
6573386cd7
perform status update 4 times before switching a node into a failed state;
3 years ago
Bryan Biedenkapp
a020dd84d0
ensure socket processing loop for HTTPClient won't try to process when the the request is considered "completed"; properly set SO_LINGER and TCP_NODELAY;
3 years ago
Bryan Biedenkapp
ee74cad81b
report network peer ID in status API call; display network peer ID on dvmmon;
3 years ago
Bryan Biedenkapp
31d9a3e1c3
implement support for "Tab" to cycle the selected and active host;
3 years ago
Bryan Biedenkapp
50f85538f8
refactor display of usage to be consistent with dvmhost;
3 years ago
Bryan Biedenkapp
8c5d9eb2c6
add command line option to auto hide the log window at startup;
3 years ago
Bryan Biedenkapp
caa2a37a49
fix incorrect handling of redraw during maximize of the log window;
3 years ago
Bryan Biedenkapp
c567378047
fix some label display issues;
3 years ago
Bryan Biedenkapp
65155c7010
fix detection of mode for command windows; fix detection of valid subscriber;
3 years ago
Bryan Biedenkapp
fcda472f3e
reset mode text if the status is none of the digital modes;
3 years ago
Bryan Biedenkapp
6465493e3d
relabel Last TG to Last Dst;
3 years ago
Bryan Biedenkapp
b341c7ee13
add support to report source ID; enhance coloring abit more;
3 years ago
Bryan Biedenkapp
180bce2d62
add support to log the last received source ID;
3 years ago
Bryan Biedenkapp
40596aadef
file cleanup;
3 years ago
Bryan Biedenkapp
4bb8c81360
adjust purple color (looks better and consistent as pinkish in PuTTY);
3 years ago
Bryan Biedenkapp
4f3c374285
adjust display of colors (these will vary terminal to terminal unfortunatly, best display is in a proper Linux desktop terminal);
3 years ago
Bryan Biedenkapp
4097e87ccd
add CMake option to selectively disable compiling dvmmon (-DDISABLE_MONITOR=1);
3 years ago
Bryan Biedenkapp
d45af90c07
initial bare-bones implementation of dvmmon; enhance REST API to return more detailed status information (for use by dvmmon); cleanup file code style;
3 years ago
Bryan Biedenkapp
298cd8da1f
properly handle the configured REST address for the "primary" DVM;
3 years ago
Bryan Biedenkapp
bbe6143001
mark a control channel as VOC when the VOC flag is in the status response;
3 years ago
Bryan Biedenkapp
8f7763cac4
initial implementation for a passive monitor tool; correct bad code style; implement feedback of last destination ID; enhance status REST API;
3 years ago
Bryan Biedenkapp
2b73c0539c
code cleanup; add whether or not the channel is VOC enabled in status REST response;
3 years ago
Bryan Biedenkapp
77ff4a551b
typo cleanup;
3 years ago
Bryan Biedenkapp
6f01647c6f
code style cleanup;
3 years ago
Bryan Biedenkapp
6a127f7e57
implement appropriate RS encoding of LDU1 DFSI parameters;
3 years ago
Bryan Biedenkapp
0374ed2f54
correct bad implementation of RTP SSRC, SSRC should be the *sending* peer ID;
3 years ago
Bryan Biedenkapp
412d6cfc7c
[KEEP CALM AND RELAX] remove some deprecated DFSI support code (this is going to be done in a different way and this code is essentially abandonded);
3 years ago
Bryan Biedenkapp
cdce663a55
remove affiliated flag from local talkgroup_rules (this is not used locally); refactor how P25 network message frames are made (mostly just a code cleanup); refactor out some magic numbers used in some places for code clarity;
3 years ago
Bryan Biedenkapp
702293b416
more work on frame loss counting;
3 years ago
Bryan Biedenkapp
3d7f04f523
split touch notify from incorrect logic statement;
3 years ago
Bryan Biedenkapp
c9f74e7abf
assume better defaults when the controlCh block is missing; split logic checks for ignoring a notifyCC_* call for clarity; add extra logging messages for whether or not CC notify is enabled, and whether or not CC REST API parameters were passed;
3 years ago
Bryan Biedenkapp
b99ecefd6a
experimental alteration to handling modem TAG_LOST during an active call for DMR, P25 and NXDN, instead of immediately dropping the call stream holding the call in progress, this will likely require additional thought and implementation, but the intention is to correct odd behavior for fringe or silghtly weak signals which would cause strange call behavior;
3 years ago
Bryan Biedenkapp
d5aa4c2cd9
add extra logging messages; fix issue with network P25 voice grant;
3 years ago
Bryan Biedenkapp
73cb3de6e8
log more detailed information about RINGBUFF_FULL;
3 years ago
Bryan Biedenkapp
34a6c14111
rename inhibitIllegal to inhibitUnauthorized; remove code that was clearing modem buffer before transmitting an immediate (this was extremely problematic); add new option for VOC users "redundantGrantTransmit" this option will cause a modem in P25 VOC mode to transmit redundant grant responses, helping ensure grants are received;
3 years ago
Bryan Biedenkapp
4aca5792db
adjust OSP_QUE_RSP slightly to ensure the service doesn't overflow; fix some minor U2U logic (this kinda sorta makes U2U work); adjust some timing parameters when clearing the modem queues (~5ms delay after writing the command to ensure the modem has time to clear); alter how grants are transmitted on VOC configurations (this will not only transmit a immediate grant but also buffer 3 more as an MBF);
3 years ago
Bryan Biedenkapp
7c94b92981
add support to get the JSON response for RESTClient sends; enhance implementation of dvmcmd;
3 years ago
Bryan Biedenkapp
39e0e4a254
add option to selectively enable/disable CC notification from a VC for traffic channel updates (this option defaults to enabled/on for all configurations but VOC);
3 years ago
Bryan Biedenkapp
e86a8aae03
whoops remove this code -- debug stuff by accident;
3 years ago
Bryan Biedenkapp
053a74843c
add blatent error message for my sanity during debugging;
3 years ago
Bryan Biedenkapp
20fd5d5e40
[EXPERIMENTAL] commit an experimental fix for VOC strangeness, VOC abuses P25 timing and should be transmitting the grant response at least twice;
3 years ago
Bryan Biedenkapp
bd804fb02b
hide debug messages showing up in verbose mode;
3 years ago
Bryan Biedenkapp
b5312d4dcd
be more verbose when updating lookup information from the FNE;
3 years ago
Bryan Biedenkapp
f719bffbba
cleanup incorrect variable usage (inclusion vs exclusion);
3 years ago
Bryan Biedenkapp
85b72d46b7
[conference bridge FNE] don't bother sending TGs to peers that are excluded;
3 years ago
Bryan Biedenkapp
5023c343fe
ensure legacy cal TUI opens in --setup and --cal when ENABLE_TUI_SUPPORT or ENABLE_SETUP_TUI options are disabled at compile time;
3 years ago
Bryan Biedenkapp
82155893aa
fix issue where the setup event loop may try to talk to a unconnected modem;
3 years ago
Bryan Biedenkapp
c4b4dd367f
enhance releaseGrantTG logging slightly, this will now not only log the request, but log if the specified destination ID needs to be released;
3 years ago
Bryan Biedenkapp
50f0ba3652
bump the CPACK_DEBIAN_PACKAGE_VERSION to 3.5.0;
3 years ago
Bryan Biedenkapp
2b6b0c574d
merge 3.5-dev into master, this marks 3.5 alpha/beta release; ( #31 )
...
* implement inital code to support embedded FNE;
* continued implementation of embedded FNE;
* implement initial core functionality for handling FNE side of DMRD, P25D and NXDD;
* update README.md;
* refactor and rename files; clarify that the embedded FNE is not a "routing" FNE, but rather, a "conference bridge" FNE;
* more cleanups making the conference bridge FNE implementation clearer;
* implement proper code for handling peer inclusion/exclusion; implement proper code for validating a call stream;
* add missing comments;
* make the GCC compiler happy when compiling on 32-bit ARM; make old RPI_ARM compiler happy;
* process parrot flag for talkgroup configuration;
* deprecate and remove old tg_acl.dat file infavor of the YAML-based talkgroup rules file for the entire host; deprecate and remove custom Mutex class in favor of std::mutex; expand helper routines for the TalkgroupRulesLookup class (backwards compatibility essentially with TalkgroupIdLookup); fix issue in network core that could cause deactivated TGs to try using talkgroup lookups when talkgroup lookups may be unavailable;
* support code for future use;
* fixup CMakeLists to fix build warnings for ARM 32-bit platform;
* update detection for sendmsg and sendmmsg (handles some platforms that don't define sendmmsg); implement container classes for RTP framing;
* update CMakeLists to handle new files appropriately;
* initial implementation of FrameQueue to generate FNE RTP frames;
* fix incorrect return;
* implement a typedef for unique_ptr uint8_t arrays; fix issue where DMR, P25 and NXDN control classes were accepting BaseNetwork instead of Network; refactor how FrameQueue handles returning messages read from the network; refactor BaseNetwork, Network and FNENetwork to use FrameQueue instead of raw network writes;
* fix issue with handling network state; fix issue handling global network enable flag; fix buffer pointer cleanup;
* add option to CMake to selectively utilize the legacy (non-RTP) network protocol (embedded FNE does not support this and will be disabled for USE_LEGACY_NETWORK; cleanup some error messages when trying to initialize and read the configuration file; fix some minor issues in parsing the new talkgroup rules YAML file; complete conversion of BaseNetwork from raw socket to using the new FrameQueue class; refactor the multi-buffer UDPSocket write function to properly send multiple messages in batch down to the kernel driver (on Linux using sendmmsg); add flag to UDPSocket to indicate whether the socket is "open" or not; correct some RTP formatting issues with the extension header (the payload length is in 32-bit units);
* remove remaining native WIN32/WIN64 type support code (it was unmaintained anyway); correct issues with network socket reading; cleanup some error messages;q
* finally resolve lingering issue with frame queue having random socket issues;
* refactor how BufferVector and sendmmsg UDPSocket write operates; refactor FrameQueue to properly queue messages;
* properly queue packets to send in bursts to peers; add missing ACKs; add missing MSTPONG;
* fix up formatting; remove unnecessary debug statements;
* minor cleanups;
* remove unused function;
* add fields for function and sub-function;
* describe network functions and subfunctions;
* reorganize some code; add checking for packet sequence;
* roll next sequence properly;
* utilize typedef for std::unique_ptr<uint8_t[]>;
* fix usage of __UNIQUE_BUFFER to __UNIQUE_UINT8_ARRAY;
* clean up macro definitions;
* implement sequence counting for the FNE conference bridge;
* remove USE_LEGACY_NETWORK support;
* use macro expansions for this instead of raw buffer lists;
* implement actual transmission of new network func/sub-func behavior;
* deprecate use of packet tags for determining operation, instead use RTP FNE header function and subfunction bytes;
* fix issue with send talkgroups not setting flag to send talkgroups to peers; fix issue when compiling list of activated or deactivated TGs to send to peers; correct strangeness with the RTP sequence counting; fix talkgroup rule lookup on peer when activating or deactivating TGs;
* update copyright dates;
* complain if the RTP and FNE headers don't agree on stream ID;
* for when you forget to update a comment so things actually make sense when you look at it later...;
* remove extraneous check, this is really not necessary since FrameQueue does the size validation;
* clarify the description of the "embedded FNE";
* merge changes from https://github.com/CVSoft/dvmhost to place spec specific limits on channel spacing;
* refactor how network traffic is handled, we don't handle protocol specific stuff within BaseNetwork anymore and offload that to the specific protocol controller instead; implement support to receive peer traffic and repeat (still need to do master to peer);
* convert fatal error about Rx frequency being below base frequency to a warning instead;
* fix incorrect redefine of slotNo;
* correct ret flag for readDMR, readP25 and readNXDN not being set to true by default (stupid me); correct FNE-mode payload offsets for diagnostic packets;
* implement option to selectively enable/disable FNE mode verbose logging information; enhance FNE display of network diagnostic logs; refactor dmr::Control::processNetwork(); refactor RTP packet sequence counting;
* fix incorrect variable used for out-of-sequence log message;
* fix issues with login RTP stream; specially handle certain control opcodes with a different payload type; continued enhancements to sequence counting;
* whoops readd accidentally removed block;
* backout previous lastPeerId code; properly ensure RTP packet sequence is repeated for traffic calls;
* transmit DVM LC_CALL_TERM TSDU at the end of call or if a call drops (hopefully);
* don't reset the packet sequence for a RPTPING;
* rename some class variables for clarity and prep for some future changes;
* add support for priority/immediate Tx queues, these queues are intended to be used sparingly (and mostly for control data) to transmit priority messages [this is an experimental change and may break the build!];
* fix issue where connecting to a non-existent REST API endpoint would crash with an unhandled ASIO exception;
* increase timeout delay for the modem by 4 seconds (the original 4 second delay would be too short for some longer operations);
* use the immediate queue to prioritize control data in some situations [this is experimental and may break things!];
* reformat headers;
* implement toString() functions on TSBKs, CSBKs and RCCHs for future use to replace fixed strings; cleanup DMRDefines slightly;
* fix up and simplify RTP timestamp generation;
* reduce reliance on fixed strings, instead rely on toString() functions from TSBK, CSBK, and RCCH to ensure string consistency for logging purpsoes;
* refactor how and when releaseGrant is called in some situations; ensure channel grant messages traverse the network;
* fix reset of error count between network super-frames;
* add development helper file for VS Code to configure debug launch parameters;
* update CMakeLists to be more condusive to debugging;
* cleanup AUTHORS.md;
* implement parrot for the conference bridge FNE; implement appropriate call detection logic for conference bridge FNE and attempt to prevent call collisons for the same destination;
* add support for altering softpot levels from calibration mode;
* bump copyright information;
* reorganize CMakeLists;
* remove finalcut from the libraries list (this isn't supposed to be included yet!);
* implement initial rework of setup/calibration mode into a TUI; add ENABLE_TUI_SUPPORT CMake option to disable *all* project TUI support; add ENABLE_TUI_SETUP CMake option to disable setup TUI support for dvmhost;
* properly update isConnected flag;
* fix issue with incorrectly placed control;
* part 1 of a fix for #30 , the change here would be to allow the VCs to know about the CC to be able to report back to it to release or other wise update grants;
* part 2 of the fix for #30 , this implements the actual logic for a VC to notify the CC of a grant status change (touch, release) [NOTE: this could have undesirable consequences and this commit is experimental!];
* update README.md;
* fix terrible copy and paste job resulting in a poor logic check (SMH); print to log the control channel address and port at startup; use the appropriate REST API for touch (whoops);
* remove transmit overlay on shell; add F12 hotkey to trigger transmit; implement support to use F2 and F12 from various configuration/calibration modals; correct some mode strangeness when saving;
* implement support to adjust FIFO buffer sizes from the host;
* add engineering menu to adjust FIFO buffer sizes from setup;
* ensure set button state is set properly for these windows;
* fix stupid --tags non-sense in the git hash reporting;
* ensure certain error conditions for setup mode are displayed when exiting at initial startup;
* more fixes to attempt to satisfy #30 (why is this being so difficult!); correct situation where RESTClient may throw an assert instead of handling an error condition nicely;
* for #30 allow release tg grant and touch tg grant to work regardless of dedicated CC setting;
* file cleanups;
* C++11/14 cleanups, class overrides and pure-virtual implementors /worked/ but were not really correct;
* stringify modem command and reason messages (so log errors are easier on the eyes);
* late update during a branch merge, to fix some latent issues that were missed;
3 years ago
Bryan Biedenkapp
56e4e7cf37
for non-authoritative VCs generate a log message in verbose mode for the protocols to indicate a TG permit operation has occcurred;
3 years ago
Bryan Biedenkapp
6b2a016497
convert fatal error about Rx frequency being below base frequency to a warning instead;
3 years ago
Bryan Biedenkapp
0608275cf9
merge changes from https://github.com/CVSoft/dvmhost to place spec specific limits on channel spacing;
3 years ago
Bryan Biedenkapp
88016bda13
fix incorrect return;
3 years ago
Bryan Biedenkapp
b360ed2a7b
update detection for sendmsg and sendmmsg (handles some platforms that don't define sendmmsg);
3 years ago
Bryan Biedenkapp
7bdb7b6c6d
add support code for future modifications;
3 years ago
Bryan Biedenkapp
9b1c48aa7d
correct bad handling of certain conditions;
3 years ago
Bryan Biedenkapp
dbacb27146
merge branch changes to eliminate custom Mutex class for std::mutex;
3 years ago
Bryan Biedenkapp
2b8fc67d75
update UDPSocket for future use;
3 years ago
Bryan Biedenkapp
09be90c266
fixup CMakeLists to fix build warnings for ARM 32-bit platform;
3 years ago
Bryan Biedenkapp
81c16f6758
add option to disable the source ID validation before issuing a grant;
3 years ago
Bryan Biedenkapp
db2212f7c1
minor file cleanup;
3 years ago
Bryan Biedenkapp
320523a668
fix a problem where the source for a grant isn't being checked for a "grant retry" condition;
3 years ago
Bryan Biedenkapp
ca161aa402
cleanup trailing whitespace;
3 years ago
K4YT3X
da863f6785
Fixed P25 garbled encrypted voice, plus minor several other improvements ( #27 )
...
* changed GHA runners to ubuntu-20.04 since glibc is too new in 22.04
* updated gitignore to exclude CMake and more C++ temporary files
* adjusted scripts' permissions
* created express Makefile to easily build for different arch
* automatically clone ASIO source code using CMake
* updated Raspberry Pi configuration docs
* fixed P25 garbled encrypted voice due to incorrect HDU MIs, frame type predictions, and clear null IMBE frames
* removed ASIO clones from pipelines
3 years ago
K4YT3X
43d6420b2c
made incoming traffic update P25 channel grant timer to fix embedded STC; fixed VC LDU2 grant check ( #25 )
3 years ago
Bryan Biedenkapp
ca9703233d
attempt to sanitize transmit state during configuration change when calibrating;
3 years ago
Bryan Biedenkapp
6225e54256
replace bare pointer for a proper smart pointer;
3 years ago
Bryan Biedenkapp
ab622ee08c
return status from API call from RESTClient::send(); appropriately deny a grant if supervisor is enabled and a permit call fails; fix issue with CMake not caching compiler information;
3 years ago
Bryan Biedenkapp
f36426a889
cleanup code to match the rest of the project standards;
3 years ago
Bryan Biedenkapp
ad5fc27783
further refactor of how the RESTClient functions (hopefully this will fix the crashes);
3 years ago
Bryan Biedenkapp
cec2816389
fix some potential memory leak scenarios;
3 years ago
Bryan Biedenkapp
8faa764cb4
refactor how grant calls are made for DMR, P25 and NXDN (this may break somethings!);
3 years ago
Bryan Biedenkapp
f9afd01277
revert an oops, I committed some code commented out that should not have been;
3 years ago
Bryan Biedenkapp
d5279442b9
refactor REST connection handler into separate client/server classes; correct issue with improper handling of resolved endpoint data resulting in crash conditions; fix memory leak issue by not deleting an array when done;
3 years ago
Bryan Biedenkapp
0282689e98
fix issue where network grants would trigger local grant transmissions, even if the TG was already granted;
3 years ago
Bryan Biedenkapp
590aeb0bea
refactor common affiliations class to have a release grant callback; implement proper release grant callbacks for P25 and NXDN to call the permit TG API with a TGID 0 to ensure permits are released at the end of a call; update DMR release grant callback in the same way; allow permit TG API call to accept 0 as a valid TGID;
3 years ago
Bryan Biedenkapp
f69443c2eb
relabel RCON configuration parameters to REST (see configs/config.example.yml); change "controlPermitTG" to "supervisor", this is more descriptive for what this function does as it is literally a supervisory flag enabling/disabling the CC from commanding subordinate DVMs; implement a REST API that can alter the supervisory state at runtime;
3 years ago
Bryan Biedenkapp
8b4002246a
refactor how grants are handled across the network;
3 years ago
Bryan Biedenkapp
9512e0c256
fix inverted logic checks for permittedTG() for DMR and NXDN;
3 years ago
K4YT3X
a1b7bd79df
fixed REST API accept permit-tg failure ( #24 )
3 years ago
Bryan Biedenkapp
e531a830dd
cleanup file;
3 years ago
Bryan Biedenkapp
5b8b6f70af
fix condition where permitted TG would not be reset after a TG hangtime timeout;
3 years ago
Bryan Biedenkapp
08d282844d
fix issue when loading voice channel lists into local affiliation tables; fix issue where appropriate voice channel data for remote callbacks was not correct; better hide messages from console and use logging appropriately in RESTClient;
3 years ago
Bryan Biedenkapp
86748665ba
ensure TSCC SLCO's will not be sent at all if DMR CC mode is disabled; hide display of TSCC Slot number if DMR TSCC is not enabled; add payload channel CSBKs; prohibit processing of voice/data traffic on a TSCC slot; fix issue where writeRF_CSBK was only functioning for TSCC slots; fix issue handling slot number in some CSBKs; change order of operations for when TSCC payload channels are activated;
3 years ago
Bryan Biedenkapp
7e2e002b10
add appropriate support for DMR TSCC to repeat the channel grant following appropriate channel grant; add support to affiliation tables to log what source ID a destination ID is granted to;
3 years ago
Bryan Biedenkapp
4ec99becfe
change DVM MFId to the officially assigned value of $9C (Omaha Communication Systems);
3 years ago
Bryan Biedenkapp
87d26b04fb
fix incorrect handling of activity type for payload channel;
3 years ago
Bryan Biedenkapp
72b6fc443c
refactor how TSCC CSC counter is handled;
3 years ago
Bryan Biedenkapp
f21b98c290
deprecate duplicate flag;
3 years ago
Bryan Biedenkapp
68334b34bc
correct various log messages; clean up payload channels after grant release; fix incorrect REST API being called for payload activation;
3 years ago
Bryan Biedenkapp
f216304970
[DMR] implement appropriate support to perform payload timeslot activation; [DMR] handle appropriate transmission of various payload, TSCC and payload TSCC short LC messages; [DMR] implement REST API callbacks to trigger payload activation for remote channels; [DMR] properly transmit channel grant twice for "redundancy" per ETSI spec; [DMR/P25/NXDN] implement more verbose messages for failures to command remote voice channesl to perform actions;
3 years ago
Bryan Biedenkapp
a1dd5193cf
implement proper payload SLCO;
3 years ago
Bryan Biedenkapp
db0800e6e6
display decimal values (useful for DMR setup) for channel numbers as well as hex; properly send QUEUE responses in resources busy condition for DMR grants;
3 years ago
Bryan Biedenkapp
6416f3404a
transmit C_WACKD after voice call requests;
3 years ago
Bryan Biedenkapp
4b74684ffe
fix issue where DVM was incorrectly indexing network and site IDs for DMR;
3 years ago
Bryan Biedenkapp
907567ec33
fix issue with DMR site information calculations; correct slot number (range for packets is 0 - 1, not 1 - 2); fix missing clock call to the DMR affiliations class;
3 years ago
Bryan Biedenkapp
439c962a30
refactor how some of the REST API auth is handled;
3 years ago
Bryan Biedenkapp
4734aef687
move the service file into the project repo root; retain some older build logic from the old Makefile;
3 years ago
K4YT3X
c487873db2
Reorganizing directory structure and minor housekeeping ( #21 )
...
* reorganized files into appropriate directories
* updated README, AUTHOR, and LICENSE to conform to conventions
* adjusted CMakeLists and pipeline for the new directory structure
* moved examples->configs; scripts->tools; src/debian->/debian
* updated authors information
* created new section in author information
* removed deprecated iden_channel_calc tool
3 years ago