YSF Reflector Software

The HamOperator YSF Reflector is currently supporting MNWis, US Kentucky, and America-Link. A test reflector runs at US K9EQ.

A project has been going on at the HamOperator to improve the YSF Reflector software. Why do this?

The original software is very basic and offers very little capability and control. It also creates a HUGE problem when trying to bridge YSF hotspots to WiRES-X rooms because it just passes the data along with no filtering. That means whatever garbage gets sent to the reflector, it doesn’t even need to be Fusion, that same data is sent to every connection including the bridged WiRES-X node. When the WiRES-X node gets this data it can misbehave or crash. Hence a project to fix these problems.

And while we’re fixing problems, why not make it better by giving it more capabilities?

Current differences between the standard YSF Reflector software and the K9EQ version:

  • Decodes all meta data including FICH and all data fields for every mode.
  • Extensive logging allows selected logging of parameters needed to determine “what’s going on?”.
  • Filters to drop packets if:
    • The FICH is invalid
    • The FICH does not pass sanity checks
    • Data Wide packets
    • Wires-X control packets
  • Outputs a text file of connected nodes to simplify dashboards.
  • Performance reporting
  • Options can be changed in a *.ini file
  • Ability to host multiple YSF Reflectors on a single server
  • Internal documentation of the program (comments)
  • Several builds are available:
    • Windows
    • Linux
    • Debian server (MNWis and US Kentucky are running in the “cloud”)

Future enhancements will include:

  • Drop problematic WiRES-X packets with invalid room/node number in the CSD1 field
    • Future improvement: Edit the packets to remove the problematic information
  • Ability to black list callsigns and IP addresses.
  • Kerchunk filter to drop short key-ups
  • Remote control and status reporting of the reflector via Fusion text messages
  • Integrated dashboard removes need for php and greatly reduces CPU overhead and network bandwidth
  • Programmed reporting of audio levels informing users if their mic level is too high or too low
  • Integration with IMRS
  • New, engineered and reviewed API to more tightly integrate hotspots with the reflector
  • Ability to programmatically send messages
  • Ability to programmatically edit data fields on the fly (i.e., change GPS data, call sign, etc.)
  • Improve internal program documentation
  • Complete program re-write in Python. This will provide the ultimate in portability

The reflector will not support non-Fusion communications such as DMR or D*. The reason for this is that non-Fusion systems do not include all of the data that Fusion provides. This would force the reflector to become the lowest common denominator resulting in technology and feature restrictions.

The intent is for our version of YSF Reflector to be open sourced. It will be developed and enhanced with feedback from the Fusion community. By using good engineering practices, our hope is to provide a high quality service that equals or exceeds the existing quality of the Fusion/WiRES-X system. This is an enhancement to WiRES-X, not a replacement.