Installation

Empfohlene Hardware

kallcenter ist bei den Anforderungen an die Hardware ausgesprochen genügsam.

Für die Clients sollte wegen des darunterliegenden SuSE 9.2 ein Arbeitsspeicher von 256 MB RAM (SD-RAM oder DDR-RAM) vorhanden sein. Die CPU-Leistung ist weniger wichtig; ein Pentium III 1 GHz ist vollkommen ausreichend, kallcenter wurde auch schon auf langsameren Rechnern mit ausreichender Performance betrieben.

Die Netzwerkverbindung sollte wegen der Update-Dienste 100 MBit/s betragen. Dabei ist nicht nur kcupdate, sondern auch der Update-Dienst von SuSE gemeint – Paket-Installationen übers Netz via YaST und Internet-Updates über einen Proxy-Server via YOU transportieren noch erheblich größere Datenmengen über das Netz.

Auch beim Server ist ein Pentium III 1 GHz ausreichend, wobei der Arbeitsspeicher hier großzügiger bemessen sein sollte (512MB RAM) und keine grafische Oberfläche laufen sollte. Eine solche Maschine zeigte mit zehn gleichzeitig telefonierenden Clients im Normalbetrieb nur eine unbedeutende CPU-Belastung.

Daten-Importe belasten den Server natürlich massiv. So dauerte der Import einer über zwei Millionen Telefonnummern umfassenden CSV-Datei über einen in Perl geschriebenen, sehr gründlich arbeitenden Filter auf der genannten Maschine knapp 50 Minuten – was ebenfalls noch ausreichend ist.

Der freie Plattenplatz sollte mindestens 20 bis 30 GB betragen, was nach heutigen Maßstäben ebenfalls sehr klein ist. So benötigt eine Datenbank mit knapp über zwei Millionen Einträgen ca. 500 Megabyte Platz. Allerdings wird für den Import einer zwei Millionen Einträge umfassenden Datei abermals 500 Megabyte temporärer Platz benötigt, unabhängig davon, wieviele Einträge hinterher tatsächlich übernommen werden. Entsprechend kann man hochrechnen, wieviel für den Import des Klicktel-Pools mit seinen ca. 30 Millionen Nummern benötigt würde: ca. 7,5 Gigabyte für die Datenbank, und mindestens noch einmal 500 Megabytes temporärer Platz, falls der Pool in Teilen von maximal zwei Millionen Nummern importiert wird; falls alles auf einmal importiert werden soll, sind 15 Gigabytes notwendig, nicht gerechnet das Betriebssystem und andere Anwendungen sowie die Transaktions-Logs von mySQL, falls diese eingeschaltet sind. Diese Logs haben aber eine der Datenbank vergleichbare Größe, da sie alle Import-Aktionen mitschreiben. Wobei es natürlich möglich ist, die Transaktions-Logs zwischenzeitlich immer wieder zu löschen.

Größte Sorgfalt sollte bei der Auswahl der Soundsysteme der Clients angewendet werden.

Hier gibt es kein Patentrezept. Es gibt verschiedene Anlaufstellen im Internet, um herauszufinden, ob ein Sound-System (Soundcard oder On-Board-Chipset) von Linux unterstützt wird oder nicht. Leider gibt es keine gute Anlaufstelle. Als Extremwerte können einerseits die SuSE/Novell-Hardware-Datenbank gelten (http://hardwaredb.suse.de/searchForm.php?searchtype=extended&LANG=de_DE), in der nur wenige unterstützte Karten und fast keine On-Board-Chipsets bzw. Hauptplatinen als „unterstützt“ vermerkt sind. So ist beispielsweise der relativ neue Chipset nVidia nForce2 nirgendwo gelistet, obwohl er unter SuSE 9.2 tadellos funktioniert (Sound ebenso wie alle anderen Funktionen). Interessanterweise ist die Hauptplatine GA-7N400 von Gigabyte, die diesen Chipset benutzt, als voll unterstützt gekennzeichnet, aber andere Hauptplatinen derselben Baureihe wie GA-7N400-L werden als „Unterstützung unbekannt“ gelistet, und die (voll unterstützte) Hauptplatine GA-7N400S-L wird gar nicht gelistet. Das entgegengesetzte Extrem ist die Soundcard-Liste auf der ALSA-Seite (http://www.alsa-project.org/alsa-doc/), in der man beispielsweise über die Sound Blaster Live 24 erfährt, daß sie über das Kernel-Modul ca0106 unterstützt wird, aber nicht, daß dieses Modul a) erst seit Kernel 2.6.11 zum Standardumfang gehört (also in SuSE 9.2 nicht vorhanden ist), und b) dieses Modul den Mikrofoneingang nicht unterstützt.

Es sind also bei jeder neuen Hardware-Kombination umfangreiche Recherchen und nach Möglichkeit ein Test nötig. Bei den Recherchen sollte man nach Möglichkeit nach Berichten von Anwendern suchen. Das Sound-System darf nicht alleine berücksichtigt werden; so kann ein voll funktionsfähiges Sound-System für Voice over IP untauglich sein, falls es zwischen Sound-System und Netzwerk-Schnittstelle einen Interrupt-Konflikt gibt.

Ein Beispiel für ein taugliches System aus aktuellen Komponenten ist folgende Kombination:

Dieses System ist natürlich für einen Callcenter-Client, der mehr oder weniger nur als Telefon fungiert, deutlich überdimensioniert. Noch ungetestet, aber vermutlich zu empfehlen ist die Kombination GA-7N400L (ohne S-ATA), AMD Sempron 2200+ und einer kleineren IDE-Festplatte.

RPM-Pakete

Für kallcenter gibt es zwei RPM-Pakete, kallcenter-client und kallcenter-server. Zur Zeit gibt es lediglich eine Version für SuSE Linux 9.2 und Pentium-kompatible Prozessoren. Die Installation unter SuSE Linux ist so komfortabel, wie man es auch von der mitgelieferten Software kennt. Wer sich der RPM-Pakete bedient, kann die Abschnitte Systemvoraussetzungen und Installation der Datenbank überspringen.

Erste Voraussetzung ist natürlich ein funktionierendes Netzwerk; Server und Clients müssen untereinander und mit dem Internet verbunden sein.

Nach dem Download der Pakete können diese mit dem Konqueror geöffnet und über YaST installiert werden. Die von kallcenter benötigten SuSE-Pakete werden von YaST automatisch nachinstalliert.

Idealerweise beginnt man mit der Installation des Servers; die Clients sind ohne Kontakt zum kallcenter-Server nicht arbeitsfähig.

Auf dem Server muss zunächst das Paket kallcenter-client installiert werden; es enthält die Binärprogramme, die vom Server aus auf die Clients verteilt werden. Anschließend folgt das Paket kallcenter-server. (Download der Pakete ist möglich von: http://fourier.mylinuxproject.de/kallcenter).

Nach Installation von kallcenter-server erscheint im Startmenü unter „Büroprogramme“ der Eintrag „kallcenter Setup“. (Der ebenfalls dort sichtbare Eintrag „kallcenter“ startet lediglich den Client.) Startet man dieses Programm als normaler Benutzer, so wird zunächst nach dem root-Passwort gefragt.

Danach erfolgt Schritt für Schritt das Setup. Sollten mySQL und Apache nicht laufen, so startet das Setup sie und erinnert den Benutzer daran, sie als Dienste zu aktivieren. Das durch das RPM-Paket bereits erzeugte Verzeichnis /SuSE92 wird über Apache mit der URL /SuSE92 freigegeben.

Das Setup bietet die Möglichkeit, eine bereits existierende kallcenter-Datenbank einzubinden oder sie (inklusive Benutzer) neu anzulegen. Benutzer, Datenbankname und Passwort werden abgefragt.

Anschließend wird nach der IP-Adresse des Servers gefragt. Das Setup gibt als Voreinstellung die Adresse des ersten gefundenen Netzwerk-Interfaces an. Wird kein aktives Interface (außer Loopback) gefunden, warnt das Setup, dass das Netzwerk noch eingerichtet werden muss.

Falls das root-Passwort von mySQL noch nicht gesetzt wurde, wird es vom Setup gesetzt. Ein leeres Passwort wird nicht akzeptiert.

Das Setup erzeugt die Konfigurationsdateien der kallcenter-Clients, plaziert sie in der Web-Freigabe „/SuSE92/kallcenter“ und öffnet abschließend eine Seite mit einer Beschreibung, wie die Clients eingerichtet werden können.

Anmerkung: die Web-Freigabe /SuSE92 ist uneingeschränkt verfügbar. Daher sollte der kallcenter-Server vom Internet her nicht über Port 80 (WWW) erreichbar sein – wofür natürlich im allgemeinen auch kein Grund besteht –, oder der Zugriff muss manuell auf das lokale Netz eingeschränkt werden.

Anmerkung: beim Passwort für die kallcenter-Datenbank macht das Setup-Programm einen Vorschlag. Dieser Vorschlag ist eine zufällige Buchstaben/Zahlen-Kombination. Je nach Anforderungen kann es sinnvoll sein, diesen Vorschlag zu ändern; dies hängt von der Art und Anzahl der externen Applikationen ab, die auf die kallcenter-Datenbank zugreifen sollen. Da das Setup die Konfigurationsdateien der kallcenter-Clients mit erstellt, ist es nicht notwendig, für die Einrichtung der Clients das Passwort zu kennen. Wohl aber wird es derzeit für die Reports gebraucht.

Hinweis: Es ist vorgesehen, einige Standard-Reports ebenfalls über das Setup zu generieren, derzeit aber nicht realisiert.

Anmerkung: Sollte der Server eine dynamische, via DHCP zugeordnete Adresse haben, kann im Setup statt einer IP-Adresse auch ein Name angegeben werden. Empfehlenswert ist dies jedoch nicht, Server sollten keine DHCP-Clients sein und schon gar nicht dynamische Adressen haben. Anderenfalls entstehen unnötige Abhängigkeiten und sogar Sicherheitslücken.

Systemvoraussetzungen

Wer sich der RPM-Pakete bedient, kann diesen Abschnitt überspringen. RPM stellt sicher, dass die benötigten Pakete installiert sind.

Die folgenden Shared Object Files werden vom Programm kallcenter eingebunden (bestimmbar mit „ldd kallcenter“):

Paket

SO File

 

Paket

SO File

fontconfig

libfontconfig.so.1

 

openssl

libcrypto.so.0.9.7

freetype2

libfreetype.so.6

 

openssl

libssl.so.0.9.7

glibc

libc.so.6

 

qt3

libqt-mt.so.3

glibc

libdl.so.2

 

xorg-x11-libs

libICE.so.6

glibc

/lib/ld-linux.so.2

 

xorg-x11-libs

libSM.so.6

glibc

libm.so.6

 

xorg-x11-libs

libX11.so.6

glibc

libpthread.so.0

 

xorg-x11-libs

libXcursor.so.1

glibc

libresolv.so.2

 

xorg-x11-libs

libXext.so.6

Kernel 2.6

linux-gate.so.1

 

xorg-x11-libs

libXft.so.2

expat

libexpat.so.0

 

xorg-x11-libs

libXi.so.6

libgcc

libgcc_s.so.1

 

xorg-x11-libs

libXrandr.so.2

libpng

libpng.so.3

 

xorg-x11-libs

libXrender.so.1

libstdc++

libstdc++.so.5

 

xorg-x11-libs

libXt.so.6

libz

libz.so.1

 

 

 

Des weiteren rufen kallcenter und der kallcenter-Update-Dienst kcupdate folgende andere Programme auf:

Paket

Programm

Anmerkung

wget

wget

nur Update-Dienst kcupdate

alsa

alsactl

Speichern und Wiederherstellen der Sound-Einstellungen durch kallcenter

kdemultimedia3-mixer

kmix

Ändern der Sound-Einstellungen durch kallcenter

kdelibs3

dcop

Öffnen des kmix-Hauptfensters

psmisc

killall

Beenden anderer Sound-benutzender Programme (artsd, kmix)

psmisc

fuser

Ermitteln/beenden anderer Sound-benutzender Programme

coreutils

env

Löschen des Environments

Auf dem Server muss eine mySQL Datenbank existieren. Getestet wurde das System mit mySQL 4.0.21. Für den weiter unten beschriebenen Update-Dienst sollte ein Webserver existieren, beispielsweise Apache. Schließlich werden für die Import-Skripte der mySQL-Kommandozeilen-Client und Perl5 gebraucht. Unter SuSE Linux wären dies folgende Pakete:

Paket

Anmerkung

mysql

Datenbank-Server

mysql-client

Kommandozeilen-Client, für die Installations- und Import-Skripte

perl

Perl5, für die Import-Skripte

apache2

Webserver, für den Update-Dienst

Installation der Datenbank

Auf dem Server muss zunächst die Datenbank erstellt werden. Dafür werden folgende Skripte ausgeführt:

cat create-database.sql | mysql -u root -p

Dieses Kommando fragt nach dem Passwort des Datenbank-Administrators. Es erstellt eine leere Datenbank callcenter, den Benutzer callcenter mit dem Passwort hd6wUKgc89h, und gibt dem Benutzer callcenter Vollzugriff auf die Datenbank callcenter.

cat cc-db.sql | mysql -u callcenter -phd6wUKgc89h

Dieses Kommando legt die Tabellenstruktur an und füllt die Tabelle states.

Weiterhin müssen die folgenden Skripte kopiert werden:

Quelle

Ziel

Anmerkung

import-unique.pl

/root/

Importiert Telefonnummern aus CSV-Dateien im Klicktel-Format

negative-import.pl

/root/

Noch zu erstellen! Import-Format bislang unbekannt. Erweitert die Negativliste um Einträge aus externen Quellen

Anmerkung: Bei der jetzigen Architektur wird das Datenbank-Passwort in den Skripten selbst gespeichert. Daher müssen diese an einem für normale Benutzer unzugänglichen Ort abgelegt werden.

Anmerkung: Das Passwort für die Datenbank sollte ausgetauscht werden. Zunächst in der Datei create-database.sql, dann im Befehl zum Einspielen von cc-db.sql (siehe oben), dann in den beiden gerade genannten Perl-Scripts. Es steht außerdem noch an einer weiteren Stelle, nämlich im Installations-Skript des Update-Dienstes; dieses trägt es dann auf sämtlichen Clients bei der Erstinstallation von kallcenter in die Konfigurationsdatei ein. Siehe auch Update-Dienst / Installations-Skript.

Benötigte Tabelleneinträge

Folgende Tabellen müssen zumindest einen Eintrag enthalten, um arbeiten zu können:

Update-Dienst

Client-Konfiguration

Neue Programmversionen können von einem Update-Server aus automatisch auf allen Clients eingespielt werden. Der Update-Server muss ein Webserver sein (z.B. Apache). Da seine Belastung minimal ist, kann er auf derselben Maschine laufen wie die Datenbank.

Bei der ersten Installation von kallcenter auf den Clients muss zunächst eine Konfigurationsdatei „/etc/kcupdaterc“ angelegt werden, die den Update-Dienst steuert. Wird kcupdate ausgeführt, ohne daß diese Datei existiert, so wird die Datei automatisch mit Default-Werten erstellt.

Die Datei enthält folgende Einträge:

Variable

Default-Wert

Anmerkung

KCSERVER

192.168.0.1

Adresse des Update-Servers

PATH

/bin:/usr/bin:/usr/local/bin

Mit diesem Pfad werden die Shellscripts des Update-Servers auf den Clients ausgeführt – Sicherheitswarnung: die Scripts laufen mit root-Rechten

HOME

/home/local

Mit diesem Home-Directory werden die Shellscripts des Update-Servers auf den Clients ausgeführt – Sicherheitswarnung: die Scripts laufen mit root-Rechten

VERSIONFILE

/home/local/VERSION

In dieser Datei wird das Erstellungsdatum (entspricht der Versionskennzeichnung) des Programms kallcenter abgelegt

LOADPATH

SuSE92/kallcenter

Dies ist die Web-Freigabe auf dem Update-Server (Verzeichnis)

MAINFILE

kallcenter.bz2

Name der Datei in der Freigabe auf dem Update-Server, deren Erstellungsdatum mit dem Wert in der Datei $VERSIONFILE verglichen wird, um zu entscheiden, ob ein Update vorgenommen werden muss

INSTALLFILE

INSTALL.update-tmp

Dieses Shellscript wird aus der Freigabe auf dem Update-Server geladen und lokal mit root-Rechten ausgeführt, um die Installation abzuschließen

INDEXHTML

index.html

wget lädt das Inhaltsverzeichnis der Web-Freigabe in eine Datei dieses Namens herunter. Der Name ist beispielsweise bei Linux/Apache index.html, bei Windows/IIS hingegen index.htm oder default.htm.

Server-Konfiguration

Auf dem Server muss eine Web-Freigabe existieren, die ein Auslesen des Verzeichnis-Inhaltes erlaubt (Apache: Option Indexes). Die Freigabe muss über die in der Konfigurationsdatei /etc/kcupdaterc angegebene URL http://$KCSERVER/$LOADPATH erreichbar sein.

In dieser Freigabe müssen die folgenden Dateien stehen:

Datei

Beschreibung

kallcenter.bz2

bzip2-komprimierte Fassung des Programmes kallcenter, nach Möglichkeit Übersetzt mit der Option –enable-debug=yes.

Wichtig ist das Erstellungsdatum dieser Datei. Jede Änderung an diesem Datum erzwingt eine Neuinstallation auf allen Clients.

kallcenter-latest.tar.bz2

bzip2-komprimiertes tar-Archiv mit den Quellen von kallcenter. Hierin befinden sich auch Icons, Konfigurationsdateien und anderes, was außer dem Binärprogramm für die Installation gebraucht werden könnte.

kcupdate

Das Binärprogramm des Update-Dienstes.

INSTALL.update-tmp

Dieses Shellscript wird vom Update-Dienst mit root-Rechten ausgeführt. Das Environment wird dabei vollständig durch die Datei /etc/kcupdaterc bestimmt. Siehe Installations-Skript.

Installations-Skript

Das Installations-Skript INSTALL.update-tmp führt folgende Aufgaben durch:

Das erstellte Startskript (Desktop-Icon) wurde folgendermaßen angepaßt:

Sicherheitslücke: Momentan ist das Passwort für die Datenbank in der Konfigurationsdatei „/etc/X11/kallcenterrc“ gespeichert. Diese kann zwar theoretisch als nur „les-/schreibbar für root“ gespeichert werden. Aber jeder Schreibzugriff durch die Anwendung kallcenter (speziell durch Lautstärkeänderungen) führt zu einem Rücksetzen der Zugriffsrechte auf „schreibbar für root, lesbar für jeden“. Das Setzen von Zugriffsrechten wird von der Klasse QSettings nicht unterstützt. In einer späteren Version wird das Passwort in eine zweite Datei ausgelagert werden.