首页 > AI前沿 > Partyline: A group voice application for Reticulum, built on LXST

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

Hacker News 2026-10-26 22:42 3 阅读 查看原文
partyline A group voice application for Reticulum, built on LXST, inspired by Mumble Features 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. Installing from source 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. Running Start the GUI 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 Terminal client partyline-client HASH --name Bob --room Lobby Commands are: /join, /say, /poke, /who, /mute, /deaf Type /ptt to toggle push to talk Or as an operator: /kick, /ban, /smute, /op and /move Server Start a server: 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: opus-high - Opus voice, 16 kbps opus-med - Opus voice, 8 kbps opus-low - Opus voice, 6 kbps c2-3200 - Codec2, 3200 bps c2-2400 - Codec2, 2400 bps c2-1200 - Codec2, 1200 bps c2-700 - Codec2, 700 bps music-low - Opus music, 14 kbps music-med - Opus music, 28 kbps music-high - Opus music, 56 kbps 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 Install as a systemd unit 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 Push to talk (slow link) Rooms 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: I18N localization and UI gettext() implementation Translation of UI elements and of eo, es, nl, and ru PO files Misc debugging and creation of rnsconfig.py RNS helper utilities UI Translation 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: Credits Reticulum and LXST by Mark Qvist Mumble. Great software that just works. The best UI is stolen UI Tree, toolbar and application icons from Tabler Icons Sound effects from Kenney interface sounds Tin can telephone drawing in the logo from openclipart.org