Suivant: , Précédent: , Monter: Services   [Table des matières][Index]


11.10.15 Services de téléphonie

Le module (gnu services telephony) contient des définitions de services Guix pour les services de téléphonie. Actuellement il fournit les services suivants :

Jami

Variable :jami-service-type

The service type for running Jami as a service. It takes a jami-configuration object as a value, documented below. This section describes how to configure a Jami server that can be used to host video (or audio) conferences, among other uses. The following example demonstrates how to specify Jami account archives (backups) to be provisioned automatically:

(service jami-service-type
         (jami-configuration
          (accounts
           (list (jami-account
                  (archive "/etc/jami/unencrypted-account-1.gz"))
                 (jami-account
                  (archive "/etc/jami/unencrypted-account-2.gz"))))))

Lorsque le champ de comptes est spécifié, les fichiers de compte Jami du service trouvés dans /var/lib/jami seront recréés à chaque redémarrage du service.

Les comptes Jami et leurs sauvegardes correspondantes peuvent être générés avec les clients jami ou jami-gnome. Les comptes ne devraient pas être protégés par un mot de passe, mais il vaut mieux vous assurer que leurs fichiers ne sont lisibles que par ‘root’.

L’exemple suivant montre comme déclarer que seuls certains contact devraient pouvoir communiquer avec un compte donné :

(service jami-service-type
         (jami-configuration
          (accounts
           (list (jami-account
                  (archive "/etc/jami/unencrypted-account-1.gz")
                  (peer-discovery? #t)
                  (rendezvous-point? #t)
                  (allowed-contacts
                   '("1dbcb0f5f37324228235564b79f2b9737e9a008f"
                     "2dbcb0f5f37324228235564b79f2b9737e9a008f")))))))

dans ce mode, seuls les allowed-contacts déclarés peuvent débuter une communication avec le compte Jami. Vous pouvez utiliser cela par exemple avec des comptes de point de rendez-vous pour créer un espace de vidéo-conférence privé.

Pour que l’administrateur système ait le contrôle complet des conférences hébergées sur son système, le service Jami prend en charge les actions suivantes :

# herd doc jami list-actions
(list-accounts
 list-account-details
 list-banned-contacts
 list-contacts
 list-moderators
 add-moderator
 ban-contact
 enable-account
 disable-account)

Les actions ci-dessus ont pour but de fournir les actions les plus utiles pour la modération, pas de couvrir l’ensemble de l’API de Jami. Si vous souhaitez interagir avec le démon Jami depuis Guile, vous pouvez expérimenter le module (gnu build jami-service), qui propulse les actions Shepherd ci-dessus.

Les action add-moderator et ban-contact acceptent l’empreinte d’un contact (un hash long de 40 caractères) comme premier argument et l’empreinte d’un compte ou un nom d’utilisateur comme second argument :

# herd add-moderator jami 1dbcb0f5f37324228235564b79f2b9737e9a008f \
  f3345f2775ddfe07a4b0d95daea111d15fbc1199

# herd list-moderators jami
Moderators for account f3345f2775ddfe07a4b0d95daea111d15fbc1199:
  - 1dbcb0f5f37324228235564b79f2b9737e9a008f

dans le cas de ban-contact, le second argument est facultatif ; lorsqu’il est omis, le compte est banni de tous les comptes de Jami :

# herd ban-contact jami 1dbcb0f5f37324228235564b79f2b9737e9a008f

# herd list-banned-contacts jami
Banned contacts for account f3345f2775ddfe07a4b0d95daea111d15fbc1199:
  - 1dbcb0f5f37324228235564b79f2b9737e9a008f

Les contacts bannis n’ont plus non plus de privilèges administrateur.

L’action disable-account permet de déconnecter entièrement un compte du réseau, le rendant injoignable, tandis que enable-account fait l’inverse. Ils acceptent un seul nom de compte ou empreinte comme premier argument :

# herd disable-account jami f3345f2775ddfe07a4b0d95daea111d15fbc1199

# herd list-accounts jami
The following Jami accounts are available:
  - f3345f2775ddfe07a4b0d95daea111d15fbc1199 (dummy) [disabled]

L’action list-account-details affiche les paramètres détaillés de chaque compte au format Recutils, ce qui signifie que vous pouvez utiliser la commande recsel pour choisir les comptes qui vous intéressent (voir Selection Expressions dans GNU recutils manual). Remarquez que les caractères point (‘.’) qui se trouvent la les clés des paramètres deviennent des underscores (‘_’) dans la sortie, pour satisfaire les exigences du format Recutils. L’exemple suivant vous montre comment afficher les empreintes des comptes qui opèrent en mode rendez-vous :

# herd list-account-details jami | \
  recsel -p Account.username -e 'Account.rendezVous ~ "true"'
Account_username: f3345f2775ddfe07a4b0d95daea111d15fbc1199

Les autres actions devraient être évidentes.

L’ensemble des options de configuration disponibles est donné ci-dessous.

Type de données :jami-configuration

Les champs de jami-configuration disponibles sont :

libjami (par défaut : libjami) (type : paquet)

Le paquet du démon Jami à utiliser.

dbus (par défaut : dbus-for-jami) (type : paquet)

Le paquet D-Bus à utiliser pour démarrer la session D-Bus requise.

nss-certs (par défaut : nss-certs) (type : paquet)

Le paquet nss-certs à utiliser pour utiliser les certificats TLS fournis.

enable-logging? (par défaut : #t) (type : booléen)

Indique s’il faut activer la journalisation vers syslog.

debug? (par défaut : #f) (type : booléen)

Indique s’il faut activer les messages de débogage.

auto-answer? (par défaut : #f) (type : booléen)

Indique s’il faut forcer la réponse automatique aux appels entrants.

accounts (type : peut-être-liste-de-jami-account)

Une liste de comptes Jami à (re-)provisionner à chaque fois que le service du démon Jami démarre. Lorsque le champ est spécifié, les répertoires des comptes dans /var/lib/jami/ sont recréés à chaque fois que le service démarre, pour assurer un état cohérent.

Type de données :jami-account

Les champs de jami-account disponibles sont :

archive (type : string-or-computed-file)

Le nom de fichier de l’archive (sauvegarde) du compte. C’est utilisé pour provisionner le compte quand le service démarre. L’archive du compte ne devrait pas être chiffrée. Il est fortement recommandé de la rendre lisible uniquement à l’utilisateur ‘root’ (c.-à-d. pas dans le dépôt), pour vous prémunir contre la fuite de la clé secrète du compte Jami sauvegardé.

allowed-contacts (type : peut-être-liste-de-account-fingerprint)

La liste des contacts permis pour le compte, saisis avec leur empreinte longue de 40 caractères. Les messages et les appels des comptes qui ne sont pas dans la liste seront rejetés. Lorsque la valeur n’est pas spécifiée, la configuration de l’archive du compte est utilisée telle-quelle par rapport aux permissions d’appels et de messages entrants, ce qui se résume par défaut à accepter tous les contacts à communiquer avec le compte.

moderators (type : peut-être-liste-de-account-fingerprint)

La liste des contacts qui devraient avoir des privilèges de modération (pour bannir, rendre muet, etc les autres utilisateur·rices) dans les conférences en rendez-vous, saisis avec leur empreinte longue de 40 caractères. Lorsque la valeur n’est pas spécifiée, la configuration de l’archive du compte est utilisée telle-quelle pour la modération, ce qui se résume par défaut à permettre à n’importe qui de modérer.

rendezvous-point? (type : peut-être-booléen)

Indique si le compte devrait opérer en mode rendez-vous. Dans ce mode, tous les appels audio et vidéos entrants sont fusionnés en une conférence. Lorsque la valeur n’est pas spécifiée, la valeur de l’archive du compte est utilisée.

peer-discovery? (type : peut-être-booléen)

Indique si la découverte de pairs devrait être activée. La découverte de pairs est utilisée pour découvrir d’autres nœuds OpenDHT sur le réseau local, ce qui peut être utile pour maintenir une connexion entre appareils locaux sur le réseau même si la connexion internet est perdue. Lorsque la valeur n’est pas spécifiée, celle de l’archive du compte est utilisée.

bootstrap-hostnames (type: maybe-list-of-strings)

Une liste des noms d’hôte ou IP pointant vers des nœuds OpenDHT, qui devraient être utilisés pour rejoindre le réseau OpenDHT au départ. Lorsque la valeur n’est pas spécifiée, la valeur de l’archive du compte est utilisée.

name-server-uri (type : peut-être-chaine)

L’URI du serveur de nom à utiliser, qui peut être utilisé pour récupérer l’empreinte du compte pour un nom d’utilisateur enregistré.

Serveur Mumble

Cette section décrit comment configurer et lancer un serveur Mumble (précédemment connu sous le nom de Murmur).

Variable :mumble-server-service-type

This is the service to run a Mumble server. It takes a mumble-server-configuration object as its value, defined below.

Type de données :mumble-server-configuration

Le type de service pour le serveur Mumble. Voici un exemple de configuration :

(service mumble-server-service-type
         (mumble-server-configuration
          (welcome-text
            "Bienvenue sur ce serveur Mumble qui tourne sur Guix !")
          (cert-required? #t);désactive les connections par mot de passe
          (ssl-cert "/etc/certs/mumble.example.com/fullchain.pem")
          (ssl-key "/etc/certs/mumble.example.com/privkey.pem")))

Après avoir reconfiguré votre système, vous pouvez manuellement indiquer le mot de passe SuperUser de mumble-server avec la commande qui s’affiche pendant la phase d’activation.

Il est recommandé d’enregistrer un compte utilisateur Mumble normal et de lui donner les droits admin ou modérateur. Vous pouvez utiliser le client mumble pour vous connecter en tant que nouvel utilisateur normal, vous enregistrer et vous déconnecter. Pour l’étape suivante, connectez-vous avec le nom SuperUser en utilisant le mot de passe SuperUser que vous avez indiqué précédemment et accordez les droits administrateur ou modérateur à vous utilisateur mumble nouvellement enregistré et créez quelques salons.

Les champs de mumble-server-configuration disponibles sont :

package (par défaut : mumble)

Paquet qui contient bin/mumble-server.

user (par défaut : "mumble-server")

Utilisateur qui lancera le serveur Mumble.

group (par défaut : "mumble-server")

Groupe de l’utilisateur qui lancera le serveur Mumble.

port (par défaut : 64738)

Port sur lequel le serveur écoutera.

welcome-text (par défaut : "")

Texte de bienvenue envoyé aux clients lors de leur connexion.

server-password (par défaut : "")

Mot de passe que les clients devront entrer pour se connecter.

max-users (par défaut : 100)

Nombre maximum d’utilisateurs qui peuvent se connecter à ce serveur en même temps.

max-user-bandwidth (par défaut : #f)

Trafic de voix maximum qu’un utilisateur peut envoyer par seconde.

database-file (par défaut : "/var/lib/mumble-server/db.sqlite")

Nom de fichier de la base de données sqlite. L’utilisateur du service deviendra propriétaire du répertoire.

log-file (par défaut : "/var/log/mumble-server/mumble-server.log")

Nom du fichier de journal. L’utilisateur du service deviendra propriétaire du répertoire.

autoban-attempts (par défaut : 10)

Nombre maximum de connexions qu’un utilisateur peut faire pendant autoban-timeframe sans être banni automatiquement pour autoban-time.

autoban-timeframe (par défaut : 120)

Durée du temps pendant lequel le nombre de connexions est compté.

autoban-time (par défaut : 300)

Durée du bannissement automatique en secondes.

opus-threshold (par défaut : 100)

Pourcentage des clients qui doivent supporter opus avant de passer sur le codec audio opus.

channel-nesting-limit (par défaut : 10)

Profondeur maximum des canaux.

channelname-regex (par défaut : #f)

Une chaîne de la forme d’une expression régulière Qt que les noms de canaux doivent respecter.

username-regex (par défaut : #f)

Une chaîne de la forme d’une expression régulière Qt que les noms d’utilisateurs doivent respecter.

text-message-length (par défaut : 5000)

Taille maximum en octets qu’un utilisateur peut envoyer en un seul message textuel.

image-message-length (par défaut : (* 128 1024))

Taille maximum en octets qu’un utilisateur peut envoyer en une seule image.

cert-required? (par défaut : #f)

Si la valeur est #t les clients utilisant une authentification par mot de passe faible ne seront pas acceptés. Les utilisateurs doivent compléter l’assistant de configuration des certificats pour rejoindre le serveur.

remember-channel? (paramètre de : #f)

Indique si mumble-server devrait se rappeler du dernier canal dans lequel étaient les utilisateurs au moment de leur déconnexion et les y remettre lorsqu’ils se reconnectent.

allow-html? (par défaut : #f)

Indique si le html est autorisé dans les messages textuels, les commentaires utilisateurs et les descriptions des canaux.

allow-ping? (par défaut : #f)

Mettre à vrai expose le nombre d’utilisateurs, le nombre d’utilisateurs maximum et la bande passante maximale du serveur par client aux utilisateurs non connectés. Dans le client Mumble, cette information est affichée dans la boîte de dialogue de connexion.

Désactiver ce paramètre empêchera le serveur d’être publiquement listé.

bonjour? (par défaut : #f)

Indique si le serveur s’annonce sur le réseau local à travers le protocole bonjour.

send-version? (par défaut : #f)

Indique si la version du serveur mumble-server doit être exposée dans les requêtes ping.

log-days (par défaut : 31)

Mumlbe stocke aussi les journaux en base de données, qui sont accessible via RPC. La valeur par défaut est 31 jours, mais vous pouvez le mettre à 0 pour les garder pour toujours ou à -1 pour désactiver la journalisation dans la base de données.

obfuscate-ips? (par défaut : #t)

Indique si les IP enregistrées doivent être cachées pour protéger la vie privée des utilisateurs.

ssl-cert (par défaut : #f)

Nom de fichier du certificat SSL/TLS utilisé pour les connexions chiffrées.

(ssl-cert "/etc/certs/example.com/fullchain.pem")
ssl-key (par défaut : #f)

Chemin de fichier vers la clef privée ssl pour les connexions chiffrées.

(ssl-key "/etc/certs/example.com/privkey.pem")
ssl-dh-params (par défaut : #f)

Nom de fichier d’un fichier encodé en PEM avec les paramètres Diffie-Hellman pour le chiffrement SSL/TLS. Autrement vous pouvez indiquer "@ffdhe2048", "@ffdhe3072", "@ffdhe4096", "@ffdhe6144" ou "@ffdhe8192" pour utiliser les paramètres inclus de la RFC 7919.

ssl-ciphers (par défaut : #f)

L’option ssl-ciphers permet de choisir les suites de chiffrement disponibles pour SSL/TLS.

Cette option est spécifiée en utilisant l’OpenSSL cipher list notation.

Nous vous recommandons d’essayer votre chaîne de suites de chiffrements avec « openssl ciphers <chaîne> » avant de l’indiquer ici, pour avoir une idée des suites de chiffrement que vous aurez. Après avoir indiqué cette option, nous vous recommandons d’inspecter les journaux du serveur Mumble pour vous assurer que Mumble utilise les suites de chiffrements auxquelles vous vous attendez.

Remarque : Modifier cette option peut impacter la rétrocompatibilité de votre serveur Mumble, et peut empêcher que des clients Mumble anciens se connectent.

public-registration (par défaut : #f)

Doit être un enregistrement <mumble-server-public-registration-configuration> ou #f.

Vous pouvez aussi enregistrer votre serveur dans la liste des serveurs publiques que le client mumble affiche au démarrage. Vous ne pouvez pas enregistrer votre serveur si vous avez un server-password ou allow-ping à #f.

Cela peut prendre quelques heures avant d’arriver sur la liste publique.

file (par défaut : #f)

Version alternative de cette configuration : si vous indiquez quelque chose, le reste est ignoré.

Type de données :mumble-server-public-registration-configuration

Configuration pour l’enregistrement public du service mumble-server.

name

C’est le nom d’affichage de votre serveur. Ne pas le confondre avec le nom d’hôte.

password

Un mot de passe pour identifier votre enregistrement. Les mises à jours suivantes devront utiliser le même mot de passe. Ne le perdez pas.

url

Cela devrait être le lien http:// ou https:// vers votre site web.

hostname (par défaut : #f)

Par défaut votre serveur sera listé par son adresse IP. Si cette option est indiquée votre serveur sera listé par son nom d’hôte.

Avertissement d’obsolescence : Pour des raisons historiques, toutes les procédures mumble-server- ci-dessus sont aussi exportées avec le préfixe murmur- à la place. Il est recommandé de commencer à utiliser mumble-server- à partir de maintenant.


Suivant: Services de partage de fichiers, Précédent: Services de messagerie, Monter: Services   [Table des matières][Index]