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


12.9.14 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

Cette section décrit comment configurer un serveur Jami que vous pouvez utiliser pour héberger des conférence vidéo (ou audio) entre autres choses. L’exemple suivant montre comment spécifier les archives de compte Jami (les sauvegardes) automatiquement :

(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.

Jami accounts and their corresponding backup archives can be generated using the jami or jami-gnome Jami clients. The accounts should not be password-protected, but it is wise to ensure their files are only readable by ‘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 (default: libjami) (type: package)

Le paquet du démon Jami à utiliser.

dbus (default: dbus-for-jami) (type: package)

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: maybe-jami-account-list)

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: maybe-account-fingerprint-list)

The list of allowed contacts for the account, entered as their 40 characters long fingerprint. Messages or calls from accounts not in that list will be rejected. When left specified, the configuration of the account archive is used as-is with respect to contacts and public inbound calls/messaging allowance, which typically defaults to allow any contact to communicate with the account.

moderators (type: maybe-account-fingerprint-list)

The list of contacts that should have moderation privileges (to ban, mute, etc. other users) in rendezvous conferences, entered as their 40 characters long fingerprint. When left unspecified, the configuration of the account archive is used as-is with respect to moderation, which typically defaults to allow anyone to moderate.

rendezvous-point? (type: maybe-boolean)

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: maybe-boolean)

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-string-list)

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: maybe-string)

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é.

Mumble server

This section describes how to set up and run a Mumble server (formerly known as Murmur).

Data Type : mumble-server-configuration

The service type for the Mumble server. An example configuration can look like this:

(service mumble-server-service-type
         (mumble-server-configuration
          (welcome-text
            "Welcome to this Mumble server running on Guix!")
          (cert-required? #t) ;disallow text password logins
          (ssl-cert "/etc/letsencrypt/live/mumble.example.com/fullchain.pem")
          (ssl-key "/etc/letsencrypt/live/mumble.example.com/privkey.pem")))

After reconfiguring your system, you can manually set the mumble-server SuperUser password with the command that is printed during the activation phase.

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.

Available mumble-server-configuration fields are:

package (par défaut : mumble)

Package that contains bin/mumble-server.

user (default: "mumble-server")

User who will run the Mumble-Server server.

group (default: "mumble-server")

Group of the user who will run the mumble-server server.

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 (default: "/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 (default: "/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)

Should mumble-server remember the last channel each user was in when they disconnected and put them into the remembered channel when they rejoin.

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)

Should the mumble-server server version be exposed in ping requests.

log-days (par défaut : 31)

Mumble also stores logs in the database, which are accessible via RPC. The default is 31 days of months, but you can set this setting to 0 to keep logs forever, or -1 to disable logging to the database.

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/letsencrypt/live/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/letsencrypt/live/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.

It is recommended that you try your cipher string using ’openssl ciphers <string>’ before setting it here, to get a feel for which cipher suites you will get. After setting this option, it is recommend that you inspect your Mumble server log to ensure that Mumble is using the cipher suites that you expected it to.

Remarque : Changing this option may impact the backwards compatibility of your Mumble-Server server, and can remove the ability for older Mumble clients to be able to connect to it.

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

Must be a <mumble-server-public-registration-configuration> record or #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é.

Data Type : mumble-server-public-registration-configuration

Configuration for public registration of a mumble-server service.

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.

Deprecation notice : Due to historical reasons, all of the above mumble-server- procedures are also exported with the murmur- prefix. It is recommended that you switch to using mumble-server- going forward.


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