返回资讯中心
外部精选
软件工程
#社区热议

Partyline: A group voice application for Reticulum, built on LXST

A group voice application for Reticulum, built on LXST, inspired by Mumble

Hacker Newsiamnothere2026/10/26 · 今天13 分钟阅读

以下正文同步自 Hacker News,版权归原站所有,已转换为易读排版。

A group voice application for Reticulum, built on LXST, inspired by Mumble

Encrypted, realtime group voice and audio over any Reticulum transport capable of >6 kilobits per second

An easy to host lightweight server and protocol. Spin up a Partyline server in under 30 seconds.

Per room access and channel control. open, identified users only, allow lists of identity hashes, or a password. Servers can also require a password or an allow list

Dial-in: rnphone and other LXST clients such as Sideband and MeshChatX can call the server and land in a room too, when enabled

Rooms each with its own LXST codec configurable by the server. Opus for fast links, Codec2 down to 700 bps for slow ones.

GUI and terminal client with multiple language support

Installation

Requires Python 3.11 or newer

pip install partyline

For a system wide push to talk key, add the optional extra:

pip install "partyline[hotkeys]"

The graphical client uses Tk, which pip cannot install. On most OS/Distros it may already be installed by your system. If not:

On Debian or Ubuntu run sudo apt install python3-tk, on Fedora sudo dnf install python3-tkinter.

Requires Python 3.11 or newer, Reticulum, and LXST

git clone https://github.com/RFnexus/partyline cd partyline pip install .

Or install via rngit with:

git clone rns://4cf8a0651c4d73cacd0f93ac1d95e80a/public/partyline

For a system wide push to talk key, install the optional extra with:

pip install ".[hotkeys]"

This installs three commands: partyline, partyline-server and partyline-client.

partyline

Connect opens the server browser. Add a server by it's hash or use the server browser to find discovered servers from announces. Double click a room to join it. Settings has the audio devices, transmit mode, push to talk key, and UI appearance options

partyline-client HASH --name Bob --room Lobby

Commands are: /join, /say, /poke, /who, /mute, /deaf

Or as an operator: /kick, /ban, /smute, /op and /move

partyline-server --name "My server" --profile opus-high

The server prints its destination hash for clients and with dial in enabled the number rnphone users call if configured for rooms. For rooms, access lists, operators, a server password and dial in, copy server_example.json and start with:

partyline-server --config server.json

Available --profile codecs for rooms:

See server_example.json for a full list of options. opus-high-med-low and the Codec2 modes are meant for voice, and music-high-med-low is meant for streaming music or broadcasting to a room. As a rule, use the highest bitrate your link can carry

To install as a systemd unit find the server command with which partyline-server then create /etc/systemd/system/partyline.service:

[Unit] Description=Partyline voice server After=network-online.target Wants=network-online.target

[Service] Type=simple User=partyline ExecStart=/usr/local/bin/partyline-server --config /home/partyline/server.json Restart=on-failure

[Install] WantedBy=multi-user.target

Then:

sudo systemctl daemon-reload sudo systemctl enable --now partyline

Music/Broadcasting Rooms & Bots

Server operators can also configure broadcast-only rooms for high quality music and audio using LXST's Opus CELT profiles. The options are music-high, music-med, and music-low. Music rooms are a special type of room where only the listed identities can send audio. Add their identity hash, seperated by commas, in music

{"name": "Broadcast", "profile": "music-med", "music": ["0123456789abcdef0123456789abcdef"], "description": "Music/broadcast room. Only listed identities may talk. Uses LXSTs Opus CELT profile"}

An example Music Bot can be found under bots/music_bot.py. When Partyline is installed with pip, run it with python3 -m partyline.bots.music_bot

PTT, or slow-mode rooms, are rooms designed to work over slower links like LoRa, bare copper wire bitbashing, and packet radio. Anything with more than a steady ~3.5 kbps throughput can use a PTT room. They can co-exist with regular rooms in a Partyline server, allowing both fast and slow clients to communicate over voice.

Unlike regular rooms there is a bit of latency. PTT rooms pack outgoing audio to fill the link's MTU, sending fewer, fuller packets instead of one frame per packet, and give every listener a larger receive jitter buffer to smooth out the bursty arrival you get over radio mediums like LoRa.

Mark any room push to talk with "ptt": true. Optionally set "ptt_jitter_ms" to change the buffer depth. It's recommended to use PTT rooms with the codec2 profiles.

{"name": "LoRa 1200", "profile": "c2-1200", "ptt": true, "description": "Slow-link push to talk"} {"name": "Packet Radio Net 700", "profile": "c2-700", "ptt": true, "ptt_jitter_ms": 9000}

LLM Disclosure Notice

Kimi K3 (https://www.kimi.com/en) third party hosted API was used for the following tasks:

The .po files are located in partyline/locale/

To update a translation, change the msgstr line under its English msgid

To add a language, copy partyline.pot to a new .po file and add it to LANGUAGES in partyline/i18n.py.

Run python partyline/locale/compile.py, then open a pull request with your changes or submit it to the LXMF address:

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →