Présentation
Partyline est une application de communication vocale en groupe, conçue pour fonctionner sur le protocole de routage Reticulum et le transport LXST. Le projet s’inspire de Mumble, mais il se distingue par son modèle d’encryptage complet et par la capacité d’utiliser n’importe quel lien Reticulum offrant plus de 6 kilobits par seconde. L’ensemble du logiciel repose sur Python 3.11 ou une version supérieure et se distribue via pip install partyline. Trois exécutables sont fournis : partyline (client graphique), partyline-client (client en ligne de commande) et partyline-server (serveur).
Architecture et codecs
Le serveur crée des « rooms » dont chaque instance possède son propre profil LXST. Les profils définissent le codec utilisé : Opus (16 kbps, 8 kbps ou 6 kbps) pour les liaisons rapides, et Codec2 (3200 bps, 2400 bps, 1200 bps ou 700 bps) pour les réseaux à faible débit comme LoRa ou le radio paquet. Un profil « music‑high » (56 kbps) est disponible pour la diffusion musicale. Le choix du codec se fait au lancement du serveur, par exemple :
partyline-server --profile opus-high. Les salles à faible bande passante utilisent le mode « push‑to‑talk » (PTT) ; elles agrègent les paquets audio pour remplir la MTU du lien et augmentent le tampon de jitter du récepteur afin de compenser la variabilité du débit. Un exemple de configuration JSON pour une salle PTT à 700 bps est : {"name": "Packet Radio Net 700", "profile": "c2-700", "ptt": true, "ptt_jitter_ms": 9000}. Les salles normales envoient un trame audio par paquet, ce qui minimise la latence mais nécessite un débit stable supérieur à ~3,5 kbps.Déploiement et configuration
Le serveur peut être lancé en moins de trente secondes avec la commande partyline-server --name "My server" --profile opus-high. Le serveur affiche son hash de destination, qui sert d’identifiant réseau pour les clients. Les options d’accès incluent des listes blanches d’identités, des mots de passe, ou un mode ouvert. Le fichier d’exemple server_example.json expose l’ensemble des paramètres, notamment les profils de codec, les listes d’opérateurs et les paramètres PTT. Pour une installation en tant que service système, le projet fournit un fichier d’unité systemd :
[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. Après avoir placé ce fichier sous /etc/systemd/system/partyline.service, les commandes systemctl daemon-reload puis systemctl enable --now partyline activent le service.Limites et perspectives
Le modèle de chiffrement repose sur les primitives de Reticulum, ce qui garantit la confidentialité mais impose la même contrainte de clé publique que le réseau sous‑jacent. Les performances audio sont limitées par le débit du lien : les profils Opus offrent une qualité comparable à la voix téléphonique à 16 kbps, tandis que Codec2 à 700 bps produit une intelligibilité suffisante pour les communications de secours, mais avec une bande passante très réduite. L’utilisation de PTT augmente la latence due à la mise en mémoire tampon, ce qui peut affecter les échanges interactifs. Enfin, la dépendance à Tk pour l’interface graphique nécessite l’installation de python3-tk sur la plupart des distributions Linux, ce qui peut compliquer le déploiement sur des systèmes embarqués dépourvus d’environnement X.