A multi-network DMR gateway for the MMDVM.
Find a file
Jonathan Naylor 3d099ae24d
Merge pull request #137 from f1rmb/f1rmb_nullptr_vs_NULL_with_getaddrinfo
Fix nullptr instead of NULL argument usage in getaddrinfo().
2025-06-09 13:38:04 +01:00
Audio Add Portuguese voice files 2022-02-07 00:03:19 +00:00
scripts Update scripts. 2020-04-23 21:36:43 +01:00
.gitignore Add GitVersion.h 2017-05-23 09:52:25 +01:00
APRSWriter.cpp Add mode type to APRS string. Make APRS band/offset string a bit more consistent. 2023-02-17 06:06:58 -06:00
APRSWriter.h Add Symbol= option to [APRS] stanza in config, to allow user to define APRS symbol. Backward-compat., and will default to the standard D& symbol (diamond with "D" overlay) if Symbol= is not defined. 2023-02-12 19:27:45 -06:00
BPTC19696.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
BPTC19696.h Add the TG rewrite code. 2017-04-28 16:45:05 +01:00
Conf.cpp [unlim-networks] Config 2025-06-02 01:40:29 +03:00
Conf.h [unlim-networks] Config 2025-06-02 01:40:29 +03:00
CRC.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
CRC.h Add the TG rewrite code. 2017-04-28 16:45:05 +01:00
DMRCSBK.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
DMRCSBK.h Update the C++ code. 2025-03-15 17:03:06 +00:00
DMRData.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
DMRData.h Initial commit. 2017-04-20 20:51:30 +01:00
DMRDataHeader.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
DMRDataHeader.h Add new processing blocks for CSBK and Data Headers. 2017-08-01 21:55:47 +01:00
DMRDefines.h Update the C++ code. 2025-03-15 17:03:06 +00:00
DMREMB.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
DMREMB.h Initial commit for voice prompts. 2017-05-01 09:35:17 +01:00
DMREmbeddedData.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
DMREmbeddedData.h Update the C++ code. 2025-03-15 17:03:06 +00:00
DMRFullLC.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
DMRFullLC.h Add the TG rewrite code. 2017-04-28 16:45:05 +01:00
DMRGateway.cpp [unlim-networks] DMRGateway 2025-06-02 01:40:35 +03:00
DMRGateway.h [unlim-networks] DMRGateway 2025-06-02 01:40:35 +03:00
DMRGateway.ini Update sample INI with quoted Symbol= value. 2023-05-19 09:58:50 -05:00
DMRGateway.sln Initial commit. 2017-04-20 20:51:30 +01:00
DMRGateway.vcxproj Allow it to build on Windows again. 2024-04-22 13:57:09 +01:00
DMRGateway.vcxproj.filters Add VS2019 support. 2021-03-22 22:18:59 +00:00
DMRLC.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
DMRLC.h Add the TG rewrite code. 2017-04-28 16:45:05 +01:00
DMRNetwork.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
DMRNetwork.h Update the C++ code. 2025-03-15 17:03:06 +00:00
DMRSlotType.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
DMRSlotType.h Add the TG rewrite code. 2017-04-28 16:45:05 +01:00
DynVoice.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
DynVoice.h Update the C++ code. 2025-03-15 17:03:06 +00:00
Golay2087.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
Golay2087.h Add the TG rewrite code. 2017-04-28 16:45:05 +01:00
GPSD.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
GPSD.h Add optional reporting of the home location to APRS-IS directly. 2020-08-28 15:15:25 +01:00
Hamming.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
Hamming.h Add the TG rewrite code. 2017-04-28 16:45:05 +01:00
LICENCE Initial commit. 2017-04-20 20:51:30 +01:00
Log.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
Log.h Add optional log file rotation and UDP error handling. 2020-10-31 22:45:54 +00:00
Makefile Remove RemoteCommandDMRG, as RemoteCommand from MMDVMHost's PR now works with DMRGatway too. 2021-03-22 20:16:35 +01:00
MMDVMNetwork.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
MMDVMNetwork.h Fix network ports datatype (unsigned int -> unsigned short). UDPSocket: fix old bug using m_port instead of m_port[x]. 2021-04-25 07:44:55 +02:00
PassAllPC.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
PassAllPC.h Update the C++ code. 2025-03-15 17:03:06 +00:00
PassAllTG.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
PassAllTG.h Update the C++ code. 2025-03-15 17:03:06 +00:00
prebuild.cmd Add compilation time stamp and GitID to binaries 2017-05-23 10:07:44 +02:00
QR1676.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
QR1676.h Initial commit for voice prompts. 2017-05-01 09:35:17 +01:00
README.md Update the README file. 2021-12-13 10:26:41 +00:00
Reflectors.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
Reflectors.h Fix: XLX ID as 3 characters string instead of a number. 2022-02-17 09:36:23 +00:00
RemoteControl.cpp [unlim-networks] RemoteControl 2025-06-02 18:31:23 +03:00
RemoteControl.h [unlim-networks] DMRGateway 2025-06-02 01:40:35 +03:00
Rewrite.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
Rewrite.h Update the C++ code. 2025-03-15 17:03:06 +00:00
RewriteDstId.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
RewriteDstId.h Update the C++ code. 2025-03-15 17:03:06 +00:00
RewriteDynTGNet.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
RewriteDynTGNet.h Allow for more rewrite processing options. 2020-04-03 15:10:41 +01:00
RewriteDynTGRF.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
RewriteDynTGRF.h Update the C++ code. 2025-03-15 17:03:06 +00:00
RewritePC.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
RewritePC.h Update the C++ code. 2025-03-15 17:03:06 +00:00
RewriteSrc.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
RewriteSrc.h Update the C++ code. 2025-03-15 17:03:06 +00:00
RewriteSrcId.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
RewriteSrcId.h Update the C++ code. 2025-03-15 17:03:06 +00:00
RewriteTG.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
RewriteTG.h Update the C++ code. 2025-03-15 17:03:06 +00:00
RewriteType.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
RewriteType.h Update the C++ code. 2025-03-15 17:03:06 +00:00
RingBuffer.h Update the C++ code. 2025-03-15 17:03:06 +00:00
RS129.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
RS129.h Add the TG rewrite code. 2017-04-28 16:45:05 +01:00
SHA256.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
SHA256.h Update the C++ code. 2025-03-15 17:03:06 +00:00
StopWatch.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
StopWatch.h Fix Windows compilation. 2020-09-20 15:05:42 +01:00
Sync.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
Sync.h Initial commit for voice prompts. 2017-05-01 09:35:17 +01:00
Thread.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
Thread.h Initial commit. 2017-04-20 20:51:30 +01:00
Timer.cpp Initial commit. 2017-04-20 20:51:30 +01:00
Timer.h Initial commit. 2017-04-20 20:51:30 +01:00
UDPSocket.cpp Fix nullptr instead of NULL argument usage in getaddrinfo(). 2025-06-07 17:29:32 +02:00
UDPSocket.h Update the C++ code. 2025-03-15 17:03:06 +00:00
Utils.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
Utils.h Initial commit. 2017-04-20 20:51:30 +01:00
Version.h Fix nullptr instead of NULL argument usage in getaddrinfo(). 2025-06-07 17:29:32 +02:00
XLXHosts.txt Update XLXHosts.txt 2022-09-09 17:42:05 +01:00
XLXHostsupdate.sh Update XLXHostsupdate.sh 2020-12-12 12:57:02 +10:00
XLXVoice.cpp Update the C++ code. 2025-03-15 17:03:06 +00:00
XLXVoice.h Update the C++ code. 2025-03-15 17:03:06 +00:00

This is the DMR Gateway which allows for the connection of up to six different DMR networks to one MMDVM system. One of the networks is defined as being an XLX reflector, while the other five may be any combination of DMR+, BrandMeister, TGIF, or local HBLink systems.

This software works by use of powerful rewriting rules which allow for changes in the slot, talk group, the type, and even the destination, of the messages. Without a rewrite rule, even if it does no actual rewriting, traffic will not be passed through from that defined network to the MMDVM and back again.

For example, the default configuration moves the announcements from BrandMeister for linking and unlinking to the same talk group slot as the reflectors themselves, a far more reasonable configuration than the default BrandMeister one.

The rewrite rules dont apply to the XLX reflector, where only the slot and the talk group used may be changed. The controls i.e. private calls, for altering the reflector are fixed. In the case of the XLX reflectors the gateway will issue voice prompts to indicate the current reflector. These are available in a number of languages.

The MMDVM .ini file should have the IP address and port number of the client in the [DMR Network] settings.

This software builds on 32-bit and 64-bit Linux systems as well as on Windows using Visual Studio 2017 on x86 and x64.

This software is licenced under the GPL v2 and is primarily intended for amateur and educational use.