NXDN ↔ YSF Bridge
vex-nxdn-ysf-bridge links
a Vexillum NXDN instance to a Vexillum YSF instance, so NXDN and YSF users share
one conversation.
If you also run vex-dmr-ysf-bridge against the same YSF instance, DMR, YSF, and NXDN all share one conversation, with NXDN and DMR connected through YSF. See Cross-mode mesh.
How it works
Section titled “How it works”Vexillum’s NXDN mode uses the G4KLX NXDNGateway/MMDVMHost network convention
(NXDNP poll, NXDNU disconnect, NXDND data). Each voice packet carries two
raw AMBE frames, the same vocoder family YSF uses. No audio is transcoded. The
bridge only regroups frames: NXDN puts 2 AMBE frames in each packet, and YSF
puts 5 in each frame. A small queue in each direction handles the difference.
Identities
Section titled “Identities”NXDN has no public database mapping radio IDs to callsigns, the way radioid.net does for DMR. The bridge therefore can’t show the real identity of whoever is talking on the other mode. Every relayed call uses a fixed identity:
- calls relayed onto NXDN use
-default-nxdn-idas the source ID, - calls relayed onto YSF use
-default-callsignas the callsign.
Call headers and late entry
Section titled “Call headers and late entry”The bridge fills in the NXDN call-setup header with the correct group, source, and destination, but does not add its CRC-12. The CRC protects a low-rate side channel, not the audio. NXDN gateways and hotspots that reject the header fall back to building their own from the voice frames (late entry), so audio still works.
Before you start
Section titled “Before you start”- In the Vexillum admin interface, note the NXDN instance’s listen address and talkgroup, and the YSF instance’s listen address.
- Choose a callsign dedicated to the bridge rather than an operator’s own. See Give the bridge its own identity.
This bridge uses no passwords.
Once it’s running, designate the bridge
on both instances with the same label: on the NXDN instance by its
-vex-nxdn-callsign, and on the YSF instance by its -ysf-callsign. Otherwise
every bridged call shows up as a second talker on the other mode.
| Flag | Default | Description |
|---|---|---|
-vex-nxdn-master |
(required) | Vexillum NXDN instance, host:port |
-vex-nxdn-callsign |
(required) | Callsign the bridge presents to the NXDN instance |
-vex-talkgroup |
(required) | Must exactly match the NXDN instance’s configured talkgroup |
-ysf-master |
(required) | Vexillum YSF instance, host:port |
-ysf-callsign |
(required) | Callsign the bridge presents to the YSF instance. Also used as the YSF rpt1 field. |
-default-nxdn-id |
1 |
NXDN source ID for every call relayed onto NXDN, 1–65535 |
-default-callsign |
N0CALL |
YSF callsign for every call relayed onto YSF |
-status-addr |
:8097 |
Address for the /status endpoint |
Status
Section titled “Status”GET /status reports the NXDN and YSF sessions as JSON.