How to create an XLX D-Star or DMR or YSF Reflector

NameLinking ProtocolsOpen Source/Closed SourceNotabilityNotes
REFDPLUSClosed SourceD-Star's first reflector system that was not originally implemented into D-Star.Created within the first few years of D-Star's release as the first "homebrewed" reflector system.
DCSDCSClosed SourceBuilt to compete/replace REF with its added functionalities.Module A on all DCS reflectors are linked together. First to use ircDDB and built in 2012.
X-Reflectors (XRF)D-Extra,DCS, and DPLUSOpen SourceFirst to be open source. Most are built using the XLX software code.The original, pre XLX reflectors, X Reflectors. History explained HERE.
XLXD-Extra,DCS, and DPLUSOpen SourceThe First multi protocol reflector with transcoding ability and giving admins complete control over the reflector.XLX is a stand-alone system that uses a feature called "Call Home" to build an activity list

updated: 05/30/2020

Since the dawn of D-Star, there have been a few reflectors and networks built to support this digital mode. XLX is the newest edition of reflectors that allows you to spin up your very own D-Star or DMR, or YSF reflector. Reflectors like REF and DCS, already have servers in place that you request access to use as an admin. XLX is a piece of software originally created only for D-Star and DMR that runs on a Linux server that can be linked to from other repeaters and hotspots much like a hub and spoke design. One of the special things about XLX reflectors is they do not require registration on the D-Star trust system to use them. New D-Star users can simply link and start talking. XLX sets itself apart from the other reflectors in the D-Star world because its a ‘multi-mode reflector’ meaning, it has the ability of allowing any of the D-Star linking protocols (DPLUS, DCS, D-Extra, etc) to connect to it. Also as of January 2020, XLX supports System Fusion. By adding another piece of software, AMBED, and hardware vocoder chips, it can act as a transcoding server allowing other modes to talk together.

Some features include:

  • One reflector 3 modes out of the box: D-Star, DMR, and YSF.
  • Real Time dashboard showing last heard and current ongoing QSOs through the reflector.
  • Ability to peer with other reflectors, and networks like Brandmeister.
  • Cross digital modes using a hardware vocoder; D-Star can talk to DMR or D-Star to analog or Fusion, etc..
  • Supports 26 modules/rooms A-Z.
  • Opensource!!

Whats involved:

  • Finding an available XLX number if you would like your reflector to be in the pi-star host files automatically.
  • Using the script below to install XLXD onto a fresh updated Debian 9.x computer
  • Getting a static public IP address and setting up DNS if you are going to be a public reflector.
  • Being or finding a Linux admin to maintain and upkeep the server. (This is often the most difficult part)

How to install XLX on Debian Linux

Once you have a Debian 9.x Linux server at the ready and have both a FQDN and XLX # in mind, you are ready to install. SSH to your server and login as root. Then run the following:

git clone https://github.com/n5amd/xlxd-debian-installer
cd xlxd-debian-installer
./xlxd-debian-installer.sh

The script will ask you a few questions for setup then install XLX and configure Apache for the web dashboard. Your web dashboard should be accessible if you setup your networking and DNS correctly.

To interact with xlxd after installation:

systemctl start|stop|status|restart xlxd
  • Installs to /xlxd
  • Logs are in /var/log/messages and ‘systemctl status xlxd’
  • Main config file is /var/www/xlxd/pgs/config.inc.php
  • Be sure to restart xlxd after each config change ‘systemctl restart xlxd’

After the install (For public reflectors):

If your web dashboard is accessible your next step is to “Enable Callinghome. This lets the main XLX Database know the reflector number is now yours and sends a key back to your server for verification. Your reflector should show on the reflector list within 10 minutes to an hour of “callinghome” with a GREEN thumbs up.

To enable calling home, edit /var/www/xlxd/pgs/config.inc.php. The field you need to update is:

$CallingHome['Active'] = false; // xlx phone home, true or false

Change “false” to “true” to enable callinghome then issue a restart to xlxd. “service xlxd restart”

**When this is flipped, a file called “callinghome.php” is created in /xlxd. This hash verifies the reflector is yours. Back it up!!**

Within an hour of enabling callinghome your reflector should be available to pi-star users to connect. It could take up to 24 hours, but users can either update pi-star manually or wait for the nightly updates to occur. You can check the hosts “Source lists” below:

Your reflector must be listed before you can expect anyone to be able to connect to it without manually editing any host files. The lists do not update immediately so have patience.

After the install (For private or test reflectors):

Since the reflector will not be populated to the public host files for easy connecting, any users that wish to connect will have to manually edit their pi-star host file. The host file to edit is /root/DExtra_Hosts.txt then issue a pistar-update. Once you open the file it will be self explanatory.

After the install for System Fusion:

If your reflector is brand new or you have never owned a YSFReflector before you will need to register it in order for it to appear in the YSF host list found in Pi-Star. You will need to create an account and register your reflector at:

Network Ports

The following are ports used for XLX. Be sure they are open and accessible depending on the services you need:

  • UDP: 10001-10002 — XLXd (peering)
  • UDP: 30001 — DExtra Protocol
  • UDP: 30051 — DCS Protocol
  • UDP: 10100 — AMBE Transcoding
  • UDP: 42000 — YSF Protocol
  • UDP: 20001 — DPlus Protocol
  • UDP: 62030 — DMRMMDVM (DMR Gateway)
  • TCP: 80/443 — Web Dashboard
  • TCP: 22 — SSH (or your chosen port)

Adding transcoding capabilities to your XLX reflector

Quite possibly the best part about the XLX reflector is its capability to trans-code from one digital mode to another. Users can connect via DMR and talk to D-Star users, or connect via Yaesu Fusion and talk to D-Star users. Hardware AMBE vocoder USB chips are required for this to happen, but once you have an XLX server and vocoder chips, all you need to do is install AMBED where your vocoder chips are physically located.

Run my AMBED installer on the Debian server you plan to plug the AMBE chips into. This can be a separate server or the same one XLX is installed on. Low latency and access to UDP 10100 is required if you use separate servers.

On the XLX reflector edit the init file:

/etc/init.d/xlxd

Edit the ARGUMENTS line:

ARGUMENTS="XLX### <YOUR IP> <IP OF AMBED>" #Use 127.0.0.1 if ambed is on the same computer as XLXD
EX: ARGUMENTS="XLX111 192.168.0.2 127.0.0.1"

Then update systemd to read the updated init file and restart xlxd:

systemctl daemon-reload
systemctl restart xlxd

XLX Install script – Github Link

AMBEd Install script – Github Link

Troubleshooting (comming soon)

Until I can add to this section, the XLX forums are the best source for support and questions.