Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
135 commits
Select commit Hold shift + click to select a range
8b001c2
implement user-defined adj site mapping to allow fine grained control…
gatekeep May 31, 2025
cb175e2
BUGFIX: patch issue where the FNE would not maintain the source peer …
gatekeep May 31, 2025
f225ac5
fix typo in original implementation, peerId should be the peerId and …
gatekeep May 31, 2025
5e2615f
log ssrc for various data points (the ssrc is the RTP originating syn…
gatekeep May 31, 2025
829bb86
bump build number;
gatekeep May 31, 2025
06c5fc7
Merge branch 'fne_adj_site_map' into r04h32_dev
gatekeep May 31, 2025
5299774
add peer ID masking support (this is useful for FNEs that are "public…
gatekeep May 31, 2025
89847e9
throw a warning if the user configured more then 8 upstream peer conn…
gatekeep May 31, 2025
81a87d7
make non-peer-link peer ID masking optional;
gatekeep May 31, 2025
5603575
add checking for traffic repeat to verify we are not trying to send t…
gatekeep May 31, 2025
cd96fd1
add checking for traffic repeat to verify we are not trying to send t…
gatekeep May 31, 2025
83e379a
convert peer network protocol packet processing to a threaded model;
gatekeep Jun 1, 2025
28a120f
update copyright dates;
gatekeep Jun 1, 2025
6d632d6
implement REST API for manipulating adjacent site map entries;
gatekeep Jun 1, 2025
3067036
fix missed REST API initializer, need to pass the adj site map;
gatekeep Jun 1, 2025
a3fa75d
add DFSI/V.24 full duplex option (this allows dvmhost to repeat incom…
gatekeep Jun 3, 2025
1779a44
Fix incorrect check of DFSI and FSC operating modes that resulted in …
faultywarrior Jun 6, 2025
5cf70cc
document p25CorrCount in depth more; set the default p25CorrCount to 2;
gatekeep Jun 6, 2025
e269145
properly call PacketBuffers clear() before leaving a scope to ensure …
gatekeep Jun 6, 2025
7b8c215
skip the first 6 bits of the TIA-102 DFSI VHDR (this is very strange,…
gatekeep Jun 7, 2025
73bcf73
transparently pass voice frames with FID $20 (assumed to be Kenwood) …
gatekeep Jun 7, 2025
e09c157
relabel FID_DMRA to FID_MOT (this feature ID is assigned to Motorola)…
gatekeep Jun 7, 2025
cc5aa6d
remove filterHeaders (this is deprecated, HDUs aren't sent over the n…
gatekeep Jun 9, 2025
efd7394
[EXPERIMENTAL] add very initial support for dvmpatch to talk to a MMD…
gatekeep Jun 10, 2025
3c1ebab
fixup dvmpatch support for talking to MMDVM P25 Gateway;
gatekeep Jun 10, 2025
1d83f8e
fix up handling of MMDVM call termination;
gatekeep Jun 10, 2025
b8fd50d
more work on better signalling end of call for MMDVM P25 gateway patc…
gatekeep Jun 10, 2025
ec53aca
correct some incorrect timing;
gatekeep Jun 10, 2025
a516178
add support for properly authorizing a peer to send Inhibit/Uninhibit…
gatekeep Jun 11, 2025
ac0646e
add columns to main peered peer list to represent if a peer is allowe…
gatekeep Jun 11, 2025
109697a
fixup informational logging;
gatekeep Jun 11, 2025
65ebed3
add auto generation of a peer password; slightly increase the dialog …
gatekeep Jun 11, 2025
cfc7bb5
fix TIA VHDR incorrect length; correct gatekeep accidentally setting …
gatekeep Jun 12, 2025
68af6fb
add some permanent log trace for DFSI over UDP tracing; correct start…
gatekeep Jun 12, 2025
faca19f
make sure we send out heartbeats *before* the heartbeat time;
gatekeep Jun 12, 2025
91afeef
send Start of Stream with voice data;
gatekeep Jun 12, 2025
23610ac
free memory in error case; remove unused variables;
gatekeep Jun 16, 2025
5a01c67
correct some buffer allocations; ensure the AES class is deleted afte…
gatekeep Jun 18, 2025
63c31ee
implement support for legacy radio affiliation (like P25) for DMR and…
gatekeep Jun 18, 2025
96ac995
code cleanup to correct compiler warnings;
gatekeep Jun 19, 2025
8e66766
add string file meta data info to Win32 EXEs; add icons to Win32 EXEs;
gatekeep Jun 19, 2025
1d3a796
migrate and condense analog audio helper and G.711 codec routines int…
gatekeep Jun 20, 2025
d71c02f
add support in the DVM network protocol for analog FM audio traffic; …
gatekeep Jun 20, 2025
b9e69e6
add analog enable flag to fne config YAML;
gatekeep Jun 20, 2025
f912df9
prelim work to make dvmbridge pass analog audio directly into FNE net…
gatekeep Jun 21, 2025
fc839a5
handle locking inside deleteBuffers();
gatekeep Jun 24, 2025
59f007d
refactor FrameQueue mutex handling; don't start and stop the thread p…
gatekeep Jun 25, 2025
fcdb82a
use unique_ptr for compression class instead of passing raw pointers;
gatekeep Jun 25, 2025
4d4e1d4
refactor FrameQueue from using a std::unordered_map to a simple fixed…
gatekeep Jul 3, 2025
a3d0056
refactor compression slightly;
gatekeep Jul 3, 2025
001646b
Merge branch 'r04j32_dev' into framequeue_ts_refactor
gatekeep Jul 3, 2025
a3852b9
better handle multi-threaded problems;
gatekeep Jul 3, 2025
eccb8ba
use a std::vector instead of a classical C allocated array for timest…
gatekeep Jul 7, 2025
c0479de
make timestamps vector static;
gatekeep Jul 7, 2025
087b1ab
dump out of VHDR processing if call is in progress;
gatekeep Jul 8, 2025
8602935
bump tarball version build stamp;
gatekeep Jul 11, 2025
28bd5a8
add option to forcibly allow TGID0 for badly behaved systems this wil…
gatekeep Jul 11, 2025
a7bb2f7
simplify late entry handling where V.24 may send a dstId of 0;
gatekeep Jul 12, 2025
d9bfeed
whoops correct my own stupidity;
gatekeep Jul 12, 2025
1886b4c
whoops correct my own stupidity (again);
gatekeep Jul 12, 2025
0073cc1
add opcodes for Harris User Alias and GPS; add opcode for Motorola GP…
gatekeep Jul 14, 2025
a71381e
attempt at decoding the LDU RS values for both V.24 and TIA DFSI, thi…
gatekeep Jul 15, 2025
7813cd6
alter field data based on recent testing; enhance and update debug lo…
gatekeep Jul 15, 2025
453755c
add missing tag information for V.24 PDU;
gatekeep Jul 15, 2025
a24602d
fix incorrect handling of RFSS ID in host setup;
gatekeep Jul 25, 2025
efe1357
experimental fix to ignore wildly illegal TGIDs in the HDU;
gatekeep Jul 27, 2025
1c07853
simplify the V.24 HDU TGID logic, entirely ignore the TGID presented …
gatekeep Jul 27, 2025
3959e85
add grantDemand documentation to dvmpatch;
gatekeep Jul 28, 2025
e602a2e
[EXPERIMENTAL] add experimental support for cross-encrypting patched …
gatekeep Jul 29, 2025
6d75528
reset call algo when a P25 call ends;
gatekeep Jul 29, 2025
9354dbf
properly handle algo ID's for source and destinations;
gatekeep Jul 29, 2025
92cb825
missed reverseCrypto check;
gatekeep Jul 29, 2025
d94f8d6
[EXPERIMENTAL] for some configurations (**you know who you are god da…
gatekeep Jul 29, 2025
867af44
major refactor for V.24 support;
gatekeep Aug 5, 2025
76b3dee
hide RSSI2 ICW errors; report on any voice frames reporting more then…
gatekeep Aug 5, 2025
0f84936
properly sent VHDR1 and VHDR2 with proper opcodes (whoops);
gatekeep Aug 5, 2025
3cec2cf
add experimental support for TDULC over V.24; add some documentation …
gatekeep Aug 5, 2025
7b3eede
experimental support for transporting V.24 over IP;
gatekeep Aug 5, 2025
b9b0fa1
initial super frame should start at 1; make sure to use proper consta…
gatekeep Aug 5, 2025
acb0827
reorganize code slightly;
gatekeep Aug 5, 2025
a12734b
cleanup format for, and make slightly more precise trace and error du…
gatekeep Aug 6, 2025
3e8d300
add option for the FNE to directly log traffic denials to the system …
gatekeep Aug 6, 2025
e3280f2
centralize string for illegal RID access;
gatekeep Aug 6, 2025
db7054b
log total voice frame errors for TIA/DFSI mode;
gatekeep Aug 6, 2025
5dbe77e
minor PDU refactoring on when network PDU data is sent; correct issue…
gatekeep Aug 7, 2025
ba356ee
disable allowExplicitSourceId by default (not all subscribers support…
gatekeep Aug 7, 2025
cbcf539
log sysId and netId info for call start and end on the FNE log;
gatekeep Aug 7, 2025
996bd15
add setting netId and sysId to dvmbridge and dvmpatch for future use;
gatekeep Aug 7, 2025
8e1f34b
reorganize and expose decodeLC/encodeLC from LC; correct typo in TDUL…
gatekeep Aug 7, 2025
2d8fcf1
use shorthand macros where able;
gatekeep Aug 7, 2025
0c172e7
enable or disable explicit source ID directly, don't require control …
gatekeep Aug 7, 2025
4268cbc
minor correction to handling explicit source ID;
gatekeep Aug 8, 2025
f4c6d79
properly set dummy SiteData for dvmbridge and dvmpatch (necessary to …
gatekeep Aug 8, 2025
d67f7f9
handle condition defaulting WACN and SysId if network data for WACN a…
gatekeep Aug 8, 2025
7773907
ensure unencrypted parameters if encryption is disabled;
gatekeep Aug 8, 2025
c0f7603
copy dvmbridge change to dvmpatch for: ensure unencrypted parameters …
gatekeep Aug 8, 2025
99abd1b
ignore extra ICW opcodes;
gatekeep Aug 8, 2025
944c769
use raw LDU values from the call data instead of processed values if …
gatekeep Aug 8, 2025
0e66b5a
collate bit errors reported from V.24 or TIA;
gatekeep Aug 8, 2025
33831e5
typos;
gatekeep Aug 8, 2025
7fe9671
allow a group affiliation on Conv+ (DVRS) to terminate a running TG h…
gatekeep Aug 9, 2025
f8371c6
add missing stop to the timer;
gatekeep Aug 9, 2025
442a246
add WACN/SysId logging to SysView;
gatekeep Aug 9, 2025
d60229c
add global to disable transmitting logging to the network (this is us…
gatekeep Aug 9, 2025
149d32b
remove unnecessary debug logging;
gatekeep Aug 9, 2025
b7fc3bb
allow encoding user alias at the LC level;
gatekeep Aug 9, 2025
87ef4dc
see if we can calculate error percentages;
gatekeep Aug 10, 2025
8ebe80f
get rid of magic numbers for properly defined constants;
gatekeep Aug 10, 2025
44d8f39
implement proper support for P25 LDU1 and LDU2 to pass call control b…
gatekeep Aug 10, 2025
5b443b7
log call source switch over events;
gatekeep Aug 10, 2025
6d4f726
whoops this should be a OR equals not equals;
gatekeep Aug 10, 2025
9030e27
correct issue where network frames would be ignored during RF calls c…
gatekeep Aug 12, 2025
e3749a9
cleanup and remove unnecessary and confusing C compiler macros;
gatekeep Aug 12, 2025
a5eb243
cleanup and unify design a bit, for P25 move traffic collision checki…
gatekeep Aug 13, 2025
92980d1
add colorize-host.sh helper tool; update colorize-fne.sh tool for DMR…
gatekeep Aug 13, 2025
babefe7
store status data for a private call;
gatekeep Aug 15, 2025
aec9857
during unit registration store the originating source peer ID for a g…
gatekeep Aug 15, 2025
f1990e5
initial experimental implementation of private call routing:
gatekeep Aug 15, 2025
86226ee
rework stream validation for U2U calls slightly for P25; ensure P25 a…
gatekeep Aug 15, 2025
8a6040a
enhance handling of NXDN LC on the FNE; fix issue where dvmhost would…
gatekeep Aug 15, 2025
45d662f
refactor NXDN CC handling a bit;
gatekeep Aug 16, 2025
a5cfeb7
add support to translate a raw DENY/QUEUE/CAUSE/REASON value for DMR/…
gatekeep Aug 16, 2025
0858ad8
whoops hastily missed std::string -> c_str conversion;
gatekeep Aug 16, 2025
651818f
ensure SSRC is maintained for unit registration announcements;
gatekeep Aug 16, 2025
01eed3b
more implementation for private call routing;
gatekeep Aug 16, 2025
78110c7
add missing clear flag to DMR payload activate RPC;
gatekeep Aug 18, 2025
e5e0f26
correct crash for fsc set to true when not using DFSI TIA-102/UDP;
gatekeep Aug 21, 2025
b758099
add support to disable a failed CRC-32 for P25 PDU data; ignore CRC-3…
gatekeep Aug 22, 2025
e26a024
Add support in dvmbridge for a serial PTT activation switch. RTS is …
lorenzolrom Aug 23, 2025
cbccf39
P25 PDU packet handling refactor (for future use);
gatekeep Aug 28, 2025
1f899a1
remove test code;
gatekeep Aug 29, 2025
119b4ff
fix issue where PDU RSPs weren't being sent to the FNE; correct timin…
gatekeep Aug 29, 2025
2898438
add some more verbose logging;
gatekeep Aug 29, 2025
a7edc21
experimental changes to PDU data handling;
gatekeep Aug 29, 2025
79ae3eb
correct CSV parsing for iden, peer list and RID lookup tables (we wou…
gatekeep Aug 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions configs/adj_site_map.example.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#
# Digital Voice Modem - Adj. Site Map
#

#
# Peer List
#
peers:
# Peer ID.
- peerId: 1234567
# Flag indicating whether this talkgroup is active or not.
active: true
# List of peer IDs that are neighbors for this peer.
neighbors: []
13 changes: 12 additions & 1 deletion configs/bridge-config.example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,11 @@ system:
# Textual Name
identity: BRIDGE

# Network ID (WACN).
netId: BB800
# System ID.
sysId: 001

# PCM audio gain for received (from digital network) audio frames.
# - This is used to apply gain to the decoded IMBE/AMBE audio, post-decoding.
rxAudioGain: 1.0
Expand All @@ -145,7 +150,7 @@ system:
# - (Not used when utilizing external USB vocoder!)
vocoderEncoderAudioGain: 3.0

# Audio transmit mode (1 - DMR, 2 - P25).
# Audio transmit mode (1 - DMR, 2 - P25, 3 - Analog).
txMode: 1

# Relative sample level for VOX to activate.
Expand Down Expand Up @@ -179,3 +184,9 @@ system:
trace: false
# Flag indicating whether or not debug logging is enabled.
debug: false

# RTS PTT Configuration
# Flag indicating whether RTS PTT control is enabled.
rtsPttEnable: false
# Serial port device for RTS PTT control (e.g., /dev/ttyUSB0).
rtsPttPort: "/dev/ttyUSB0"
33 changes: 29 additions & 4 deletions configs/config.example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,10 @@ protocols:
ignoreAffiliationCheck: false
# Flag indicating the host should send a network grant demand for conventional traffic.
convNetGrantDemand: false
# Flag indicating the fallback legacy group registration for radios that do not support group affiliation.
# (Useful for alerting the FNE to affiliations to TGIDs for radios that do not properly support group
# affiliation.)
legacyGroupReg: false
# Flag indicating whether or not received RF embedded LC data only should be transmitted.
embeddedLCOnly: false
# Flag indicating whether talker alias data should be dumped to the log.
Expand Down Expand Up @@ -240,12 +244,16 @@ protocols:
# (This applies only in conventional operations where channel granting is utilized and RF-only talkgroup
# steering is required.)
disableNetworkGrant: false
# Flag indicating whether or not TGID 0 (P25 blackhole talkgroup) will be allowed.
# (Normally this should *never* be enabled, it is here to support poorly behaved systems that transmit
# TGID 0 for some reason.)
forceAllowTG0: false
# Flag indicating whether or not a TGID will be tested for affiliations before being granted.
ignoreAffiliationCheck: false
# Flag indicating that the host will attempt to automatically inhibit unauthorized RIDs (those not in the
# RID ACL list).
inhibitUnauthorized: false
# Flag indicating the fallback legacy group grant for radios that do not support group affilition to
# Flag indicating the fallback legacy group grant for radios that do not support group affiliation to
# have group grants transmitted. (Useful for alerting the FNE to affiliations to TGIDs for radios that
# do not properly support group affiliation.)
legacyGroupGrnt: true
Expand All @@ -267,6 +275,8 @@ protocols:
dumpDataPacket: false
# Flag indicating whether or not this host will repeat P25 data traffic.
repeatDataPacket: true
# Flag indicating whether or not the host will ignore CRC errors in P25 PDU data packets.
ignoreDataCRC: false
# Flag indicating whether verbose dumping of P25 TSBK data is enabled.
dumpTsbkData: false
# Amount of time to hang after a voice call.
Expand All @@ -278,7 +288,7 @@ protocols:
# Flag indicating that unit-to-unit availiability checks should be performed for a private call.
unitToUnitAvailCheck: false
# Flag indicating explicit source ID support is enabled.
allowExplicitSourceId: true
allowExplicitSourceId: false
# Flag indicating whether or not the host will respond to SNDCP data requests.
sndcpSupport: false
# BER/Error threshold for silencing voice packets. (0 or 1233 disables)
Expand Down Expand Up @@ -319,6 +329,10 @@ protocols:

# Flag indicating whether or not a TGID will be tested for affiliations before being granted.
ignoreAffiliationCheck: false
# Flag indicating the fallback legacy group registration for radios that do not support group affiliation.
# (Useful for alerting the FNE to affiliations to TGIDs for radios that do not properly support group
# affiliation.)
legacyGroupReg: false
# Flag indicating the host should verify group affiliation.
verifyAff: false
# Flag indicating the host should verify unit registration.
Expand Down Expand Up @@ -470,6 +484,10 @@ system:
pSuperGroup: FFFE
# Announcment Talkgroup Group.
announcementGroup: FFFE
# Default Talkgroup for idle network traffic.
# NOTE: TGID 0 is used here to indicate "promiscuous" mode, where first-come-first-serve traffic from the network
# is allowed.
defaultNetIdleTalkgroup: 0

# DMR network ID.
dmrNetId: 1
Expand Down Expand Up @@ -532,8 +550,12 @@ system:
# Amount of time to wait before starting DMR transmissions after a signal is received.
dmrRxDelay: 7
# Amount of packet correlations that should occur before P25 data is returned from the modem to the host.
# (Note: Changing this value will impact P25 protocol stability, and should not be altered.)
p25CorrCount: 8
# (Note: Changing this value will impact P25 protocol stability, and should not be altered. This is set to
# a default value of 2 for fast synchronization of a P25 signal, if the air modem is having difficulty
# synchronizing to a P25 signal, this value can be increased to 3 or 4, or beyond. It should be noted that
# increasing this value will increase the time it takes to synchronize to a P25 signal, and may cause
# issues with P25 voice calls (especially encrypted voice calls).)
p25CorrCount: 2
# Size (in bytes) of the DMR transmit FIFO buffer. It is not recommended to adjust this unless absolutely
# necessary, excessive sizes will cause delays in transmitted frames due to excessive buffering.
# Calculation Formula: (DMR Frame Size (33 bytes) * x Frames) + Pad Bytes = FIFO Buffer Size Bytes
Expand Down Expand Up @@ -626,6 +648,9 @@ system:
jitter: 200
# Timer which will reset local/remote call flags if frames aren't received longer than this time in ms
callTimeout: 200
# Flag indicating whether or not the V.24 modem is operating in full-duplex mode.
# (This enables DVM to repeat incoming V.24 frames back out after processing.)
fullDuplex: false
# Flag indicating when operating in V.24 UDP mode, the FSC protocol should be used to negotiate connection.
fsc: false
# Sets the heartbeat interval for the FSC connection.
Expand Down
28 changes: 25 additions & 3 deletions configs/fne-config.example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ master:
# Flag indicating whether or not verbose debug logging is enabled.
debug: false

# Flag indicating whether or not denied traffic will be logged.
# (This is useful for debugging talkgroup rules and other ACL issues, but can be very noisy on a busy system.)
logDenials: false

# Maximum number of concurrent packet processing workers.
workers: 16

Expand All @@ -70,6 +74,8 @@ master:
allowP25Traffic: true
# Flag indicating whether or not NXDN traffic will be passed.
allowNXDNTraffic: true
# Flag indicating whether or not analog traffic will be passed.
allowAnalogTraffic: false

# Flag indicating whether packet data will be passed.
disablePacketData: false
Expand All @@ -87,6 +93,8 @@ master:

# Flag indicating whether or not a grant responses will only be sent to TGs with affiliations, if the TG is configured for affiliation gating.
restrictGrantToAffiliatedOnly: false
# Flag indicating whether or not a private call will only be routed to the network peers the RID registers with.
restrictPrivateCallToRegOnly: false

# Flag indicating whether or not a adjacent site broadcasts will pass to any peers.
disallowAdjStsBcast: false
Expand All @@ -103,9 +111,14 @@ master:
# Flag indicating whether or not a TDULC call terminations will pass to any peers.
disallowCallTerm: false

# Flag indicating that traffic headers will be filtered by destination ID (i.e. valid RID or valid TGID).
filterHeaders: true
# Flag indicating that terminators will be filtered by destination ID (i.e. valid RID or valid TGID).
# Flag indicating whether or not the FNE will mask all outbound traffic to use the FNE's own peer ID.
# (This is useful for FNEs that are public facing, and the originating traffic peer ID should be masked.)
maskOutboundPeerID: false
# Flag indicating whether or not the FNE will mask only non-Peer-Link outbound traffic to use the FNE's own peer ID.
# (This is useful for networked FNEs that are have a mix of connections, and the originating traffic peer ID to non-Peer-Link FNEs should be masked.)
maskOutboundPeerIDForNonPeerLink: false

# Flag indicating that P25 terminators will be filtered by destination ID (i.e. valid RID or valid TGID).
filterTerminators: true

# Flag indicating the FNE will drop all inbound Unit-to-Unit calls.
Expand Down Expand Up @@ -150,6 +163,15 @@ master:
# Amount of time between updates of talkgroup rules file. (minutes)
time: 30

#
# Adj. Site Map Configuration
#
adj_site_map:
# Full path to the Adj. Site Map file.
file: adj_site_map.yml
# Amount of time between updates of Adj. Site Map file. (minutes)
time: 30

#
# External Peers
#
Expand Down
41 changes: 41 additions & 0 deletions configs/patch-config.example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,21 +60,62 @@ network:
sourceTGID: 1
# Source Slot for received/transmitted audio frames.
sourceSlot: 1

# Source Traffic Encryption
srcTek:
# Flag indicating whether or not traffic encryption is enabled.
enable: false
# Traffic Encryption Key Algorithm
# aes - AES-256 Encryption
# arc4 - ARC4/ADP Encryption
tekAlgo: "aes"
# Traffic Encryption Key ID
tekKeyId: 1

# Destination Talkgroup ID for transmitted/received audio frames.
destinationTGID: 1
# Destination Slot for received/transmitted audio frames.
destinationSlot: 1

# Destination Traffic Encryption
dstTek:
# Flag indicating whether or not traffic encryption is enabled.
enable: false
# Traffic Encryption Key Algorithm
# aes - AES-256 Encryption
# arc4 - ARC4/ADP Encryption
tekAlgo: "aes"
# Traffic Encryption Key ID
tekKeyId: 1

# Flag indicating whether or not the patch is two-way.
twoWay: false

# Hostname/IP address of MMDVM gateway to connect to.
mmdvmGatewayAddress: 127.0.0.1
# Port number to connect to.
mmdvmGatewayPort: 42020
# Local port number for gateway to connect to.
localGatewayPort: 32010

system:
# Textual Name
identity: PATCH

# Network ID (WACN).
netId: BB800
# System ID.
sysId: 001

# Digital mode (1 - DMR, 2 - P25).
digiMode: 1

# Flag indicating whether a network grant demand packet will be sent before audio.
grantDemand: false

# Flag indicating whether or not the patch is from/to a MMDVM P25 reflector.
mmdvmP25Reflector: false

# Flag indicating whether or not trace logging is enabled.
trace: false
# Flag indicating whether or not debug logging is enabled.
Expand Down
12 changes: 6 additions & 6 deletions configs/peer_list.example.dat
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#
# This file sets the valid peer IDs allowed on a FNE.
#
# Entry Format: "Peer ID,Peer Password,Peer Link (1 = Enabled / 0 = Disabled),Peer Alias (optional),Can Request Keys (1 = Enabled / 0 = Disabled),<newline>"
#1234,,0,,1,
#5678,MYSECUREPASSWORD,0,,0,
#9876,MYSECUREPASSWORD,1,,0,
#5432,MYSECUREPASSWORD,,Peer Alias 1,0,
#1012,MYSECUREPASSWORD,1,Peer Alias 2,1,
# Entry Format: "Peer ID,Peer Password,Peer Link (1 = Enabled / 0 = Disabled),Peer Alias (optional),Can Request Keys (1 = Enabled / 0 = Disabled),Can Issue Inhibit (1 = Enabled / 0 = Disabled)<newline>"
#1234,,0,,1,0,
#5678,MYSECUREPASSWORD,0,,0,0,
#9876,MYSECUREPASSWORD,1,,0,0,
#5432,MYSECUREPASSWORD,,Peer Alias 1,0,0,
#1012,MYSECUREPASSWORD,1,Peer Alias 2,1,0,
11 changes: 10 additions & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ if (ENABLE_SETUP_TUI)
target_link_libraries(dvmhost PRIVATE common ${OPENSSL_LIBRARIES} asio::asio finalcut Threads::Threads util)
else ()
if (COMPILE_WIN32)
target_sources(dvmhost PRIVATE ${dvmhost_RC})
target_link_libraries(dvmhost PRIVATE common ${OPENSSL_LIBRARIES} asio::asio Threads::Threads)
else ()
target_link_libraries(dvmhost PRIVATE common ${OPENSSL_LIBRARIES} asio::asio Threads::Threads util)
Expand All @@ -60,7 +61,7 @@ set(CPACK_PACKAGE_VENDOR "DVMProject")

set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "The DVM Host software provides the host computer implementation of a mixed-mode DMR, P25 and/or NXDN or dedicated-mode DMR, P25 or NXDN repeater system that talks to the actual modem hardware. The host software; is the portion of a complete Over-The-Air modem implementation that performs the data processing, decision making and FEC correction for a digital repeater.")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "DVMProject Authors")
set(CPACK_DEBIAN_PACKAGE_VERSION "R04Hxx")
set(CPACK_DEBIAN_PACKAGE_VERSION "R04Jxx")
set(CPACK_DEBIAN_PACKAGE_RELEASE "0")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/dvmproject")

Expand All @@ -76,6 +77,9 @@ include(CPack)
#
include(src/fne/CMakeLists.txt)
add_executable(dvmfne ${common_INCLUDE} ${dvmfne_SRC})
if (COMPILE_WIN32)
target_sources(dvmfne PRIVATE ${dvmfne_RC})
endif (COMPILE_WIN32)
target_link_libraries(dvmfne PRIVATE common ${OPENSSL_LIBRARIES} asio::asio Threads::Threads)
target_include_directories(dvmfne PRIVATE ${OPENSSL_INCLUDE_DIR} src src/fne)

Expand Down Expand Up @@ -128,6 +132,9 @@ endif (ENABLE_TUI_SUPPORT AND (NOT DISABLE_TUI_APPS))
#
include(src/remote/CMakeLists.txt)
add_executable(dvmcmd ${common_INCLUDE} ${dvmcmd_SRC})
if (COMPILE_WIN32)
target_sources(dvmcmd PRIVATE ${dvmcmd_RC})
endif (COMPILE_WIN32)
target_link_libraries(dvmcmd PRIVATE common ${OPENSSL_LIBRARIES} asio::asio Threads::Threads)
target_include_directories(dvmcmd PRIVATE ${OPENSSL_INCLUDE_DIR} src src/remote)

Expand All @@ -137,6 +144,7 @@ target_include_directories(dvmcmd PRIVATE ${OPENSSL_INCLUDE_DIR} src src/remote)
include(src/bridge/CMakeLists.txt)
add_executable(dvmbridge ${common_INCLUDE} ${bridge_SRC})
if (COMPILE_WIN32)
target_sources(dvmbridge PRIVATE ${bridge_RC})
target_link_libraries(dvmbridge PRIVATE common vocoder ${OPENSSL_LIBRARIES} asio::asio Threads::Threads)
else ()
if (ARCH STREQUAL "arm64" OR ARCH STREQUAL "armhf")
Expand All @@ -153,6 +161,7 @@ target_include_directories(dvmbridge PRIVATE ${OPENSSL_INCLUDE_DIR} src src/brid
include(src/patch/CMakeLists.txt)
add_executable(dvmpatch ${common_INCLUDE} ${patch_SRC})
if (COMPILE_WIN32)
target_sources(dvmpatch PRIVATE ${patch_RC})
target_link_libraries(dvmpatch PRIVATE common ${OPENSSL_LIBRARIES} asio::asio Threads::Threads)
else ()
target_link_libraries(dvmpatch PRIVATE common ${OPENSSL_LIBRARIES} dl asio::asio Threads::Threads)
Expand Down
5 changes: 5 additions & 0 deletions src/CompilerOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ option(DEBUG_NXDN_SACCH "" off)
option(DEBUG_NXDN_UDCH "" off)
option(DEBUG_NXDN_LICH "" off)
option(DEBUG_NXDN_CAC "" off)
option(DEBUG_NXDN_RTCH "" off)
option(DEBUG_P25_PDU_DATA "" off)
option(DEBUG_P25_HDU "" off)
option(DEBUG_P25_LDU1 "" off)
Expand Down Expand Up @@ -96,6 +97,10 @@ if (DEBUG_NXDN_CAC)
message(CHECK_START "NXDN CAC Debug")
add_definitions(-DDEBUG_NXDN_CAC)
endif (DEBUG_NXDN_CAC)
if (DEBUG_NXDN_RTCH)
message(CHECK_START "NXDN RTCH Debug")
add_definitions(-DDEBUG_NXDN_RTCH)
endif (DEBUG_NXDN_RTCH)
if (DEBUG_P25_PDU_DATA)
message(CHECK_START "P25 PDU Data Debug")
add_definitions(-DDEBUG_P25_PDU_DATA)
Expand Down
10 changes: 9 additions & 1 deletion src/bridge/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# * GPLv2 Open Source. Use is subject to license terms.
# * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# *
# * Copyright (C) 2024 Bryan Biedenkapp, N2PLL
# * Copyright (C) 2024,2025 Bryan Biedenkapp, N2PLL
# *
# */
file(GLOB bridge_SRC
Expand All @@ -16,6 +16,14 @@ file(GLOB bridge_SRC

"src/bridge/network/*.h"
"src/bridge/network/*.cpp"
"src/bridge/win32/*.h"
"src/bridge/*.h"
"src/bridge/*.cpp"
)

#
# Windows Resource Scripts
#
file(GLOB bridge_RC
"src/bridge/win32/*.rc"
)
Loading