Nächste: Dateientauschdienste, Vorige: Kurznachrichtendienste, Nach oben: Dienste [Inhalt][Index]
Das Modul (gnu services telephony)
stellt Guix-Dienstdefinitionen für
Telefoniedienste zur Verfügung. Zurzeit werden folgende Dienste unterstützt:
In diesem Abschnitt wird beschrieben, wie Sie einen Server für Jami einrichten, mit dem Video- oder Audiokonferenzen bereitgestellt werden können, neben anderen Nutzungsmöglichkeiten. Das folgende Beispiel zeigt, wie Jami-Kontenarchive (Sicherungskopien) automatisch eingerichtet werden:
(service jami-service-type
(jami-configuration
(accounts
(list (jami-account
(archive "/etc/jami/unverschlüsseltes-konto-1.gz"))
(jami-account
(archive "/etc/jami/unverschlüsseltes-konto-2.gz"))))))
Wenn etwas für das accounts
-Feld angegeben wird, werden die
Jami-Kontendateien des Dienstes unter /var/lib/jami bei jedem
Neustart des Dienstes neu erzeugt.
Jami-Konten und die zugehörigen Archive mit Sicherungskopien können mit dem
Jami-Client jami
oder auch mit dem Client jami-gnome
angelegt
werden. Die Konten sollten nicht mit einem Passwort geschützt werden,
aber es ist ratsam, sie nur für den Administratornutzer ‘root’ lesbar
zu machen.
Im nächsten Beispiel sehen Sie, wie deklariert wird, dass nur manche Kontakte mit einem bestimmten Konto kommunizieren dürfen:
(service jami-service-type
(jami-configuration
(accounts
(list (jami-account
(archive "/etc/jami/unverschlüsseltes-konto-1.gz")
(peer-discovery? #t)
(rendezvous-point? #t)
(allowed-contacts
'("1dbcb0f5f37324228235564b79f2b9737e9a008f"
"2dbcb0f5f37324228235564b79f2b9737e9a008f")))))))
In diesem Modus können nur die als allowed-contacts
deklarierten
Kontakte eine Kommunikation mit diesem Jami-Konto einleiten. So etwas kann
zum Beispiel benutzt werden, um Konten als „Treffpunkt“ zur Erstellung von
privaten Videokonferenzräumen einzurichten.
Um dem Systemadministrator die volle Kontrolle über von deren System angebotene Konferenzen zu geben, unterstützt der Jami-Dienst die folgenden Aktionen:
# 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)
Das Ziel ist, mit den obigen Aktionen die für die Moderation wertvollsten
Aktionen zur Verfügung zu stellen; wir versuchen nicht, die gesamte
Programmierschnittstelle von Jami abzudecken. Benutzer, die aus Guile heraus
mit dem Jami-Daemon interagieren möchten, interessieren sich vielleicht für
das Modul (gnu build jami-service)
, womit die obigen
Shepherd-Aktionen implementiert wurden.
Die Aktionen add-moderator
und ban-contact
nehmen den
Fingerabdruck (einen 40-zeichigen Hash) als erstes Argument und einen
Konto-Fingerabdruck oder Benutzernamen als zweites Argument an.
# herd add-moderator jami 1dbcb0f5f37324228235564b79f2b9737e9a008f \ f3345f2775ddfe07a4b0d95daea111d15fbc1199 # herd list-moderators jami Moderators for account f3345f2775ddfe07a4b0d95daea111d15fbc1199: - 1dbcb0f5f37324228235564b79f2b9737e9a008f
Im Fall von ban-contact
ist das zweite Benutzernamen-Argument
optional; wenn Sie es weglassen, wird das Konto gegenüber allen Jami-Konten
gesperrt.
# herd ban-contact jami 1dbcb0f5f37324228235564b79f2b9737e9a008f # herd list-banned-contacts jami Banned contacts for account f3345f2775ddfe07a4b0d95daea111d15fbc1199: - 1dbcb0f5f37324228235564b79f2b9737e9a008f
Gesperrten Kontakten werden auch ihre Moderatorrechte entzogen.
Die Aktion disable-account
ermöglicht es, ein Konto gänzlich vom
Netzwerk abzutrennen, also unerreichbar zu machen. Dagegen bewirkt
enable-account
das Gegenteil. Sie nehmen einen einzelnen
Kontobenutzernamen oder -fingerabdruck als erstes Argument:
# herd disable-account jami f3345f2775ddfe07a4b0d95daea111d15fbc1199 # herd list-accounts jami The following Jami accounts are available: - f3345f2775ddfe07a4b0d95daea111d15fbc1199 (dummy) [disabled]
Die Aktion list-account-details
zeigt die Parameter jedes Kontos
ausführlich im Recutils-Format an, d.h. der Befehl recsel
kann
benutzt werden, um die relevanten Konten auszuwählen (siehe Selection
Expressions in Handbuch der GNU recutils). Beachten Sie, dass
anstelle der Punkt-Zeichen (‘.’) in den Schlüsseln der Kontoparameter
Unterstriche (‘_’) angezeigt werden, um den Anforderungen des
Recutils-Formats zu genügen. Folgendes Beispiel zeigt, wie man den
Fingerabdruck jedes im Treffpunktmodus befindlichen Kontos angezeigt
bekommt:
# herd list-account-details jami | \ recsel -p Account.username -e 'Account.rendezVous ~ "true"' Account_username: f3345f2775ddfe07a4b0d95daea111d15fbc1199
Die anderen Aktionen sollten selbsterklärend sein.
Nun folgt eine vollständige Übersicht über die verfügbaren Konfigurationsoptionen.
Verfügbare jami-configuration
-Felder sind:
libjami
(Vorgabe: libjami
) (Typ: „package“)Das Jami-Daemon-Paket, was benutzt werden soll.
dbus
(Vorgabe: dbus-for-jami
) (Typ: „package“)Das D-Bus-Paket, mit dem die benötigte D-Bus-Sitzung gestartet wird.
nss-certs
(Vorgabe: nss-certs
) (Typ: „package“)Das nss-certs-Paket, was die TLS-Zertifikate bereitstellt.
enable-logging?
(Vorgabe: #t
) (Typ: Boolescher-Ausdruck)Ob Protokollierung in Syslog aktiviert sein soll.
debug?
(Vorgabe: #f
) (Typ: Boolescher-Ausdruck)Ob Meldungen der Fehlersuch-Ausführlichkeitsstufe aktiviert sein sollen.
auto-answer?
(Vorgabe: #f
) (Typ: Boolescher-Ausdruck)Ob Anrufe erzwungen automatisch entgegengenommen werden sollen.
accounts
(Typ: Vielleicht-„jami-account“-Liste)Eine Liste der Jami-Konten, die jedes Mal (neu) eingerichtet werden, wenn der Jami-Daemon-Dienst startet. Wenn Sie dieses Feld angeben, werden die Kontoverzeichnisse unter /var/lib/jami/ bei jedem Start des Dienstes aufs Neue erzeugt, was einen konsistenten Zustand gewährleistet.
Verfügbare jami-account
-Felder sind:
archive
(Typ: Zeichenkette-oder-„computed-file“)Der Dateiname des Kontenarchivs mit den Sicherungskopien des Kontos. Damit werden die Konten neu eingerichtet, sobald der Dienst startet. Das Kontenarchiv muss unverschlüsselt sein. Es wird dringend empfohlen, diese Dateien nur für den Administratornutzer ‘root’ lesbar zu machen (sie also nicht im Store zu speichern), damit die darin enthaltenen geheimen Schlüssel des Jami-Kontos nicht bekannt werden.
allowed-contacts
(Typ: Vielleicht-Kontofingerabdruck-Liste)Die Liste der erlaubten Kontakte des Kontos in Form deren 40 Zeichen langen Fingerabdrucks. Nachrichten und eingehende Anrufe von Konten, die in der Liste fehlen, werden abgewiesen. Wenn keine Liste angegeben wird, wird die gesamte Konfiguration des Kontenarchivs als Kontakte und für öffentliche eingehende Anrufe und Nachrichten zugelassen, was normalerweise bedeutet, dass jeder Kontakt mit dem Konto kommunizieren kann.
moderators
(Typ: Vielleicht-Kontofingerabdruck-Liste)Die Liste der Kontakte, die Moderationsrecht (andere Nutzer sperren, stummschalten usw.) in Treffpunkt-Konferenzen („Rendezvous“) haben. Kontakte werden in Form ihres 40 Zeichen langen Fingerabdrucks angegeben. Wird nichts festgelegt, werden Moderationsrechte an die gesamte Konfiguration des Kontenarchivs übertragen, was normalerweise bedeutet, dass jeder die Moderatorrolle einnehmen kann.
rendezvous-point?
(Typ: Vielleicht-Boolescher-Ausdruck)Ob das Konto im Treffpunktmodus (Rendezvous-Modus) arbeiten soll. In diesem Modus werden alle eingehenden Audio-/Videoanrufe in eine Konferenz gemischt. Wenn nichts angegeben wird, gilt der Wert im Kontenarchiv.
peer-discovery?
(Typ: Vielleicht-Boolescher-Ausdruck)Ob sich der Jami-Daemon am Multicast-Mechanismus zum Finden lokaler Netzwerkteilnehmer beteiligen soll. Damit werden andere OpenDHT-Knoten im lokalen Netzwerk erkannt, wodurch die Kommunikation zwischen Geräten in einem solchen Netzwerk aufrechterhalten werden kann, selbst wenn die Internetverbindung verloren geht. Wenn nichts angegeben wird, gilt der Wert im Kontenarchiv.
bootstrap-hostnames
(Typ: Vielleicht-Zeichenketten-Liste)Eine Liste von Rechnernamen oder IP-Adressen, die auf OpenDHT-Knoten verweisen, über die beim Start eine Verbindung zum OpenDHT-Netzwerk aufgebaut wird. Wenn nichts angegeben wird, gilt der Wert im Kontenarchiv.
name-server-uri
(Typ: Vielleicht-Zeichenkette)Die URI des zu nutzenden Namens-Servers, mit dem der Konto-Fingerabdruck eines registrierten Nutzers erfragt werden kann.
Dieser Abschnitt beschreibt, wie Sie einen Server für Mumble einrichten und ausführen. (Die Server-Komponente war ehemals bekannt unter dem Namen Murmur.)
Der Diensttyp für den Mumble-Server. Eine Beispielkonfiguration kann so aussehen:
(service mumble-server-service-type
(mumble-server-configuration
(welcome-text
"Willkommen zu diesem mit Guix betriebenen Mumble-Server!")
(cert-required? #t) ;Anmeldungen mit Textpasswort deaktivieren
(ssl-cert "/etc/letsencrypt/live/mumble.example.com/fullchain.pem")
(ssl-key "/etc/letsencrypt/live/mumble.example.com/privkey.pem")))
Nachdem Sie Ihr System rekonfiguriert haben, können Sie das Passwort des
Administratornutzers SuperUser
auf dem Mumble-Server mit Hilfe des
Befehls von Hand festlegen, der Ihnen in der Aktivierungsphase des
Mumble-Servers angezeigt wird.
Es wird empfohlen, ein normales Mumble-Benutzerkonto zu registrieren und mit
Administrator- oder Moderatorrechten auszustatten. Sie können auch das
Clientprogramm mumble
benutzen, um sich als neuer normaler Benutzer
anzumelden und zu registrieren, und sich dann abmelden. Im nächsten Schritt
melden Sie sich mit dem Benutzernamen SuperUser
mit dem vorher
festgelegten SuperUser
-Passwort an und statten Ihren registrierten
Mumble-Benutzer mit Administrator- oder Moderatorrechten aus oder erzeugen
ein paar Kanäle.
Verfügbare mumble-server-configuration
-Felder sind:
package
(Vorgabe: mumble
)Das Paket, das bin/mumble-server
enthält.
user
(Vorgabe: "mumble-server"
)Der Benutzer, der den Mumble-Server ausführt.
group
(Vorgabe: "mumble-server"
)Die Gruppe des Benutzers, der den Mumble-Server ausführt.
port
(Vorgabe: 64738
)Der Port, auf dem der Server lauschen wird.
welcome-text
(Vorgabe: ""
)Der Willkommenstext, der an Clients geschickt wird, sobald sie eine Verbindung aufgebaut haben.
server-password
(Vorgabe: ""
)Das Passwort, das Clients eingeben müssen, um sich verbinden zu können.
max-users
(Vorgabe: 100
)Die Maximalzahl von Nutzern, die gleichzeitig mit dem Server verbunden sein können.
max-user-bandwidth
(Vorgabe: #f
)Wie viele Stimmdaten ein Benutzer pro Sekunde versenden kann.
database-file
(Vorgabe: "/var/lib/mumble-server/db.sqlite"
)Der Dateiname der SQLite-Datenbank. Das Benutzerkonto für den Dienst wird Besitzer des Verzeichnisses.
log-file
(Vorgabe: "/var/log/mumble-server/mumble-server.log"
)Der Dateiname der Protokolldatei. Das Benutzerkonto für den Dienst wird Besitzer des Verzeichnisses.
autoban-attempts
(Vorgabe: 10
)Wie oft sich ein Benutzer innerhalb des in autoban-timeframe
angegebenen Zeitrahmens verbinden kann, ohne automatisch für die in
autoban-time
angegebene Zeit vom Server verbannt zu werden.
autoban-timeframe
(Vorgabe: 120
)Der Zeitrahmen für automatisches Bannen in Sekunden.
autoban-time
(Vorgabe: 300
)Wie lange in Sekunden ein Client gebannt wird, wenn er die Autobann-Beschränkungen überschreitet.
opus-threshold
(Vorgabe: 100
)Der Prozentanteil der Clients, die Opus unterstützen müssen, bevor der Opus-Audiocodec verwendet wird.
channel-nesting-limit
(Vorgabe: 10
)Wie tief Kanäle höchstens ineinander verschachtelt sein können.
channelname-regex
(Vorgabe: #f
)Eine Zeichenkette in Form eines regulären Ausdrucks von Qt, zu dem Kanalnamen passen müssen.
username-regex
(Vorgabe: #f
)Eine Zeichenkette in Form eines regulären Ausdrucks von Qt, zu dem Nutzernamen passen müssen.
text-message-length
(Vorgabe: 5000
)Wie viele Bytes ein Benutzer höchstens in einer Textchatnachricht verschicken kann.
image-message-length
(Vorgabe: (* 128 1024)
)Wie viele Bytes ein Benutzer höchstens in einer Bildnachricht verschicken kann.
cert-required?
(Vorgabe: #f
)Falls dies auf #t
gesetzt ist, werden Clients abgelehnt, die sich
bloß mit Passwörtern authentisieren. Benutzer müssen den
Zertifikatsassistenten abgeschlossen haben, bevor sie sich verbinden können.
remember-channel?
(Vorgabe: #f
)Ob sich mumble-server
für jeden Nutzer den Kanal merken soll, auf dem
er sich zuletzt befunden hat, als er die Verbindung getrennt hat, so dass er
wieder auf dem gemerkten Kanal landet, wenn er dem Server wieder beitritt.
allow-html?
(Vorgabe: #f
)Ob HTML in Textnachrichten, Nutzerkommentaren und Kanalbeschreibungen zugelassen wird.
allow-ping?
(Vorgabe: #f
)Wenn es auf wahr gesetzt ist, wird an nicht angemeldete Anwender die momentane Benutzerzahl, die maximale Benutzerzahl und die maximale Bandbreite pro Benutzer übermittelt. Im Mumble-Client werden diese Informationen im Verbinden-Dialog angezeigt.
Wenn diese Einstellung deaktiviert ist, wird der Server nicht in der öffentlichen Serverliste aufgeführt.
bonjour?
(Vorgabe: #f
)Ob der Server im lokalen Netzwerk anderen über das Bonjour-Protokoll mitgeteilt werden soll.
send-version?
(Vorgabe: #f
)Ob die mumble-server
-Serverversion Clients gegenüber in Ping-Anfragen
mitgeteilt werden soll.
log-days
(Vorgabe: 31
)Mumble führt in der Datenbank Protokolle, auf die über entfernte Prozeduraufrufe („Remote Procedure Calls“, kurz RPC) zugegriffen werden kann. Nach Vorgabe bleiben diese 31 Tage lang erhalten, aber sie können diese Einstellung auf 0 setzen, damit sie ewig gespeichert werden, oder auf -1, um keine Protokolle in die Datenbank zu schreiben.
obfuscate-ips?
(Vorgabe: #t
)Ob IP-Adressen in Protokollen anonymisiert werden sollen, um die Privatsphäre von Nutzern zu schützen.
ssl-cert
(Vorgabe: #f
)Der Dateiname des SSL-/TLS-Zertifikats, das für verschlüsselte Verbindungen benutzt werden soll.
(ssl-cert "/etc/letsencrypt/live/example.com/fullchain.pem")
ssl-key
(Vorgabe: #f
)Dateipfad zum privaten Schlüssel für SSL, was für verschlüsselte Verbindungen benutzt wird.
(ssl-key "/etc/letsencrypt/live/example.com/privkey.pem")
ssl-dh-params
(Vorgabe: #f
)Dateiname einer PEM-kodierten Datei mit Diffie-Hellman-Parametern für die
SSL-/TLS-Verschlüsselung. Alternativ setzen Sie ihn auf
"@ffdhe2048"
, "@ffdhe3072"
, "@ffdhe4096"
,
"@ffdhe6144"
oder "@ffdhe8192"
, wodurch die mitgelieferten
Parameter aus RFC 7919 genutzt werden.
ssl-ciphers
(Vorgabe: #f
)Die Option ssl-ciphers
wählt aus, welche Cipher-Suites zur Verwendung
in SSL/TLS verfügbar sein sollen.
Diese Option wird in der OpenSSL-Notation für Cipher-Listen angegeben.
Es wird empfohlen, dass Sie Ihre Cipher-Zeichenkette mit „openssl ciphers <Zeichenkette>“ prüfen, bevor Sie sie hier einsetzen, um ein Gefühl dafür zu bekommen, was für eine Cipher-Suite sie damit bekommen. Nachdem Sie diese Option festgelegt haben, wird empfohlen, dass Sie das Protokoll Ihres Mumble-Servers durchsehen und sicherstellen, dass Mumble auch wirklich die Cipher-Suites benutzt, die Sie erwarten.
Anmerkung: Änderungen hieran können die Rückwärtskompatibilität Ihres Mumble-Servers beeinträchtigen; dadurch kann es für ältere Mumblie-Clients unmöglich werden, sich damit zu verbinden.
public-registration
(Vorgabe: #f
)Hier muss ein
<mumble-server-public-registration-configuration>
-Verbundsobjekt oder
#f
angegeben werden.
Sie können Ihren Server optional in die öffentliche Serverliste eintragen
lassen, die der Mumble-Client mumble
beim Start anzeigt. Sie können
Ihren Server nicht registrieren, wenn Sie ein server-password
festgelegt oder allow-ping
auf #f
gesetzt haben.
Es könnte ein paar Stunden dauern, bis er in der öffentlichen Liste zu finden ist.
file
(Vorgabe: #f
)Optional kann hier eine vorrangig benutzte alternative Konfiguration festgelegt werden.
Konfiguration für das öffentliche Registrieren eines
mumble-server
-Dienstes.
name
Dies ist ein Anzeigename für Ihren Server. Er ist nicht zu verwechseln mit dem Rechnernamen („Hostname“).
password
Ein Passwort, um Ihre Registrierung zu identifizieren. Nachfolgende Aktualisierungen müssen dasselbe Passwort benutzen. Verlieren Sie Ihr Passwort nicht.
url
Dies sollte ein Link mit http://
oder https://
auf Ihren
Webauftritt sein.
hostname
(Vorgabe: #f
)Nach Vorgabe wird Ihr Server über seine IP-Adresse aufgeführt. Wenn dies gesetzt ist, wird er stattdessen mit diesem Rechnernamen verknüpft.
Hinweis: Folgendes wird demnächst verschwinden: Aus historischen Gründen werden alle oben genannten
mumble-server
-Prozeduren auch unter dem Namenspräfixmurmur-
exportiert. Sie sollten für die Zukunft aufmumble-server-
umsteigen.
Nächste: Dateientauschdienste, Vorige: Kurznachrichtendienste, Nach oben: Dienste [Inhalt][Index]