Partyline: Ứng dụng đàm thoại nhóm trên Reticulum, lấy cảm hứng từ Mumble
Partyline là ứng dụng thoại nhóm mã hóa thời gian thực chạy trên mạng Reticulum, xây dựng dựa trên LXST. Dự án cho phép triển khai máy chủ chỉ trong 30 giây, hỗ trợ nhiều codec từ Opus chất lượng cao đến Codec2 700 bps cho các kết nối chậm như LoRa hay packet radio.

Một dự án mã nguồn mở mới có tên Partyline đang thu hút sự chú ý của cộng đồng yêu thích mạng phi tập trung. Đây là ứng dụng đàm thoại nhóm chạy trên Reticulum, nền tảng mạng lưới được thiết kế để hoạt động ngay cả khi không có Internet truyền thống.
Partyline được xây dựng trên LXST và lấy cảm hứng từ Mumble — phần mềm thoại nhóm quen thuộc với cộng đồng game thủ và người dùng máy chủ tự lưu trữ. Điểm khác biệt lớn nhất nằm ở khả năng hoạt động trên những đường truyền cực kỳ hạn chế.
Thoại nhóm mã hóa trên mọi hạ tầng Reticulum
Theo mô tả của tác giả, Partyline cung cấp thoại và âm thanh nhóm mã hóa, thời gian thực trên bất kỳ phương thức truyền tải Reticulum nào đạt tốc độ trên 6 kilobit/giây. Đây là con số rất thấp so với các nền tảng hội thoại thông thường, mở ra khả năng liên lạc trong những môi trường mạng khắc nghiệt.
Máy chủ được thiết kế nhẹ và dễ triển khai — tác giả khẳng định có thể dựng một server Partyline trong chưa đầy 30 giây.
Hệ thống phân quyền theo từng phòng và kênh khá linh hoạt:
- Phòng mở cho tất cả mọi người
- Chỉ cho phép người dùng đã xác thực danh tính
- Danh sách trắng các mã băm danh tính (identity hash)
- Bảo vệ bằng mật khẩu
Bản thân máy chủ cũng có thể yêu cầu mật khẩu hoặc danh sách danh tính được phép kết nối.
Gọi vào từ các ứng dụng LXST khác
Một tính năng đáng chú ý là dial-in: các client LXST như rnphone, Sideband và MeshChatX có thể gọi điện trực tiếp vào máy chủ Partyline và được đưa vào một phòng, miễn là tính năng này được bật.
Giao diện ứng dụng Partyline
Chín cấu hình codec cho từng loại đường truyền
Mỗi phòng trong Partyline có thể được máy chủ cấu hình riêng một codec LXST phù hợp. Với đường truyền nhanh, Opus cho chất lượng tốt; với đường truyền chậm, Codec2 có thể xuống tới 700 bps. Các profile có sẵn gồm:
- opus-high — Opus thoại, 16 kbps
- opus-med — Opus thoại, 8 kbps
- opus-low — Opus thoại, 6 kbps
- c2-3200, c2-2400, c2-1200, c2-700 — Codec2 cho thoại
- music-low, music-med, music-high — Opus cho nhạc và phát thanh
Nguyên tắc chung mà tác giả đưa ra: hãy dùng mức bitrate cao nhất mà đường truyền có thể đáp ứng.
Phòng PTT cho LoRa và packet radio
Điểm được đánh giá cao nhất về mặt kỹ thuật có lẽ là các phòng push-to-talk (PTT) hay còn gọi là phòng chế độ chậm. Chúng được thiết kế cho những liên kết như LoRa, dây đồng trần truyền bit hay packet radio — bất cứ thứ gì có thông lượng ổn định trên khoảng 3,5 kbps.
Khác với phòng thông thường, phòng PTT chấp nhận độ trễ nhất định để đổi lấy hiệu quả truyền tải. Âm thanh gửi đi được gom lại để lấp đầy MTU của đường truyền, gửi ít gói hơn nhưng đầy hơn, đồng thời cấp cho mỗi người nghe một bộ đệm jitter lớn hơn nhằm làm phẳng kiểu đến theo cụm đặc trưng của sóng vô tuyến.
Sơ đồ kiến trúc truyền tải của Partyline
Các phòng PTT và phòng thường có thể cùng tồn tại trên một máy chủ, cho phép client nhanh và client chậm giao tiếp bằng giọng nói với nhau. Để bật, chỉ cần khai báo "ptt": true trong cấu hình phòng và có thể tinh chỉnh độ sâu bộ đệm qua "ptt_jitter_ms".
Cài đặt và vận hành
Partyline yêu cầu Python 3.11 trở lên và có thể cài đặt gọn gàng bằng pip:
pip install partyline
Gói tùy chọn partyline[hotkeys] bổ sung phím đàm thoại toàn hệ thống. Client đồ họa dùng Tk, nên trên Debian/Ubuntu cần cài thêm python3-tk. Cài đặt từ mã nguồn cần có sẵn Reticulum và LXST, hoặc có thể clone trực tiếp qua rngit — một cách làm rất đặc trưng của hệ sinh thái Reticulum.
Việc cài đặt sẽ tạo ba lệnh: partyline (client đồ họa), partyline-client (client dòng lệnh) và partyline-server (máy chủ). Máy chủ có thể chạy như một systemd unit để tự khởi động cùng hệ thống — hữu ích cho những ai muốn duy trì một node liên lạc riêng.
Minh họa các phòng và codec trong Partyline
Phòng phát nhạc và bot
Quản trị viên có thể tạo các phòng chỉ phát nhạc chất lượng cao bằng các profile Opus CELT: music-high, music-med, music-low. Đây là dạng phòng đặc biệt, chỉ những danh tính được liệt kê trong trường "music" (cách nhau bằng dấu phẩy) mới được phát âm thanh.
Dự án còn kèm một music bot mẫu trong bots/music_bot.py, có thể chạy trực tiếp bằng python3 -m partyline.bots.music_bot sau khi cài qua pip.
Công khai minh bạch việc dùng LLM
Điều đáng chú ý là tác giả công khai việc đã dùng API của Kimi K3 cho một số công việc: bản địa hóa đa ngôn ngữ (i18n) và triển khai gettext() cho giao diện, dịch các tệp PO sang tiếng Esperanto, Tây Ban Nha, Hà Lan và Nga, cùng một số việc gỡ lỗi và tạo tiện ích trợ giúp Reticulum. Cách công bố minh bạch này đang dần trở thành chuẩn mực đáng khuyến khích trong các dự án mã nguồn mở.
"Mumble. Phần mềm tuyệt vời và cứ thế mà chạy. Giao diện tốt nhất là giao diện đi vay." — trích phần ghi công của dự án
Ý nghĩa với cộng đồng công nghệ Việt Nam
Với những ai quan tâm đến mạng phi tập trung, liên lạc khẩn cấp hay các giải pháp kết nối trong vùng lõm sóng — những khu vực thường gặp ở vùng núi, hải đảo hay sau thiên tai — Partyline là một tham khảo đáng giá. Việc một ứng dụng thoại nhóm mã hóa có thể chạy trên đường truyền chỉ vài kilobit mỗi giây mở ra hướng tiếp cận mới cho các nhóm cứu hộ, tình nguyện viên và cộng đồng vô tuyến nghiệp dư.
Dự án hoàn toàn mã nguồn mở và có thể tự lưu trữ, phù hợp với những tổ chức muốn kiểm soát hoàn toàn dữ liệu liên lạc của mình thay vì phụ thuộc vào nền tảng đám mây bên thứ ba.


