Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]


12.9.14 Telefondienste

Das Modul (gnu services telephony) stellt Guix-Dienstdefinitionen für Telefoniedienste zur Verfügung. Zurzeit werden folgende Dienste unterstützt:

Jami

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.

Datentyp: jami-configuration

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.

Datentyp: jami-account

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.

Mumble-Server

Dieser Abschnitt beschreibt, wie Sie einen Server für Mumble einrichten und ausführen. (Die Server-Komponente war ehemals bekannt unter dem Namen Murmur.)

Datentyp: mumble-server-configuration

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.

Datentyp: mumble-server-public-registration-configuration

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äfix murmur- exportiert. Sie sollten für die Zukunft auf mumble-server- umsteigen.


Nächste: Dateientauschdienste, Vorige: Kurznachrichtendienste, Nach oben: Dienste   [Inhalt][Index]