How to create an XLX D-Star or DMR 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

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 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 that runs on a Linux server that can be linked to from other D-Star repeaters and hotspots. One of the special things about these reflectors is they do not require registration on the D-Star trust system to use them. 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 linking protocols (DPLUS, DCS, D-Extra, etc) to connect to it. By adding another piece of software, AMBED, and hardware vocoder chips, it can act as a transcoding server allowing other modes to talk together. More information on the transcoding part HERE .

Some features include:

  • Real Time dashboard showing last heard and current ongoing QSOs through the reflector.
  • Ability to link to 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..
  • Can be a DMR server too out of the box using the Pi-Star “DMR Gateway” feature.
  • 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.

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

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 accesible 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.

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

Troubleshooting (comming soon)

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

Updated: 08-31-2019