Getting Started¶
A minimal path from zero to one successful SIP → DMR call.
What you need¶
| Component | Notes |
|---|---|
| Linux VM | Docker, host networking recommended, public IP for SIP |
| sip-dmr-exchange | Listens UDP 5060, spawns bridge containers |
| sip-dmr-bridge image | Built locally or pulled if published |
| DMR network | SystemX / MMDVM server you are allowed to use |
| PBX | FreePBX, Asterisk, or similar — outbound SIP trunk to exchange |
Steps¶
1. Deploy the exchange¶
git clone https://github.com/FreeSTAR-Network/sip-dmr-exchange.git
cd sip-dmr-exchange
cp .env.example .env
# Edit .env — HOST_IP, SIP_AUTH_TOKEN, DMR_ADDRESS, etc.
docker compose up -d --build
See Exchange deployment and Configuration.
2. Build the bridge image¶
git clone https://github.com/FreeSTAR-Network/sip-dmr-bridge.git
cd sip-dmr-bridge
docker build -t sip-dmr-bridge:latest .
See Bridge image.
3. Firewall¶
Restrict SIP to your PBX only:
# Example — replace PBX_IP
iptables -A INPUT -p udp --dport 5060 -s PBX_IP -j ACCEPT
iptables -A INPUT -p udp --dport 5060 -j DROP
4. Configure the PBX trunk¶
- Trunk name e.g.
sip-dmr-exchange - IP auth to your portal host UDP 5060
- Inject headers:
X-Auth-Token,X-Callsign, optionalX-DMR-SSID - Talkgroup = SIP URI user part:
PJSIP/12345@sip-dmr-exchange
See FreePBX / Asterisk.
5. Test¶
Place a test call from the PBX, enter a talkgroup, confirm a bridge appears in /bridges.
FreeSTAR Everywhere production¶
FreeSTAR runs this stack with feature code 234, Misc Application allowlists, and capacity limits. Production hostnames and operator runbooks are not published here — contact the FreeSTAR team for access.
Next¶
Last update: August 17, 2026 21:08:54
Last updated by: MØVUB
Last updated by: MØVUB
Help improve this page by contributing to our documentation.