SVXREFLECTOR(1)
π SVXREFLECTOR β the SvxLink conference server audio reflector π
okay bestie, sit down, grab a strawberry π, because this is the manual page for svxreflector, section 1 of the User Manuals, and we are gonna understand it. no cap.
β¨ SYNOPSIS β¨
svxreflector [--help] [--version] [--daemon] [--logfile=log file]
[--config=configuration file] [--pidfile=pid file] [--runasuser=user
name]
that's the whole vibe. flags in, server out. π
π DESCRIPTION π
The SvxReflector server is literally the group chat host of the SvxLink world β it interconnects a whole bunch of SvxLink nodes into one single network. π«Ά
Traffic gets switched around using talk groups, so all the audio that one node sends to the reflector gets retransmitted to every other node that has selected that same talk group. it's giving "everyone in the same room hears you." π
β οΈ And here's the rule: only one talker is allowed at a time on each talk group. so if another node starts sending audio while someone's already active, that second node will not interrupt the first talker. periodt. no talking over each other. π
Control messages travel over a TCP/IP connection, and the audio itself is transported via UDP. so bestie, make sure you open up the configured TCP and UDP ports in your firewall for incoming traffic on the server. π₯ By default the port number is set to 5300 for both TCP and UDP. The clients do not have to open any ports in their firewall β they're just vibing. β¨
Every node must have a unique user ID, typically the callsign. And no, you can't sneak in twice: it is not allowed for a client using the same user ID to connect more than one time to the server. π«
The connections are protected using X.509 certificates β see HANDLING X.509 CERTIFICATES below for all the tea. π
On the SvxLink node side, a ReflectorLogic is what connects to the SvxReflector server. The connection to the SvxReflector from other logics in that node can be activated and deactivated using standard logic linking. If you wanna know how to set up a SvxLink node for use with the SvxReflector, go read the svxlink.conf(5) manual page. π
The SvxReflector also offers a QSY functionality, which is used to switch all active nodes over to another talk group. Iconic use case: you make a call on a broad talk group β like a big region or the entire country π β and when the called party answers, a QSY can be performed to a talk group where only the active nodes are included. the reflector may also be configured to initiate an automatic QSY after a specified duration on certain talk groups. automatic. main character energy. π
β¨ OPTIONS β¨
--helpβ Print a help message and exit. bye bestie π--daemonβ Start the SvxReflector server as a daemon. π§--runasuserβ Start SvxReflector as the specified user. The switch to the new user will happen after the log and pid files have been opened. so, order matters, iykyk π--logfile=log fileβ Specify a log file to put all output into. Bothstdoutandstderrwill be redirected to the log file. everything goes in the box π¦--pidfile=pid fileβ Specify a pid file to write the process ID into.--config=configuration fileβ Specify which configuration file to use.--versionβ Print the version of the application.
π HANDLING X.509 CERTIFICATES π
X.509 certificates and TLS β the same technologies used to secure internet connections in general β are used to authenticate nodes connecting to the reflector server. It's a complex technology ngl, but as much as possible has been done to hide that complexity in SvxReflector to make operating the reflector system easy. π§
A node owner does not have to understand the certificate technology at all really. but a reflector sysop needs to understand the basics to be able to operate the reflector and to be able to resolve authentication problems. so if that's you: lock in. π
πΈ Public-key cryptography & the key pair
The first thing to understand is that public-key cryptography is used. You will see the term PKI in SvxLink, which is short for Public Key Infrastructure.
To use public-key cryptography, a key pair is needed: a secret private key and a non-secret public key. In SvxLink the key pair is stored in a file with the extension ".key".
π Those files must be kept secret since anyone that has access to the secret key can act as the rightful owner. guard that file like it's your phone password, fr fr.
π¦ What a certificate actually is
A certificate is nothing but a small amount of information secured using public-key cryptography. That makes it possible to verify that the information in the certificate is valid.
An X.509 certificate always has a start date and an end date. The certificate will only verify as valid when the current time is within those two dates. β°
And here's the cute part: when a certificate has less than 1/3 of its lifetime left, the reflector server will renew the certificate automatically. self-care. β¨
Other than that, the most important information in the certificate is the node callsign. An email address is also good to have in the certificate, but only the callsign is required. The callsign is stored in a certificate field called subject Common Name (CN). Certificates in SvxLink are stored in files with the extension ".crt".
π CSRs and signing
A certificate is created by signing a Certificate Signing Request (CSR). The CSR is automatically generated by a node and sent to the reflector when needed.
If configured (see CERT_CA_HOOK), the reflector sysop will be notified when a new CSR is received. π
The reflector sysop should then:
- verify that the CSR contains the correct information, and
- verify that the requesting node has the right to use the given callsign.
π The latter task is the hard part, and that procedure needs to be figured out by the reflector sysop. that's on you bestie.
In SvxLink a CSR is stored in a file with the extension ".csr".
π The chain of certificates
The last piece of information that's important to know about X.509 certificates is that a chain of certificates is used to form the secure infrastructure.
In SvxLink there is a root certificate and a signing certificate:
- The root certificate is used to sign the signing certificate.
- The signing certificate is used to sign all other certificates β both for the nodes and the server certificate used by the reflector itself. π
π Where the PKI files live
In SvxLink, both on the node side and the server side, PKI files are by default stored in the directory /var/lib/svxlink/pki.
- Nodes store all their PKI files flat in that directory.
- On the reflector server there is a subdirectory for each type of file:
private(for keys),csrsandcerts. - There also is a
pending_csrssubdirectory for incoming CSRs that have not been signed yet. When a CSR has been signed it will be moved to thecsrssubdirectory.
β¨ Signing a CSR
Signing a CSR on the reflector server is done through a COMMAND_PTY command:
echo CA SIGN callsign > /dev/shm/reflector_ctrl
that's it. one line. slay. π
π FILES π
/etc/svxlink/svxreflector.confβ The system wide configuration file. Seesvxreflector.conf(5)for further details.~/.svxlink/svxreflector.confβ Per user configuration file. Seesvxreflector.conf(5)for further details./etc/svxlink/svxreflector.d/*β Additional configuration files. This directory is setup by theCFG_DIRconfiguration variable.
π± ENVIRONMENT π±
HOMEβ Used to find the per user configuration file.
π AUTHOR π
Tobias Blomberg (SM0SVX) <sm0svx at svxlink dot org>
π REPORTING BUGS π
Bugs should be reported using the issue tracker at https://github.com/sm0svx/svxlink.
π«Ά Questions about SvxLink should not be asked using the issue tracker. Instead use the group set up for this purpose at groups.io: https://groups.io/g/svxlink
π¦ SEE ALSO π¦
svxreflector.conf(5), svxlink(1), svxlink.conf(5),
and that's the whole page, bestie!! π this lil manual page came to you from Linux, dated MAY 2025, and it's known as SVXREFLECTOR(1). go be a reflector sysop. you got this. πβ¨π«Ά
π¦ where this page comes from
- alpine 3.24: svxlink-doc 25.05.1-r1 Β· GPL-2.0-or-later
- ubuntu resolute: svxreflector 25.05.1-4 Β· GPL-2.0-or-later
- ubuntu stonking: svxreflector 26.05.1-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms