Commit Graph

990 Commits (4bc3376faa4dea6e6ec6c5f2ca09ebb1e8005525)

Author SHA1 Message Date
Bryan Biedenkapp 1c51ff59bd add support to inject silence frames during a hang time when using UDP audio, where UDP audio has ended but the drop timer hasn't timed out;
10 months ago
Bryan Biedenkapp fb0e51f36a make Win32 compiles work again; correct incorrect behavior handling try_lock_for;
10 months ago
Bryan Biedenkapp 4fc8990d16 make InfluxDB queries async (non-blocking);
10 months ago
Bryan Biedenkapp d669410e46 whoops no drunk programming allowed;
10 months ago
Bryan Biedenkapp dbf67a4211 fix SysView shitting the bed when the JSON object for a peer is in an unknown state because it is state transitioning or still connecting;
10 months ago
Bryan Biedenkapp 7d6d4f4134 for peer FNE connections we should never disable network services on ACL NAK (this would result in a condition where the peer FNE would need to be restarted in order to reconnect, which isn't convenient);
10 months ago
Bryan Biedenkapp 6e589d9665 add peer connect and disconnect callbacks (for future use);
10 months ago
Bryan Biedenkapp 8dd504adea add support to enable/disable CC message stream debug when a protocol debug is enabled; correct some bad handling of the MESSAGE_TYPE_REG NXDN command;
10 months ago
Bryan Biedenkapp 27c852e4c2 remove the broken last IMBE logic; add logic to ensure a consistent LDU superframe stream (this will result in in-call garble for the length of a missed LDU, where LDUs are dropped due to extreme call load on the FNE);
10 months ago
Bryan Biedenkapp ecc8bfa32e fix issue where peer identity was being used instead of peer ID for FNE peer network lists; appropriately log blockTrafficTo configurations at startup;
10 months ago
Bryan Biedenkapp 5ecfc58300 permitted TG RPCs shouldn't test for m_enableControl;
10 months ago
Bryan Biedenkapp 63c85f3781 implement proper blocking operations for RPC; don't allow a RPC instance to call itself (i.e. you can't listen on port 127.0.0.1:9890 and then use req() to send an RPC to the listening instance); fix issue with RPC_PERMIT_XXX_TG not being a blocking operation; fix issue with RPC_DMR_TSCC_PAYLOAD_ACT not being a blocking operation;
10 months ago
Bryan Biedenkapp 81d4a40d24 do our best to attempt to warn on possible misconfiguration of channel RPC configuration;
10 months ago
Bryan Biedenkapp 202f3e57f8 make validate() TDU handling more similar to isPeerPermitted();
10 months ago
Bryan Biedenkapp 559647a28f we didn't have TDU filtering in validate(), just isPeerPermitted() this would let errant TDUs pass in some cases;
10 months ago
Bryan Biedenkapp b86a5ce939 add some mutex locking around modification of the channel lookup table;
11 months ago
Bryan Biedenkapp 3da4eb2d40
REST -> RPC Migration (#84)
11 months ago
Bryan Biedenkapp a242369496 flag the inbound channel as busy for DFSI messages;
11 months ago
Bryan Biedenkapp 110824e73b fix implementation for acking Start of Stream (writeImmediate wasn't really necessary using STT_NON_IMBE_NO_JITTER causes queued packets to bypass jitter buffer timing);
11 months ago
Bryan Biedenkapp d7b887a32d implement enhancement/alterations to allow back-to-back configuration of dvmhost in TIA-102 DFSI mode (with FSC enabled); correct minor nullref handling in FSCACK; add writeImmediate() to ModemV24 to support TIA-102's need to immediately ack a Start of Stream block;
11 months ago
Bryan Biedenkapp c3b31d241e hide the excessive noise during isPeerPermitted() where the FNE will complain of a peer with a uninitialized affiliations lookup;
11 months ago
Bryan Biedenkapp 6b4d7c5539 piss everyone off and properly relabel "enabled" options to "enable" to keep project consistency;
11 months ago
Bryan Biedenkapp ff3733ffef starting offset for ARC4 is 0;
11 months ago
Bryan Biedenkapp e533ac495f fix potential nullptr problem with Log when used from multiple threads during shutdown; reduce the intercycle delay to 2ms from 5ms for all main FNE threads;
11 months ago
Bryan Biedenkapp 2258e3a065 correct issue with passing a key request to the upstream master; comment on self-delete operations, stop() for lookup tables;
11 months ago
Bryan Biedenkapp a2fa303217 reorganize code, move Network class from host into common as its being used more as a generic peer network class; add some warning messaging to the FNE when a peer link or external peer (i.e. intra-FNE connection) drops;
11 months ago
Bryan Biedenkapp 0496737d46 late night whoopsie, forgot to add some critical stuff (note to self: don't do programming at near midnight its bad for you);
11 months ago
Bryan Biedenkapp 5a96f10906 add peer ID editor; implement support in the peer lookup and FNE to validate whether or not a peer can perform a encryption key request;
11 months ago
Bryan Biedenkapp 6927ea284c add preliminary support for forwarding a key request up to the next FNE (if we are Peer Linked);
11 months ago
Bryan Biedenkapp ea8699e03f add some guard rails around when batch operations add/remove;
11 months ago
Bryan Biedenkapp 231b829660 add batch manipulation operations for adding a peer to inclusion and always lists for all TGs;
11 months ago
Bryan Biedenkapp 2d3aeb5307 reorganize code make things cleaner -- move P25 crypto into its own common class for reuse purposes;
11 months ago
Bryan Biedenkapp 03de7fdb0b fix range clipping when using rxAudioGain or txAudioGain (previous code would allow a negative gain (to lower amplitude) to allow overflowing sample values);
11 months ago
Bryan Biedenkapp cacec1fe8a apparently Windows CPP is a pain in the ass, make it happy;
11 months ago
Bryan Biedenkapp 727ff3ed7b add preliminary encryption support to dvmbridge (P25-only supports AES256 and ARC4); correct and hide some debug trace for FNE KMM messaging; implement support to generate a ARC4 keystream;
11 months ago
Bryan Biedenkapp 1c85e35ba2 correct possible buffer cleanup issues;
11 months ago
Bryan Biedenkapp 33d6c919d7 runAsThread should not automatically cleanup the passed thread_t, this should be done by the caller;
11 months ago
Bryan Biedenkapp ba23d0250d instead of assert return false; better handle buffer init;
11 months ago
Bryan Biedenkapp 861a608bca add some more debug trace while in TIA mode;
11 months ago
Bryan Biedenkapp d8e6b17fbb okay, because a certain OEM's system does, idiotic things, lets handle a START_OF_STREAM block along side FULLRATE_VOICE blocks;
11 months ago
Bryan Biedenkapp 8883feba9c Revert "payload flag should be set false for ACK block type DFSI messages;"
11 months ago
Bryan Biedenkapp ca09893970 payload flag should be set false for ACK block type DFSI messages;
11 months ago
Bryan Biedenkapp db5a2310a4 send a return ACK on reception of a Start of Stream;
11 months ago
Bryan Biedenkapp de02fdd445 [EXPERIMENTAL] experimental change for @faultywarrior, make V24 UDP respond back to whatever the source port that sent a request was;
11 months ago
Bryan Biedenkapp 3798c52b54 reorganize SIP handler code slighty;
11 months ago
Bryan Biedenkapp cf2dee95d2 code cleanup; add SIP lexer and data handlers;
11 months ago
Bryan Biedenkapp 07edd0dbff handle illegal call end properly;
11 months ago
Bryan Biedenkapp 1e8c266d8a implement support to handle KMMs at the FNE; hardcode the host to ignore repeating KMM frames; implement HELLO KMM support and response with a NO_SERVICE (we don't have OTAR implemented at this time);
11 months ago
Bryan Biedenkapp 3dd7871ee6 ensure FNE key req/rsp handle variable length keys properly (fixes an issue with sending DES and ARC4 keys as 32-byte length keys);
11 months ago
Bryan Biedenkapp 9806ece4f5 add KMM opcodes for dereg, reg, NACK, no service, and zeroize;
11 months ago
Bryan Biedenkapp 79f00524ba add support to KMM factory for inventory lists;
11 months ago
Bryan Biedenkapp 7dc90b577f fix KMM copy issue; implement list key IDs and keysets inventory reponses;
11 months ago
Bryan Biedenkapp c4eefac2c7 typo;
11 months ago
Bryan Biedenkapp df648a2c50 add more KMM frames; implement support in the network core for key request and response (this allows peers to request a encryption key from a EKC file loaded on the FNE to use for encryption/decryption, i.e. peer keyloading);
11 months ago
Bryan Biedenkapp 0fd6758161 allow always send peers to ignore reject unknown RID (always send peers are treated specially);
11 months ago
Bryan Biedenkapp c9c98345b6 refactor forced late ACL updates, the old way was causing erroneous multiple ACL messages to appear in the log giving the impression that the FNE was updating ACL's rapidly;
11 months ago
Bryan Biedenkapp 1afc94931b correct some minor Win32 compilation errors (CryptoContainer isn't supported on Win32 right now);
11 months ago
Bryan Biedenkapp cad8e3e347 add ICC support to bridge (this is a naive approach however...);
11 months ago
Bryan Biedenkapp 27162d197d add key request and response opcodes (not implemented yet);
11 months ago
Bryan Biedenkapp 75a09a375b right align permitted RID count;
11 months ago
Bryan Biedenkapp 0ee2b5c756 bump version to 4.20G (from 4.11G) [THIS MARKS INCLUSION OF IN-CALL CONTROL IN MASTER]; ensure always peers can violate the rules as usual; add permitted RIDs assignment to JSON handling for REST APIs;
11 months ago
Bryan Biedenkapp 6812029491 Merge branch 'master' into incall_ctrl
11 months ago
Bryan Biedenkapp ded260216a implement the beginnings of KMM frame handling (for future use);
11 months ago
Bryan Biedenkapp 676a112313 fix missing check for ENABLE_TCL_SSL compilation directive; properly flag crypto as hard disabled if ENABLE_TCL_SSL isn't set;
11 months ago
Bryan Biedenkapp 78f034511f initial support for loading KFDtool EKC files (this is currently unused but is a future stepping-stone for encryption key handling);
11 months ago
Bryan Biedenkapp 69f8fbe884 add better logic to handle forcing peer-link updates; ensure ACL's go out regardless of stream if too much time has passed;
11 months ago
Bryan Biedenkapp b1f10a87ab add some helper routines to the peer list lookup;
11 months ago
Bryan Biedenkapp cb335cffed add some exception checking around some cases where vector types are used;
11 months ago
Bryan Biedenkapp 4617a817a1 update modem submodule;
11 months ago
Bryan Biedenkapp b9830263db fix dstId not being appropriately set;
11 months ago
Bryan Biedenkapp 8823fc09b6 correct erroneous log messages; fix remote UDP mode handler (this was mishandling frames in some situations); update hotspot and modem submodules;
11 months ago
Bryan Biedenkapp 6fd3c68de3 allow call end to cleanup a stream ID associated to a given call stream;
11 months ago
Bryan Biedenkapp beeebe3587 fix issue with FNE diagnostic logging;
11 months ago
Bryan Biedenkapp 6e551a568a fix incorrect usage of slotNo, in this case slotNo refers to the index into the stream ID array, not the actual slot number;
11 months ago
Bryan Biedenkapp d87c1f76c7 typo;
11 months ago
Bryan Biedenkapp 20a096ab49 remove stream ID handling from DiagNetwork (these are always sent with a stream ID of 0 anyway...); revert Rx stream ID to stream ID validation check in Network;
11 months ago
Bryan Biedenkapp ef1a0df496 refactor FNE RTP packet handling, this change better handles a peer end-point transmitting multiple varied RTP streams; refactor promiscuous handling of RTP streams on the host network API; refactor handling non-promiscuous handling of RTP streams on the host network API; bump project version from 4.11F to 4.11G to reflect these larger changes; correct bad use of magic numbers when dealing with signal values;
11 months ago
Bryan Biedenkapp 4025db8200 clarify more lookup table log entries;
11 months ago
Bryan Biedenkapp f051434e7b adjust lookup table logging slightly;
11 months ago
Bryan Biedenkapp 64bcb56228 enhance debug logging to incorporate both file and line numbers (when provided by the compiler) and optionally implement LogDebugEx macro to also incorporate the caller identifying the function name; correct LogDebug uses in some cases that should have been LogMessage;
11 months ago
Bryan Biedenkapp c68b99dc61 silence frame queue read errors after 5 consecutive errors (this is to prevent log spam);
11 months ago
Bryan Biedenkapp 086730320d code cleanup;
11 months ago
Bryan Biedenkapp e38488f602 fix potential bridge memory leak when using USRP audio; add support for bridge to reset and start a new call when using UDP metadata *and* overriding the source ID;
11 months ago
Bryan Biedenkapp cbce2fbdf0 update copyright dates;
11 months ago
Bryan Biedenkapp 633ff29f55 fix typo;
11 months ago
Bryan Biedenkapp ad8713fbe8 issue a P_CLEAR proper at the end of a network call;
11 months ago
Bryan Biedenkapp 71d55b1645 correct some late night strangeness when handling whether or not a slot is a TSCC for remote grant demand processing (this is what I get for trying to quickly push out decently old branch code);
11 months ago
Bryan Biedenkapp e4d2d677fe last minute fix -- the original implementation was naive and always aborted incorrectly;
11 months ago
Bryan Biedenkapp 172f0f2eb0 missed commit when this was manually merged;
11 months ago
Bryan Biedenkapp 151275ce6f implement initial DMR remote grant demand logic (this is mostly untested);
11 months ago
firealarmss aedabceac7
Add support for USRP (#83)
11 months ago
Bryan Biedenkapp db1d000b21 increase width of "alias" column in tged;
12 months ago
Bryan Biedenkapp 7063ce36a0 refactor how netLDUx buffers are built, and ensure buffers are filled with appropriate null IMBE frames; add support to remote grant demand to include whether or not the grant should set the encrypted flag; add warning to notify a user that a misconfiguration for a voice channel exists when a dedicated trunked voice channel has control data enabled; fix display of RF power level during startup;
12 months ago
Bryan Biedenkapp 3177d38897 Merge branch 'master' into incall_ctrl
12 months ago
Bryan Biedenkapp 89210c05aa add support to optionally demand a SU perform a full registration with a site if a affiliation request is refused;
12 months ago
Bryan Biedenkapp 560ef40dca indicate what slot is ending a call for DMR on the FNE; correct bad end-of-call handling for DMR mode on bridge;
12 months ago
Bryan Biedenkapp f483bbf2ed update commenting;
12 months ago
Bryan Biedenkapp 1e458ce682 don't transmit EXT_FUNC across the network when issued to an individual site, the FNE should be generating network wide EXT_FUNC messages (fixes #62);
12 months ago
Bryan Biedenkapp a2b1367091 fix buffer overrun;
12 months ago
Bryan Biedenkapp 29d37126ef cleanup and fix MuLaw encoding code;
12 months ago
Bryan Biedenkapp 6e327eb2b2 for debugging purposes enhance debug trace messaging;
12 months ago
Bryan Biedenkapp afbd7e9848 correct pcmLength size when using RTP frames;
12 months ago
Bryan Biedenkapp 02581f2c3f file cleanups;
12 months ago
Bryan Biedenkapp 18e0417381 add experimental support to wrap G.711 uLaw frames in RTP;
12 months ago
Bryan Biedenkapp fd47396e9e typo;
12 months ago
Bryan Biedenkapp a23c900842 flag V.24 connected if FSC is connected;
12 months ago
Bryan Biedenkapp da5cb6eb7d Merge branch 'master' into incall_ctrl
12 months ago
Bryan Biedenkapp a4e8138c74 enhance TDULC CALL_TERM handling in dvmhost; allow dvmfne to optionally drop TDULC CALL_TERMs or pass them;
1 year ago
Bryan Biedenkapp 8c48c9bcbe fix huge glaring bug where the dvmhost was trying to transmit TDULCs across the network as TSBKs; implement proper support to transit TDULC data across the network;
1 year ago
Bryan Biedenkapp e88a3a0b2a add support to decode LC_CALL_TERM when DVM is used in some reverse repeater situations;
1 year ago
Bryan Biedenkapp 8e7c3436fc add new configuration option to disable all U2U calls from passing;
1 year ago
Bryan Biedenkapp 67c84cdc0a pass external flag to the intial isPeerPermitted() check, this is to fix an issue where if a external peer isn't in the always list for an affiliated group it may attempt to check an affiliation list that doesn't exist (external peers don't typically have affiliation lists);
1 year ago
Bryan Biedenkapp b593f39d0d ensure during RPTK failure we cleanup the connection if a NAK occurs;
1 year ago
Bryan Biedenkapp 333ac5c164 add experimental support to encode audio in G.711 uLaw, optionally including a length header;
1 year ago
Bryan Biedenkapp c1d8186da9 correct situation where a nullptr crash during shutdown would occur if the update timers for RID or TGID ACL on the host were set to 0 (i.e. no update);
1 year ago
Bryan Biedenkapp b419c56405 reject U2U voice channel grant for P25, DMR and NXDN if the unit being called isn't registered;
1 year ago
Bryan Biedenkapp 1e6282c92b ensure the group flag is set if the LCO is PRIVATE;
1 year ago
Bryan Biedenkapp 3f75869a92 add some mutex locking to the timestamp map updates to prevent concurrency bugs;
1 year ago
Bryan Biedenkapp 32494fb19d change RF power level of hotspots to 95 instead of 100 to prevent a condition where spurious emissions may be generated; update README.md to include methods to calibrate a hotspot if a service monitor is available;
1 year ago
Bryan Biedenkapp 19bbd4d6d9 fix crash when deleting TGID causes the TG list to scroll;
1 year ago
Bryan Biedenkapp a868ff3264 fix idiotic bug where the activity log path wasn't being properly used; add potential fix for "tail riding" conditions with network traffic, that could cause the RF talkgroup hangtimer to be active when it shouldn't be;
1 year ago
Bryan Biedenkapp f3c86d2a8e support configuring SSL TCP sockets for non-blocking operations;
1 year ago
Bryan Biedenkapp 9e68049cd8 ensure first super-frame LDU1 after an HDU sets the encrypt flag;
1 year ago
Bryan Biedenkapp cb309fdb0f reasonably this message shouldn't even appear if we don't have the channel granted;
1 year ago
Bryan Biedenkapp 32c49b93ea filter out DVM CALL_TERM packets on the FNE based on TGID rules;
1 year ago
Bryan Biedenkapp c2f2e8c69f add slot display to talkgroup list;
1 year ago
Bryan Biedenkapp 7979b6ff40 fix a thread concurrency issue when modifying the m_status unordered maps, instead of utilizing erase and checking if entries don't exist add a activeCall flag and check that, this resolves a possible dual access issue with find_if and erase that could result in an FNE crash;
1 year ago
Bryan Biedenkapp 3b395a99cf fix issue with potentional concurrency crash when updating lookup tables in PEER_LINK;
1 year ago
Bryan Biedenkapp a82f848de4 correct bad handling for signal and compact fields of the TIA-102 control octet; enhance how the length of a TIA-102 full rate voice frame is determined; better handle initialization of the additional data fields for a TIA-102 full rate voice frame; correct bug using LDU2 frame 10 vs LDU2 frame 18 for LSD data on a full rate voice frame; implement a naive approach to performing superframe counting; correct bug causing the first full rate voice frames to never be transmitted for LDU1 or LDU2; remove assertion check for control port;
1 year ago
Bryan Biedenkapp 95a8d269be fix null reference exception when dealing with VHDR in TIA-102 mode;
1 year ago
Bryan Biedenkapp 6f61276552 disable source ID check when filtering TDUs;
1 year ago
Bryan Biedenkapp 2e0ffab13d correct un-updated debug handles in LC; correct TIA mode HDU handling;
1 year ago
Bryan Biedenkapp 406943d75f add FSCSelChannel message decoding (not that we need it);
1 year ago
Bryan Biedenkapp 164d2b6c87 whoops actually instantiate FSCMessage for FSC_SEL_CHAN;
1 year ago
Bryan Biedenkapp 6d5e158808 just ack the FSC_SEL_CHAN command when requested; fix data offset for TIA-102 DFSI data;
1 year ago
Bryan Biedenkapp 418ffeea24 fix null reference;
1 year ago
Bryan Biedenkapp fea335dc1e warn on connection attempts trying to set heartbeats larger then 30 seconds;
1 year ago
Bryan Biedenkapp 6b9d906f68 make FSC timeout just slightly more then the maximum heartbeat time;
1 year ago
Bryan Biedenkapp 0e5d075c62 expose configuring the FSC heartbeat interval; expose enabling TIA mode DFSI frames; correct FullRateVoice memory copy for additional data;
1 year ago
Bryan Biedenkapp 2d450f64b0 [EXPERIMENTAL] initial TIA-102 DFSI packet support (not enabled yet);
1 year ago
Bryan Biedenkapp ddda823b55 whoops forgot to add files for previous commit;
1 year ago
Bryan Biedenkapp ca7149e9f4 add FSC_REPORT_SEL_MODES;
1 year ago
Bryan Biedenkapp da3a2a1869 fix long standing dvmhost shutdown bug (object cleanup wasn't occuring due to bad state change handling); refactor FSC packet data classes; remove FSCResponse and FSCConnectResponse (these were ill conceived due to bad interpretation of TIA-102 specifications); correct FSCACK not properly decoding response user data after packet data; refactor the way the FSC message factory createMessage() function created instances of FSC packets; refactor how opening and closing the FSC port is handled; better implement the FSC state machine; correct bad response to an FSC_CONNECT (due to incorrect understanding of TIA-102 specifications);
1 year ago
Bryan Biedenkapp ff0a5c57c7 fix issue where ports wouldn't be opened after FSC connection establishment;
1 year ago
Bryan Biedenkapp 1a8f3bcfb9 refactor message;
1 year ago
Bryan Biedenkapp 3347035d0d reenable debug message;
1 year ago
Bryan Biedenkapp 85dd6fce09 remove unused variable;
1 year ago
Bryan Biedenkapp 19d8f2237f refactor FSC (it was entirely just broken);
1 year ago
Bryan Biedenkapp 88dcb0bc96 update copyright dates;
1 year ago
Bryan Biedenkapp 14b749fff1 correct issue where DFSI FSC control port wasn't living at the voice conveyance port + 1; refactor the proof of concept V24UDPport class to handle voice conveyance frames in their own thread (this is so the main clock doesn't get locked up); correct bad offsetting of data for V24UDPort causing weird overflow, underflow and buffer corruption;
1 year ago

Powered by TurnKey Linux.