jessite/content/blog/lan-voice-chat.md

58 lines
2.8 KiB
Markdown
Raw Permalink Normal View History

2024-04-17 16:23:28 +00:00
+++
title = "LAN Voice Chat with Mumble"
date = 2024-04-16 11:51:33-04:00
draft = false
[taxonomies]
# these go in quotes, like the title
tags = ["software", "family"]
+++
My kids, 11yo and 7yo, are *really* into playing Minecraft and Terraria together. But, being siblings, it doesn't always go as well as anyone really wants it to. Sometimes, it's just that they can't be in the same *room* together. And since they both have fancy gaming headsets, they might as well get used to using voice chat.
But how?
It might be easy to give them Discord accounts and let them get to know the wide world of _Shitty Internet Culture_, _Awful Desktop Software_ and _Yay Notifications Forever_, but that seems like a horrible idea. Besides, what kind of Tech would I be if I didn't solve this problem by deploying software?
Enter: [Mumble](https://www.mumble.info/downloads/).
## The Server
The server is called Murnur, and has [an official Docker image](https://github.com/mumble-voip/mumble-docker).
In my case, I just plugged this into [Portainer](https://www.portainer.io) using their Docker Compose example.
(If, like me, you're trying to copy/paste a reasonable looking `docker-compose.json` file while two kids are louodly wondering why this is taking so long, you might also miss the `image: mumblevoip/mumble-server:<tag>` placeholder in their example. I've replaced that with `latest` below.)
```json
services:
mumble-server:
image: mumblevoip/mumble-server:latest
container_name: mumble-server
hostname: mumble-server
restart: on-failure
ports:
- 64738:64738
- 64738:64738/udp
```
Literally nothing to do but run that. The Docker logs will show a password for the `SuperUser` account, which you may want, but for our simple use-case here I never needed it.
## The Client
Mumble has [clients](https://www.mumble.info/downloads/) for Windows, Mac, Linux, iOS, and Android.
After running, you'll go through an Audio Setup Wizard that's fairly self-explanatory. Then it'll ask for connection details.
Here's the fun bit:
Since you're doing this locally and not publically, feel free to just pick a username for the server. Mumble will generate a certificate that identifies you, and normally you'd want to back that up and register with the server and all that, but for my use case none of that really matters. I just had the kids type in whatever name they wanted, and bam, they're in.
There's a `Root` channel everyone joins by default. Others can be created, but since I've just got the two kids, it's easy enough just to let them both be in that channel.
## How'd It Go?
It's been running faultless for a few days, with the only real issue being that the client likes to be restarted after the kids' laptops resume from suspend.
This rocks. Way better than having my kids ask me to buy _Discord Nitro_ for them.