How the f**k are SRV records supposed to work in Mumble?

How to do...
Post Reply
Sgt. Nukem
Posts: 1
Joined: 19 Apr 2020, 11:27

How the f**k are SRV records supposed to work in Mumble?

Post by Sgt. Nukem »

I run my own murmur server instance on the interwebs at an unusual port.

I read about SRV records for Mumble.

So I added two SRV records to my domain:

Code: Select all

nslookup -type=all _mumble._udp.mydomain.com

Non-authoritative answer:
_mumble._udp.mydomain.com        SRV service location:
          priority       = 0
          weight         = 5
          port           = 61951
          svr hostname   = mydomain.com



nslookup -type=all _mumble._tcp.mydomain.com

Non-authoritative answer:
_mumble._tcp.mydomain.com        SRV service location:
          priority       = 0
          weight         = 5
          port           = 61951
          svr hostname   = mydomain.com

At this point I am expecting to throw 'mydomain.com' to Mumble and it will figure out by itself on which f**kin' port murmur is listening currently -- I mean that's the whole point of using a SRV record indirection in the first place!

However:
a) The "Connect..." dialog in Mumble won't let me skip the port number. Even when the default port is kept, it will try to connect to that ONLY, and time out eventually.
b) Building a Mumble URL like

Code: Select all

mumble://mydomain.com?title=Nukemonium&version=1.2.0
won't work, either -- it will always try its default port ONLY, and time out eventually.


Right now the text at https://wiki.mumble.info/wiki/SRV_Record:

Code: Select all

SRV Record support was added in Mumble 1.3.0.

SRV Records are evaluated before A, AAAA, or CNAME records.
is just plain wrong.


Are there any obscure switches or config file entries I have to make for this to work??


The whole point of doing this is: I'd like to whatsapp my friends "Hey, connect to my Mumble at mydomain.com if you want!" and the only thing they need to have done for this to work is to download and install Mumble from https://mumble.info in the first place. The only thing Mumble should ask them for at this point is a username.


I DO NOT want to babysit / guide each one of them to the mundane task of filling out the connect dialog box, having to explain what a port number is, or to prevent them from mixing up the address and the label again. ^^


(latest RELEASE version 1.3.0)

Proclivitas
Posts: 1
Joined: 20 Apr 2020, 23:03

Re: How the f**k are SRV records supposed to work in Mumble?

Post by Proclivitas »

Your post made me register, because I had that exact struggle a few weeks ago, so I thought I'd be helpful...

_mumble._udp.domain.bla. currently has no meaning. It's not read or understood by mumble as a record.

Only _mumble._tcp.domain.bla. is used.

Unfortunately, this means that when SRV is used, mumble connects using TCP only, which is... well, bad. You'll see a notification in the client "switching to TCP mode, UDP packets don't seem to be working." Or something to that effect.

There is a fix in 1.3.1, which I'm hoping they don't delay too much (I saw they released a "Release Candidate 1") which makes mumble use the same port from SRV records for UDP as well, which will basically make SRV records work, which really they kind of haven't before, since I think TCP only is useless.

That being said, the _mumble._tcp.domain.bla. record SHOULD work - and it works for me (for TCP only).

The way it's handled is a little bad - in the server dialog, you always HAVE to put in a port, but when it's a SRV record connection that port is ignored. So you can just leave it at default and it should parse the correct port if there is a SRV on the URL that you put in there. The username is still used obviously.

So, that being said, your domain SHOULD work with TCP only. I would recommend clearing DNS caches, waiting for propagation for a few hours, etc.

Also, I was managing the SRV record through a CPANEL for an online hoster, but if you're doing it through the command line or something, you might actually need a trailing dot. Notice the difference between _mumble._tcp.domain.com and _mumble._tcp.domain.com. <- this trailing dot is not an accident.

Look at the SRV records documentation for however you're doing it for your domain (it certainly looks like you've got it) and it should be fine as long as you've set it up. Maybe shut down the mumble client and run it again to make sure it flushes any DNS cache it might have as well, IDK if it does or not - it might prompt a DNS refresh anyway.

However, until 1.3.1 is out (and hopefully the UDP fix works for SRV), you're basically stuck using CNAME (or A/AAAA for IP) and telling your friends your ports.

By the way, all you need is mumble://domain.name.com:port

You don't need that "title" stuff which I don't see documentation for anyway - does that even work?? There's support for "servername" and "serverurl" but I don't think they work other than dragging and dropping the link onto the server browser which newb users might not understand how to do... look at the documentation: https://wiki.mumble.info/wiki/Mumble_URL

I'd recommend not even using verison and going with a simple: mumble://domain.name.com:port/

I think even mumble://domain.name.com:port (without the trailing /) might work, give it a try on your own PC before sending.

Hope this helps, let me know if you have any questions. I'm a bit of a noob to all of this but it was fun figuring it out.
Last edited by Proclivitas on 20 Apr 2020, 23:24, edited 2 times in total.

Post Reply