Skip to content

Conversation

@softins
Copy link
Member

@softins softins commented Jan 25, 2026

Short description of changes
Move documentation for DNS SRV from Unregistered Servers to its own page.
Expand the DNS SRV page.
Add references to the new page from the Running a Server and Unregistered Servers pages.

Context: Fixes an issue? Related issues
Provides supporting documentation for jamulussoftware/jamulus#3556

Status of this Pull Request
Tested in Jekyll and ready for review.

What is missing until this pull request can be merged?
Only review.

Does this need translation?

YES

Checklist

  • I've verified that this Pull Request follows the general code principles
  • I waited some time after this Pull Request was opened and all GitHub checks completed without errors.
  • I'm sure that this Pull Request goes to the correct branch

And add description of new places where SRV resolution is used in 3.12.0
@softins softins added this to the Release 3.12.0 milestone Jan 25, 2026
@softins softins added this to Tracking Jan 25, 2026
@github-project-automation github-project-automation bot moved this to Triage in Tracking Jan 25, 2026
@softins softins requested a review from pljones January 25, 2026 22:31

A [DNS SRV record ("service" record)](https://en.wikipedia.org/wiki/SRV_record) is a special DNS record that can be used to publish the port number and hostname that should be used to connect to a particular service.

Later versions of Jamulus Clients and Servers support [DNS SRV records ("service" records)](https://en.wikipedia.org/wiki/SRV_record). Depending on the version of Jamulus, if it finds a DNS SRV record associated with the domain name given, it will try to connect to the endpoint host and port listed in the SRV record. This process is similar to HTTP redirection in a web browser, only it's between Jamulus and the DNS server. The Jamulus Server is not involved in this interaction. Jamulus Servers just listen for connections on the same port listed in the SRV record.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Later versions of Jamulus Clients and Servers

This implies the current (always) version doesn't. It should say "the current version (i.e. 3.12.0 and later)" or similar.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, either "The latest" or "Recent" then. I want to have the detail of which versions and their features in only one place if possible.


A [DNS SRV record ("service" record)](https://en.wikipedia.org/wiki/SRV_record) is a special DNS record that can be used to publish the port number and hostname that should be used to connect to a particular service.

Later versions of Jamulus Clients and Servers support [DNS SRV records ("service" records)](https://en.wikipedia.org/wiki/SRV_record). Depending on the version of Jamulus, if it finds a DNS SRV record associated with the domain name given, it will try to connect to the endpoint host and port listed in the SRV record. This process is similar to HTTP redirection in a web browser, only it's between Jamulus and the DNS server. The Jamulus Server is not involved in this interaction. Jamulus Servers just listen for connections on the same port listed in the SRV record.
Copy link
Contributor

@pljones pljones Jan 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This process is similar to HTTP redirection in a web browser

Not really. SRV can apply beneath HTTP just as much as beneath any other IP protocol. This implies (to someone who knows what "HTTP redirection" means) that a request is made to the original address (i.e. the server name supplied, not the DNS server for that domain) and that server responds, which isn't the case.

So this doesn't really help someone who doesn't understand "HTTP redirection" nor is it accurate in explaining it to someone who does.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, that part was inherited from the original DNS SRV section (which I didn't write). I'll revise or remove that bit.

_jamulus._udp.example.com. 60 IN SRV 0 5 12345 jamulus.example.com.
~~~

This allows to host many Jamulus Servers at different ports on a single host with different hostnames by giving each its own SRV record. This avoids having to give your users the port number, which may be less memorable than a name.
Copy link
Contributor

@pljones pljones Jan 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could do with an example, showing how

host1.example.com
host2.example.com

could be used without a port number where SRV records are used to supply the port (i.e. where DNS name "host1" and "host2" are actually hosted on the same server but different ports).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I see this is explained below.

OK, this is a bit of a mess with multiple places trying to say the same thing.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it's combination of the original page and parts I added to try and explain things better. I'll go through it again and try to improve the structure and flow.


See the documentation of your DNS provider for instructions on creating an SRV record.

#### Jamulus versions supporting SRV
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't what this section is primarily about. It's explaining where you can use SRV records.

It should, in passing, mention the version where the feature was introduced.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm confused by that comment. This section (line 44) onwards is mentioning the versions where the features were introduced.

| `rock.jamulus.io` | `_jamulus._udp.rock.jamulus.io. 60 IN SRV 0 0 22424 rock.jamulus.io.` | `rock.jamulus.io:22424` |
| `jazz.jamulus.io` | `_jamulus._udp.jazz.jamulus.io. 60 IN SRV 0 0 22324 jazz.jamulus.io.` | `jazz.jamulus.io:22324` |
| `classical.jamulus.io` | `_jamulus._udp.classical.jamulus.io. 60 IN SRV 0 0 22524 classical.jamulus.io.` | `classical.jamulus.io:22524` |
| `choral.jamulus.io` | `_jamulus._udp.choral.jamulus.io. 60 IN SRV 0 0 22724 choral.jamulus.io.` | `choraljamulus.io.:22724` |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in the last Jamulus Server.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oops

|**Genre Classical/Folk** |`classical.jamulus.io:22524`|
|**Genre Choral/Barbershop** |`choral.jamulus.io:22724`|
Recent versions of Jamulus support [DNS SRV records ("service" records)](https://en.wikipedia.org/wiki/SRV_record) for automatically finding the port number to use to connect to a Directory or Server. This allows just the hostname to be specified, without the port number. See [this page](DNS-SRV-Support) for details.
Copy link
Contributor

@pljones pljones Jan 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd say "Since version 3.10.0, with further enhancements in 3.12.0, ...." I don't like vague "recent" references.


EDIT Or, as below, just say "Jamulus supports...".

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comment below.


*It's important to remember that DNS is not forwarding connections. It's simply telling Jamulus Client what public host:port to connect to.*

Recent versions of Jamulus support [DNS SRV records ("service" records)](https://en.wikipedia.org/wiki/SRV_record) for automatically finding the port number to use to connect to a Directory or Server. This allows just the hostname to be specified, without the port number. See [this page](DNS-SRV-Support) for details.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here I'd just say "Jamulus supports..." - leave the explanation of versions to the main page.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I just didn't want to imply all versions of Jamulus have always supported it, but also didn't want to duplicate all the specific "which version" info. So the intention was to mention that SRV support is version-specific, but leave the version details to the part where it is explained fully.


# DNS SRV Record Support

#### Connecting to a Server or Directory
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is duplicating "Why is it helpful?"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I'll see what I can improve.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I should remove the "Why is it helpful?" then. I wanted to describe the current situation first and then the benefit of SRV records.


However, a Jamulus instance wanting to connect _directly_ to a Server or Directory by IP or hostname must know the port number to use. This can be specified after the IP address or hostname, such as `198.51.100.46:22123` or `jamulus.example.com:22120`.

#### Using DNS SRV to publish port numbers
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is duplicating "Example use case with SRV records".

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, will revisit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

2 participants