r05a06_dev
master
issue-template-update
fix_nid_array_cleanup
v24-dtr-reset-fix
4.32j_maint
4.31h_maint
4.30h_maint
4.11f_maint
82-dvmbridge---implement-notch-filter-for-2175hz-trc-guard-tone
fne_rest_improvements
v24-dtr-rts
4.04d_maint
4.01b_maint
3.6-maint
3.56-maint
3.5-maint
3.0-maint
3.0-rcon_maint
2.0-maint
2022-10-14
2023-02-04
2023-02-09
2023-02-18
2023-02-19
2023-02-25
2023-03-01
2023-03-02
2023-03-06
2023-03-07
2023-03-08
2023-03-09
2023-03-11
2023-03-12
2023-03-16
2023-03-21
2023-03-22
2023-03-23
2023-03-24
2023-03-25
2023-03-26
2023-03-27
2023-03-28
2023-03-29
2023-09-05
2023-09-08
2025-04-16
2025-05-01
2025-05-25
2025-09-03
2025-12-03
2026-03-02
2026-03-06
${ noResults }
10 Commits (274b805517ae0d28351147a84c3917d64a463875)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
274b805517
|
Merge R05A04 (r05a04_dev) into master (#114)
* rebuild r05a04_dev from nasty Git merge bullshit; implement handling of SNDCP on the FNE instead of dvmhost; add quick sanity Catch2 testcases; BUGFIX: NXDN SACCH was incorrectly handling the RAN and structure causing the structure value to become overwritten; correct badly set example IP range in FNE config; add AI generated documentation for the network statck, FNE REST and DVMHost REST; update version number for next dev version; * remove old documents; * BUGFIX: fix some unbounded array checking; * enhance InfluxDB implementation: fix bad handling on Windows; fix bad use of free() for address info freeaddrinfo(); fix partial data writes for bigger payloads; enhance getting responses back from InfluxDB (this makes it so that InfluxDB cannot fail silently easily); * EXPERIMENTAL: add an adaptive jitter buffer implementation to the FNE to better deal with peers on bad connections that may send packets out-of-sequence; * remove unnecessary garbage in AI generated doc; use references for autos when looping peers; normalize jitter buffer log messages; * cleanup doc; * properly move hastily erected debug YAML config to the peer ACL file instead; * update jitter buffer doc; * BUGFIX: correct naive implementation that did not consider the length of the packet being sent, which could result in a nullptr after casting the ip struct; BUGFIX: send actual bytes read from VTUN vs the default MTU size; * BUGFIX: correct similar ip struct casting problem; * implement a very preliminary DMR to VTUN IP dispatcher based on the P25 implementation (while I am sure this is probably going to be quite iffy, I am quite sure the VTUN TAP interface method we are using *is* the right direction; even though the P25 implementation is iffy, with iteration over time I suspect it is the correct approach, as such I have implemented a DMR equiviliant based on the P25 implementation); * use 3/4 rate instead of 1 rate; add some dev notes future me; * implement preliminary positive response to KMM HELLO (this still will fail with No-Service due to missing implementation for per-SU UKEK implementation from the crypto container); * add some extra logging for VTUN PDU; * better implement V(R) V(S) checking; * add prereq logging of last load time for various lookup tables; * add fne-stats; add reload peers and crypto; * update FNE REST API doc; * WIN32: fix ctime_r and add Win32 compat for ctime_s so we can compile on Win32 again; * Win32: FNE's P25PacketData clock() in its entirety should do nothing on Windows; * shut the compiler up about order of constructor initializers; * EXPERIMENTAL: add option for 1 second delayed network TDU when a subscriber dekeys; * slight TUI color palette change; * implement support to configure adaptive jitter buffer from peered; * initialize FinalCut palette earlier; * document that key IDs are hex not dec; * BUGFIX: lets not memset past the possible end of the key array....; * track active call counts (this might be slightly error prone, so we will at best call this an approximate number); * attempt to validate source IP/port during a RPTL, RPTK or RPTC event when RPTL, RPTK or RPTC is sent while not in the correct login state; * BUGFIX: dvmpatch did not properly release the network stream ID at the termination of a call, resulting in a hang up; * BUGFIX: for R05A04s 1s delayed TDU, make sure we have valid IDs before allowing a delayed TDU; * BUGFIX: add more stream ID lockout reset handling; * BUGFIX: add more stream ID lockout reset handling; * add some experiemental support to dvmpatch to support clear to enc one-way patching; * BUGFIX: only consider jitter buffer for RTP frames not carrying the end of call sequence (65535); * BUGFIX: always allow the network stack to process and pass RTP frames carrying the end of call sequence (65535); * BUGFIX: dvmbridge, ignore UDP frame timeouts when using RTP or USRP UDP streams; * add dropped call support to dvmpatch; refactor/rewrite dvmpatch encryption support; * hide debug messages; * BUGFIX: validate destination matches before handling TDU; * report ssrc for late packets; * prevent issue with 0 callDstId on dvmpatch; reject TDUs with no destination (these are invalid and can fuck off); * add separate packet dumping option to the network stack, to allow for less-verbose debugging messaging (debugigng where packet dump/trace is not required); * BUGFIX: fix condition in P25 call handler where if the TSBK was not decoded it could result in a crash; * add network debug trace around stream ID reset calls; * better handle framequeue debugging when not performing packet dumping; * implement proper packet reordering for P25 PDU data; BUGFIX: add boundary checking for P25 PDU disassembly; * BUGFIX: fix startup crash of dvmbridge when using analog audio mode; add transmit voice frame status for analog audio; correct core network issue determining length of analog audio frames; * bump copyright dates; * BUGFIX: for unauthorized, unconnected failures the NAK response was not sending the appropriate RTP sequence; * enhance REST API logging; add dev REST API commands to force send NAK packets; * add PDU block reordering support to dvmhost; * minor bugfix, correct incorrect log module for host sourced analog audio; * very experimental fix for #111, along with additional enhancements to repeat parrot traffic to all VCs of a trunk site to ensure parrot traffic repeats; * update bridge config and expressly document the need to properly configure timing parameters; * make the program status variable m_running a static s_running for dvmpatch; ensure PeerNetwork for dvmpatch uses m_packetDump instead of m_debug for packet dumping; * (we're still hunting the cause of bridge ceasing UDP socket operations after a period of time, it *seems* to occur on Win32 only though); make the program status variable m_running a static s_running for dvmbridge; ensure PeerNetwork for dvmbridge uses m_packetDump instead of m_debug for packet dumping; fix shutdown issue with local audio causing a crash for dvmbridge; refactor how RTP and uLaw frames work; remove and deprecate the no include length configuration parameter; refactor and centralize UDP audio writing functionality; add verbose log messages for if the s_running flag becomes non-true during operation; * fix concurrency lockup for DMR granting; * remove main thread sleep control this causes WinSock on Win32 to lose its mind when polled too fast; * move sample level dumping option to CLI; * always reset the call streams at the end of a call; * increase packet processing latency warning to 250ms (1/4 second); * begin adding support for P25P2 network transiting; * add some verbose debug trace for checkNetTrafficCollision(); * begin defining P25 Phase 2 primitives; * P2 abbreviated/explicit partition MCOs are essentially just TSBK opcodes; * add MFID specific partition type; * refactor MAC MCO defines; * correct comment; * make slot numerical; * whoops meant == not =; * implement RTP audio pacing by timestamp sent by source; * for maintainability split modes into separate source CPP files; BUGFIX: fix buffer overflow when copying PCM data; allow uLaw encoded RTP frames to also carry source and dest metadata; * preamble tones are not supported for UDP audio; * BUGFIX: dvmpatch do not send LDU2s until network is in non-idle state; * convert direct MMDVM TDU to a timed TDU; correct some handling of LDU1 srcId and dstId; * remove dvmmon, R05A02 will be the last version to support dvmmon, R05A04+ will not support it in favor of using sysview from the FNE for monitoring; * add more P25 Phase 2 primitives for S-OEMI sync and Hamming (8,4,4) for P2 DUID handling; * more P25 Phase 2 constants; * extreme preliminary work to handle P25 Phase 2 MAC messages (nothing uses this yet this is for future proofing); * continued work on preliminary instrumentation for Phase 2 MAC handling; * fix missing parens; * split the decodeVCH_MACPDU into two functions, one for IEMI the other for OEMI; * bugfix and correct encode/decode for RS 52,30,23, 46,26,21, 45,26,20, 44,16,29; implement catch2 cases for P25 Phase 2 RS codes; correct bad EC check for RS 24,12,13, 24,16,9 and 36,20,17 that could cause false positive failures in edge case conditions; * implement and add more EDAC verification test; * add DMR EMB and QR 16,7,6 tests; correct issue where QR 16,7,6 decode() was correcting and returning the wrong number of bits; correct issue where DMR EMB would not actually use the corrected QR 16,7,6 codeword; * finally what I was trying to get to -- add testcases for the new P2 MAC PDU logic; correct implementation problems with the P2 MAC PDU handling for OEMI and IEMI (the implementation still requires handling scrambling); * add missing Hamming FEC test cases; * finish out the base crypto test suite and include the DES algo; * (this first part is subject to Git revert if it becomes problematic, but because this is a dev branch I am gonna roll with it) revert FrameQueue timestamp list/map changes back to pre-R04J32, the original implementation was far cleaner and faster with O(1) speed for timestamp lookup vs the O(n) lookup, additionally, the newer R04J32+ implementation introduces a pointer that can be dereferenced incorrectly causing a edge case crash; fix the implementation for handling the mutex for timestamp map locking, the implementation used a incorrect instance mutex which could in high-traffic conditions cause a race condition and ultimately a crash; * for condition where a downstream peer is trying to connect to us, only validate the IP instead of IP/port; * EXPERIMENTAL (and untested): allow source ID overriding for parrot playback, this feature will rewrite the source ID to a static ID configured in the FNE configuration, for P25, NXDN and Analog this rewrite is striaghtfoward, for DMR this will likely work oddly due to the way DMR has source ID data embedded in the transited data frames; * validate the RPC data length includes the message; * BUGFIX: handle edge case where a opcode $27 is not an ISP_EMERG_ALARM_REQ but rather its a network sourced OSP_DENY_RSP; BUGFIX: handle incorrect decoding of OSP_DENY_RSP by SysView; BUGFIX: for DVRS operation properly set MFG_MOT for DENY and QUEUE outbounds; * do not use [] access for grantTimers and unitRegTimers, use find() lookups these are safer; * issue a notify CC channel release on a ChanRelease TDULC; * add explicit TDU TG release option, this option allows a CC to process incoming TDUs to determine if a channel grant should be released; add more explicit TDU process logging to the FNE, ensure TDUs being sent outside a call are being logged properly; during a TG unpermit on a non-authoritative VC, transmit a burst of TDUs on the outbound VC RF interface; add extra verbosity to the active TG logging; * add option displayModemDebugMessages to optionally disable or enable debug log messages coming *from* the modem; properly check if we're operating in DFSI or not and if we are do not attempt to set the FIFO buffer lengths or clear buffers related to DMR or NXDN; correct deletion of array types in the DFSICallData structure; correct bad length of the VHDR1 during DFSICallData initialization, the length defaulted to TIA mode which would cause a crash when trying to delete and deallocate VHDR1 when used in V.24 mode; * correct TSBK, TDULC and PDU transmission using V.24 DFSI, timing must be applied like IMBE; lengthen the high-level CC generation timer by 10ms, this has no impact on regular air and hotspot modems, but better times CC frames for V.24 DFSI modems; refactor naming to be clearer for the V.24 jitter buffer transmit types; because V.24 uses OSP_TSBK_RAW and LC_TDULC_RAW correct several off by 2 shift bugs; remove unnecessary V.24 start of stream and end of stream calls; * allow TDUs to be sent regardless of whether a V.24 call was started or not; * do work on V.24 PDU support (inbound should be working pretty much perfect now, outbound -- is still broken); * V.24 PDU work; * allow the user to adjust the frame timeout length when using frame timing at the bridge; ensure audio frames aren't greater then x2 the size of an expected audio frame; * after consideration entirely refactor how UDP frame timing is generated internally when we're using raw PCM; fix a variety of bugs related to locking and handling of the deque for UDP audio frames; better insert silence at the start and end of calls; * disable this debug trace, its too noisy; * do not consider active call or call counts for parrot; * add call collisions to the stats counters; add REST APIs to reset and zero call counters; * log non-call DMR terminators like P25; * correct endpoints for counter reset APIs; * reset active call count on a maintainence loop; * increase V.24 outbound rate for TSDUs; * properly set the V.24 Tx buffer size to the FIFO length like done for air and hotspot modems; pass whether or not the frame being written to the modem is an immediate frame; modify V.24 modem to properly maintain two independant buffers, one for background/normal priority frames, and one for immediate priority frames (this helps with CC mode delays, there are more buffering issues, likely at the modem to mitgate but thats a future project); * update gitignore to include some python stuff; add very very preliminary Python tool that helps generate dvmhost configurations; * add option to disable deny responses in conventional for radios that are braindead and interpret an OSP_DENY as a ISP_EMERG because of opcode reuse (thanks TIA-102); * delete array instead of delete; * add protections to prevent the network mutex from locking too long; add proper network watchdog to prevent unterminated calls from hanging bridge; * ICC and GRANT shouldnt NAK, as this will cause a straight disconnect/reconnect, ignore them instead; * fix issue where in-call control might start looping requests; * lets make sure RID0 is never used, treat as WUID_FNE instead; * only send ICC upstream when the ICC request originates on the local FNE; * Revise cross-compilation instructions in README Updated cross-compilation instructions for ARM 32-bit and ARM 64-bit, including examples and required packages. * relabel some source files in the FNE, FNENetwork -> TrafficNetwork, DiagNetwork -> MetadataNetwork; remove support for disabling the alternate port, this feature is mandatory now; * identify a software SDR; * add support to dvmcfggen for logging configuration; add support to dvmcfggen for user supplied answers files to automate skipping certain wizard questions; * typo; * HIGHLY_UNECESSARY_DISCLAIMER_FOR_THE_MENTAL; * the typo of that define was driving my OCD nuts; * include new statement in README.md; * enforce a users usage understanding by adding a startup configuration parameter that must be set; * these flags are root level; * make not be stupid error more clear; * copy legalese from config.yml to README.md; * policy updates * Update usage_guidelines.md * create issue & pr templates * remove dvmmon from bug & pr template * revert how timestamping is generated; * BUGFIX: fix incorrectly set length for RTP packets, we were incorrectly adding 4U bytes which does not apply to RTP frames; * enrage the entire community by cleaning up the bridge configuration to be more sane -- a lot of these parameters had nothing to do with FNE network configuration; * code cleanup (no functional change); * fix missing marker bit on RTP seq 0 to make jsb stop complaining; fix missing CTS controller teardown; * properly set the FIRST seq (when seq is reset to 0) as a marker; because JSB is *REALLY* hell bent on this, implement continuous RTP seq to make him happy; * wtf; * cleanup typo and bad spacing due to bad VSCode configuration; correct memory leak when handling buffer drop due to new stream packet wraparound; * correct issue where RTP sequences were not stepped appropriately; * ignore m_audioDetect flag for UDP audio outbound to the FNE; attempt to correct becoming stuck on incoming RTP timestamps; * whoops remove debug trace line; * remove incorrect shift; * ensure network watchdog resets all states; ignore TDU/TDULC when local audio or UDP traffic is running; * reset callStartTime for TGs who receive Non-Call TDU/Terminators; * remove duration log from Non-Call TDU; * disable the expected TS code for RTP frames; * add mutex locking when making a copy of the RadioId table to prevent thread-based race conditions; --------- Co-authored-by: Dev_Ranger <30966416+DevRanger@users.noreply.github.com> |
4 weeks ago |
|
|
7c2bfb3914
|
R04J32 Merge to Master (#95)
* implement user-defined adj site mapping to allow fine grained control over neighboring site announcements; * BUGFIX: patch issue where the FNE would not maintain the source peer ID for certain routing scenarios; * fix typo in original implementation, peerId should be the peerId and ssrc should become the originating peer ID; remove peer check throwing a warning; * log ssrc for various data points (the ssrc is the RTP originating sync source which would be the peer ID of the origination of a RTP packet); * bump build number; * add peer ID masking support (this is useful for FNEs that are "public" links where internal peer IDs don't need to be retained); more work for maintaining the originating stream sync source; refactor how the FNE handles peer network connections; * throw a warning if the user configured more then 8 upstream peer connections (more than this number can cause performance problems); * make non-peer-link peer ID masking optional; * add checking for traffic repeat to verify we are not trying to send traffic back to the source; * add checking for traffic repeat to verify we are not trying to send traffic back to an external source; * convert peer network protocol packet processing to a threaded model; * update copyright dates; * implement REST API for manipulating adjacent site map entries; * fix missed REST API initializer, need to pass the adj site map; * add DFSI/V.24 full duplex option (this allows dvmhost to repeat incoming frames back out); * Fix incorrect check of DFSI and FSC operating modes that resulted in a segfault (#92) Co-authored-by: faulty <faulty@evilcomputing.net> * document p25CorrCount in depth more; set the default p25CorrCount to 2; * properly call PacketBuffers clear() before leaving a scope to ensure contained buffers are deleted (otherwise we'll leak memory); * skip the first 6 bits of the TIA-102 DFSI VHDR (this is very strange, and is probably not kosher); * transparently pass voice frames with FID $20 (assumed to be Kenwood) when the PF flag is set (this allows Kenwoods flavor of encryption to pass); * relabel FID_DMRA to FID_MOT (this feature ID is assigned to Motorola); handle more conditions for FID $20 (Kenwood) on voice frames; * remove filterHeaders (this is deprecated, HDUs aren't sent over the network); perform frame length validation for P25 network frames (unlike DMR and NXDN P25 frames are variable length, requring length validation to prevent buffer under or overflows); fix issue with addr variable not being freed in InfluxDB handler; * [EXPERIMENTAL] add very initial support for dvmpatch to talk to a MMDVM P25 Gateway in P25 mode; * fixup dvmpatch support for talking to MMDVM P25 Gateway; * fix up handling of MMDVM call termination; * more work on better signalling end of call for MMDVM P25 gateway patches; better log traffic from MMDVM; * correct some incorrect timing; * add support for properly authorizing a peer to send Inhibit/Uninhibit commands; add some NXDN constants for remote control; * add columns to main peered peer list to represent if a peer is allowed to inhibit; * fixup informational logging; * add auto generation of a peer password; slightly increase the dialog size of the peer edit window; * fix TIA VHDR incorrect length; correct gatekeep accidentally setting TIA StartOfStream to 4 bytes instead of 3, because you know the TIA spec is incomprehensible with its bit alignment; * add some permanent log trace for DFSI over UDP tracing; correct startOfStreamTIA incorrectly sending a LDU1 NID; correct some offsets; * make sure we send out heartbeats *before* the heartbeat time; * send Start of Stream with voice data; * free memory in error case; remove unused variables; * correct some buffer allocations; ensure the AES class is deleted after use; * implement support for legacy radio affiliation (like P25) for DMR and NXDN (this fixes an issue where conventional DMR and NXDN systems would be unable to transmit onto affiliation only TGs); correct bad CSBK decoding in the FNE (forgot to check for dataSync); * code cleanup to correct compiler warnings; * add string file meta data info to Win32 EXEs; add icons to Win32 EXEs; * migrate and condense analog audio helper and G.711 codec routines into a common class called AnalogAudio for easy reuse; stub network protocol entries to eventually handle analog audio; * add support in the DVM network protocol for analog FM audio traffic; add support to the DVM FNE to properly switch analog FM audio traffic; bump revision from H to J; * add analog enable flag to fne config YAML; * prelim work to make dvmbridge pass analog audio directly into FNE network; * handle locking inside deleteBuffers(); * refactor FrameQueue mutex handling; don't start and stop the thread pool when the peer network opens/closes; * use unique_ptr for compression class instead of passing raw pointers; * refactor FrameQueue from using a std::unordered_map to a simple fixed array that is directly controlled; * refactor compression slightly; * better handle multi-threaded problems; * use a std::vector instead of a classical C allocated array for timestamp list; add error/logic checking for V.24/DFSI where the VHDR may send a TGID0 during a call causing a call rejection; * make timestamps vector static; * dump out of VHDR processing if call is in progress; * bump tarball version build stamp; * add option to forcibly allow TGID0 for badly behaved systems this will cause dvmhost to accept the call and not drop it, with the caveat that the TGID will be rewritten to TGID1, the network stack simply cannot service a TGID of 0 and as such we must rewrite the TGID a TIA-102 valid TGID; * simplify late entry handling where V.24 may send a dstId of 0; * whoops correct my own stupidity; * whoops correct my own stupidity (again); * add opcodes for Harris User Alias and GPS; add opcode for Motorola GPS on PTT; decode Harris User Alias in LDU LCs; * attempt at decoding the LDU RS values for both V.24 and TIA DFSI, this does not abort decoding in the ModemV24 right now and will simply log an error if the RS values for the LDU1 or LDU2 are to badly invalid; * alter field data based on recent testing; enhance and update debug log entries; add debug logging for Voice 1 and 10 start of voice frames for V.24; * add missing tag information for V.24 PDU; * fix incorrect handling of RFSS ID in host setup; * experimental fix to ignore wildly illegal TGIDs in the HDU; * simplify the V.24 HDU TGID logic, entirely ignore the TGID presented in the HDU and just wait for the LDU1 to set the rfLastDstId; * add grantDemand documentation to dvmpatch; * [EXPERIMENTAL] add experimental support for cross-encrypting patched P25 traffic; * reset call algo when a P25 call ends; * properly handle algo ID's for source and destinations; * missed reverseCrypto check; * [EXPERIMENTAL] for some configurations (**you know who you are god damn it**), allow dvmhost to be configured to "idle" on a non-zero TG when the RF talkgroup hangtimer stops, this effectively disables the promiscuous network Rx of the host for certain conventional operations, and requires RF-based TG steering to change the active talkgroup; cleanup the macros for DMR and NXDN that perform various repeated checks; * major refactor for V.24 support; * hide RSSI2 ICW errors; report on any voice frames reporting more then 0 errors; * properly sent VHDR1 and VHDR2 with proper opcodes (whoops); * add experimental support for TDULC over V.24; add some documentation for the V.24 and TIA voice header byte layout; * experimental support for transporting V.24 over IP; * initial super frame should start at 1; make sure to use proper constants instead of magic numbers; * reorganize code slightly; * cleanup format for, and make slightly more precise trace and error dumping log messaging; * add option for the FNE to directly log traffic denials to the system log; * centralize string for illegal RID access; * log total voice frame errors for TIA/DFSI mode; * minor PDU refactoring on when network PDU data is sent; correct issue with accepting a conventional data reg; * disable allowExplicitSourceId by default (not all subscribers support this); correct some bad handling of LC data; * log sysId and netId info for call start and end on the FNE log; * add setting netId and sysId to dvmbridge and dvmpatch for future use; * reorganize and expose decodeLC/encodeLC from LC; correct typo in TDULC headers; add explicit source id TDULC; add LC_GROUP explicit ID flag; * use shorthand macros where able; * enable or disable explicit source ID directly, don't require control to be enabled (important for trunked VC); * minor correction to handling explicit source ID; * properly set dummy SiteData for dvmbridge and dvmpatch (necessary to set the WACN and SysId); * handle condition defaulting WACN and SysId if network data for WACN and SysId is 0; * ensure unencrypted parameters if encryption is disabled; * copy dvmbridge change to dvmpatch for: ensure unencrypted parameters if encryption is disabled; * ignore extra ICW opcodes; * use raw LDU values from the call data instead of processed values if the MFId on the LC isn't TIA standard; * collate bit errors reported from V.24 or TIA; * typos; * allow a group affiliation on Conv+ (DVRS) to terminate a running TG hang timer; * add missing stop to the timer; * add WACN/SysId logging to SysView; * add global to disable transmitting logging to the network (this is used when the UDP socket fails to send data to prevent a crash condition talking to a null socket); unify errno to string message processing for clearity in logs; refactor network reconnect and retry logic to better handle a full connection reset cycle (this is useful for conditions where the network loss isn't transient and is something like a Ethernet or WiFi link drop causing the entire interface to become down temporarily); * remove unnecessary debug logging; * allow encoding user alias at the LC level; * see if we can calculate error percentages; * get rid of magic numbers for properly defined constants; * implement proper support for P25 LDU1 and LDU2 to pass call control bytes; allow a end-point to signal that a call is handing over/switching over from one stream ID/source ID to another; implement support on dvmbridge to properly handle stream/source ID switch over; * log call source switch over events; * whoops this should be a OR equals not equals; * correct issue where network frames would be ignored during RF calls causing buffer overflows; * cleanup and remove unnecessary and confusing C compiler macros; * cleanup and unify design a bit, for P25 move traffic collision checking into separate function calls; * add colorize-host.sh helper tool; update colorize-fne.sh tool for DMR and NXDN; * store status data for a private call; * during unit registration store the originating source peer ID for a given unit registration; use unit registration source ID to select the destination peer to send private call data to; * initial experimental implementation of private call routing: this introduces a new configuration flag "restrictPrivateCallToRegOnly", when set, this flag will influence how private calls are routed through the system private calls using restrictPrivateCallToRegOnly require both the source and destination subscribers to be unit registered with the system, when a private call occurs the system will utilize the source peer ID to restrict repeating the private call traffic only to the 2 peers involved in the private call FNEs will *always* receive private call traffic * rework stream validation for U2U calls slightly for P25; ensure P25 always sends the U2U control byte for private calls; * enhance handling of NXDN LC on the FNE; fix issue where dvmhost would not process a network RCCH burst; * refactor NXDN CC handling a bit; * add support to translate a raw DENY/QUEUE/CAUSE/REASON value for DMR/P25/NXDN into a human readable string; * whoops hastily missed std::string -> c_str conversion; * ensure SSRC is maintained for unit registration announcements; * more implementation for private call routing; * add missing clear flag to DMR payload activate RPC; * correct crash for fsc set to true when not using DFSI TIA-102/UDP; * add support to disable a failed CRC-32 for P25 PDU data; ignore CRC-32 errors for AMBT PDUs; * Add support in dvmbridge for a serial PTT activation switch. RTS is asserted on the serial port defined in bridge-config.yml for the duration of audio received, then is removed. (#102) * P25 PDU packet handling refactor (for future use); * remove test code; * fix issue where PDU RSPs weren't being sent to the FNE; correct timing around ARP and packet retry when subscriber is not ready; * add some more verbose logging; * experimental changes to PDU data handling; * correct CSV parsing for iden, peer list and RID lookup tables (we would skip parameters if they were empty); make the FNE P25 packet data handler operate in the TIA-102 asymmetric addressing mode (as would be required with FNE configurations); --------- Co-authored-by: Jamie <25770089+faultywarrior@users.noreply.github.com> Co-authored-by: faulty <faulty@evilcomputing.net> Co-authored-by: Lorenzo L. Romero <lorenzolrom@gmail.com> |
7 months ago |
|
|
882c2564ca |
correct double spaced formatting of CPP files in common; convert dvmhost to Doxygen documentation format; convert dvmfne to Doxygen documentation format; convert dvmcmd to Doxygen documentation format;
|
2 years ago |
|
|
10e1e12be0 |
add doxygen configuration for dvmhost project; add doxygen output directory; convert common static library to use doxygen style commenting and documentation;
|
2 years ago |
|
|
eacbc27143 |
add marking of whether an inbound CAC is long or short; fix issue with short CAC not properly building a puncturing buffer (even tho short CAC doesn't do puncturing, its needed for NXDN convolution); correct CAC getData() return; remove deprecated code causing decoding offsets to be wrong resulting in invalid RCCHs;
|
2 years ago |
|
|
cb0500b2e7 |
treewide: refactor constant variables into proper enumerations where appropriate (this applies to DMR, P25 and NXDN, and may introduce gremlins);
|
2 years ago |
|
|
5a5104ba2f |
treewide: perform general refactor of file headers, I've modified the file headers to follow rules from: https://www.kernel.org/doc/html/next/process/license-rules.html, this trims/compresses the file header section a bit reducing the number of lines at the top of every file quite a bit, going forward all new files should follow this new format (if its good enough for the Linux kernel, its good enough for me);
|
2 years ago |
|
|
d9e2458722 |
implement support for low-level TCP sockets; deprecate and remove new_unique macro and use appropriate std::make_unique; apply various clang linting;
|
2 years ago |
|
|
0f770462b7 |
update headers to properly reflect which module/package the file belongs;
|
2 years ago |
|
|
1379482fcc |
reorganize entire codebase structure; move common classes, files into a compile time static library; reorganize CMake files to make use of common static library to reduce compile time;
|
2 years ago |