Administration

Allgemeines

Folgende administrative Aufgaben fallen im laufenden Betrieb an:

Eine weitere erfahrungsgemäß anfallende Aufgabe ist das ermitteln von fehlerhaft als „gelöscht“ gespeicherten Nummern, die erneut angerufen werden sollen. Doch ist dies eher die Aufgabe eines Reports. Eine Reaktivierung dieser Nummern ist nicht unbedingt erforderlich; statt dessen können die ermittelten Daten einfach erneut in einen „freien“ Vertrag eingegeben werden.

Um die angegebenen Aufgaben zu lösen, wäre eine entsprechende KDE-Anwendung sinnvoll. Die Entwicklung einer solchen Anwendung ist vorgesehen, aber bis auf erste Ansätze noch nicht realisiert.

Alternativ kann man direkt auf der Datenbank arbeiten. Dies ist über Kommandozeilen-Tools wie den mySQL Client ebenso möglich wie über grafische Frontends wie mysqlcc unter Linux oder mySQLfront unter Windows. Diese Methode wird im folgenden beschrieben.

Warnung: KDE/QT-Anwendungen verwenden in ihren Eingabemasken zur Codierung von Umlauten den Windows-Zeichensatz. Die Linux-Tools mySQL Client und mysqlcc hingegen verwenden den gleichen Zeichensatz wie die Linux-Konsolen.

Aufträge

Tabelle: contracts

Spalte

Erlaubter Wert

Beschreibung

pkey

keiner

Schlüsselwert, der von der Datenbank automatisch gesetzt wird.

contracttitle

Freitext, max. 40 Zeichen

Titel des Auftrags, zum Beispiel Auftragsnummer.

contractor

Freitext, max. 40 Zeichen

Auftraggeber.

field1, field2, field3, field4

Freitext, max. 40 Zeichen

Die Namen der vier auftragsabhängigen Felder.

date

Datum und Zeit, Form:
YYYY-MM-DD HH:MM:SS

Hat nur Kommentarfunktion. Gibt an, wann der Auftrag in die Datenbank eingefügt wurde. Wird im Report ausgegeben.

field1required, field2required, field3required, field4required

0 oder 1

Gibt an, welches der vier auftragsabhängigen Felder ein Pflichtfeld ist (1) und welches nicht (0). Diese Felder haben z.Zt. nur Kommentarfunktion. kallcenter ignoriert die Werte zur Zeit: Pflicht ist das Ausfüllen von mindestens einem Feld.

Default: 0

free

0 oder 1

0: beim Login mit diesem Auftrag holt sich der Agent 1000 „normale“ Nummern und telefoniert sie der Reihe nach ab.

1: beim Login mit diesem Auftrag erzeugt kallcenter stets neue, leere Datensätze, in die der Agent selbst die Telefonnummer eingibt.

Default: 0

Beispiele für mySQL Client:

insert into contracts

(contracttitle, contractor, field1, field2, field3, field4, date, free)

values

('78801', 'SKL', 'Zehntel Lose', 'Glueckszahlen', 'Eurojoker', 'Traumjoker',

now(), 0);

 

insert into contracts

(contracttitle, contractor, field1, field2, field3, field4, date, free)

values

('78801 Frei', 'SKL', 'Zehntel Lose', 'Glueckszahlen', 'Eurojoker',

'Traumjoker', now(), 1);

Anmerkung: Aufträge sollten keinesfalls gelöscht werden. Andere Datensätze sind mit Aufträgen verknüpft.

Agenten

Tabelle: agents

Spalte

Erlaubter Wert

Beschreibung

pkey

keiner

Schlüsselwert, der von der Datenbank automatisch gesetzt wird.

firstname

Freitext, max. 40 Zeichen

Vorname des Agenten.

surname

Freitext, max. 40 Zeichen

Nachname des Agenten.

id

Freitext, max. 40 Zeichen

Benutzer-ID des Agenten.

active

0 oder 1

1: der Agent ist „aktiv“, wird in der Login-Maske angezeigt und kann sich einloggen.

0: der Agent ist „inaktiv“, quasi gelöscht. Er wird in der Login-Maske nicht mehr angezeigt und kann sich daher auch nicht einloggen.

Default: 1

normal

0 oder 1

1: ein „normaler“ Agent, der sich mit einem „unfreien“ Vertrag anmeldet, reserviert sich mit dem Login 1000 „normale“ Nummern und gibt sie mit dem Logout wieder frei.

0: ein „nicht normaler“ Agent, kurz ein Kurs-Account, reserviert sich mit dem Login keine Nummern und gibt mit dem Logout auch keine frei. Ein solcher Agent kann jedoch mit „nicht normalen“ Nummen, kurz Kursnummern, arbeiten; diese sind ihm (und einem bestimmten Auftrag) ein für alle mal fest zugeordnet.

Default: 1

Beispiele für mySQL Client:

insert into agents

(firstname, surname, id)

values

('Erika', 'Mustermann', '0001');

 

insert into agents

(firstname, surname, id, normal)

values

('Kurs', '01', 'kurs01', 0);¶

 

update agents

set active = 0

where id = '0002';¶

Anmerkung: Agenten sollten niemals gelöscht werden. Statt dessen sollten sie inaktiv geschaltet werden. Andere Datensätze sind mit Agenten verknüpft.

Zuordnung von Aufträgen zu Agenten

Tabelle: agentcontracts

Spalte

Erlaubter Wert

Beschreibung

pkey

keiner

Schlüsselwert, der von der Datenbank automatisch gesetzt wird.

contract

Zahl

pkey-Schlüsselwert des Auftrags.

agent

Zahl

pkey-Schlüsselwert des Agenten.

Der durch den pkey-Schlüssel contract gegebene Auftrag wird dem durch den pkey-Schlüssel agent gegebenen Agenten zugeordnet.

Beispiele für mySQL Client:

insert into agentcontracts

(contract, agent)

values

(4, 23);

 

insert ignore into agentcontracts

(contract, agent)

select

7 as contract, agents.pkey as agent

where agents.active = 1 and agents.normal = 1;

 

delete from agentcontracts

where contract = 2;¶

 

delete from agentcontracts

where contract = 3 and agent = 23;¶

Anmerkung: Verknüpfungen zwischen Agenten und Aufträgen können gelöscht werden, um die Zuordnung aufzuheben.

Anmerkung: Die Zuordnung Agent/Auftrag muss eindeutig sein, sie darf nicht mehrfach vorkommen. „insert ignore“ ignoriert die Aufforderung, eine bereits existierende Zuordnung ein zweites mal einzufügen.

SIP-Phones

Tabelle: sip

Spalte

Erlaubter Wert

Beschreibung

pkey

keiner

Schlüsselwert, der von der Datenbank automatisch gesetzt wird.

client

Freitext, max. 40 Zeichen

Hostname des Client-PC's, ohne Domain.

Im derzeitigen kallcenter-Modell gilt: ein PC – eine Telefonnummer – ein Provider. Im Sinne eines Least Cost Routings könnte es sinnvoll sein, dieses Modell zu ändern – allerdings macht das nur Sinn, wenn sehr viele Auslandstelefonate geführt werden.

server

Freitext, max. 40 Zeichen

SIP-Server. Wird vom Provider vorgegeben.

realm

Freitext, max. 40 Zeichen

SIP-Realm. Die anzurufenden Nummern werden in SIP-Nummern nach folgendem Schema umgesetzt:

<Landesvorwahl><Vorwahl><Nummer>@<Realm>

display

Freitext, max. 40 Zeichen

Beliebiger Text. Z.B. Name des Providers. Hat keine echte Bedeutung.

number

Freitext, max. 40 Zeichen

Nummer des SIP-Phones. Wird vom Provider vorgegeben.

Theoretisch können Anrufe über diese Nummer an den kallcenter-Client geleitet werden. In der Praxis wird dies von kallcenter nicht weiter unterstützt (es entspricht einem Inbound-Betrieb).

username

Freitext, max. 40 Zeichen

Benutzername. Wird vom Provider vorgegeben.

Hierüber registriert sich das SIP-Phone beim SIP-Provider.

password

Freitext, max. 40 Zeichen

Passwort. Wird vom Provider vorgegeben.

Hierüber registriert sich das SIP-Phone beim SIP-Provider.

usestun

0 oder 1

0: Der Provider benutzt kein STUN.

1: Der Provider benutzt STUN. Dann wird der STUN-Server vom nächsten Feld vorgegeben.

Default: 0

stunserver

Freitext, max. 40 Zeichen

STUN-Server, falls STUN aktiviert wurde.

countryprefix

Freitext, max. 10 Zeichen

Landesvorwahl. Die anzurufenden Nummern werden in SIP-Nummern nach folgendem Schema umgesetzt:

<Landesvorwahl><Vorwahl><Nummer>@<Realm>

Die Schreibweise hängt vom Provider ab. So verwendet GMX beispielsweise 49 für Deutschland, TelDaFax verwendet 0049.

Beispiele für mySQL Client:

insert into sip

(client, server, realm, display, number, username, password, countryprefix)

values

('pc001', 'sip-gmx.net', 'sip-gmx.net', 'GMX', '4922112345', '4922112345',

'geheim', '49')

Anmerkung: SIP-Phone-Einträge sollten keinesfalls gelöscht werden. Andere Datensätze sind mit ihnen verknüpft.

Anmerkung: Der „client“ muss eindeutig sein.

Nummern-Import

Da die Anzahl der zu importierenden Telefonnummern mindestens in die zehntausende, je nach Nummernquelle in die Millionen geht, ist eine manuelle Eingabe nicht möglich – ausgenommen die Eingabe durch die einzelnen Agenten während des Telefonierens (nämlich bei „freien“ Aufträgen).

kallcenter bietet hier die Möglichkeit, CSV-Dateien beliebiger Größe zu importieren. Diese Dateien müssen das Default-Format von Klicktel haben. Es hat symbolisch die folgende Form:

"Anrede";"Vorname";"Nachname";"Bemerkung";"Strasse";"Hausnummer";

"Strasse und Hausnummer";"Stadtteil";"Landeskennzeichen";"Postleitzahl";

"Ort";"Art des Eintrags";"Vorwahl";"Durchwahl";"(Vorwahl) Durchwahl";

"Vorwahl/Durchwahl"

Eine Datei dieses Aufbaus kann mit dem Kommando „./import-unique.pl <Name der CSV-Datei>“ importiert werden. Das Perl-Script import-unique.pl filtert die Datensätze, wie es bei Klicktel-Daten nötig ist:

Kursnummern

Mit den bisher beschriebenen Features ist der Betrieb eines Callcenters bereits möglich. Es gibt jedoch einige weitere Features, die nur durch vollständige Kenntnis der Tabelle numbers benutzt werden können. Anbei daher die Beschreibung.

Eines der Features sind die Kursnummern, sowohl in Verbindung mit einem Kurs-Account als auch mit einem normalen Agenten.

Kursnummern sind Telefonnummern, bei denen das Feld „normal“ den Wert 0 hat. Bei einem normalen Agenten reserviert kallcenter beim Login nur „normale“ Nummern und gibt auch beim Logout nur die „normalen“ Nummern wieder frei. Kursnummern in Verbindung mit einem normalen Agenten können also dazu benutzt werden, diesem Agenten zusätzliche Telefonnummern fest zuzuordnen: beispielsweise Aufträge oder „gelbe“ Nummern aus dem letzten Jahr, oder importierte Nummern aus speziellen Quellen (hierfür fehlt derzeit aber ein Import-Skript).

In Verbindung mit einem Kurs-Account können Kursnummern zum Üben eingesetzt werden (daher auch der Name). Ein Kurs-Account reserviert weder Nummern beim Login noch gibt er sie beim Logout frei. Für einen solchen Account kann man 1000 Nummern-Datensätze mit „normal = 0“ und jeweils derselben Telefonnummer in die Tabelle numbers einfügen. Die Telefonnummer kann die eines Telefons des Callcenters selbst sein. Auf diese Weise kann ein neuer Mitarbeiter das Abtelefonieren und Abspeichern von Datensätzen mit einem Kollegen üben, der das Telefon bedient.

Tabelle: numbers

Spalte

Erlaubter Wert

Beschreibung

pkey

keiner

Schlüsselwert, der von der Datenbank automatisch gesetzt wird.

contract

Zahl

pkey-Schlüsselwert des Auftrags.

Beim Reservieren einer „normalen“ Nummer trägt kallcenter hier den pkey-Schlüssel des Auftrags ein, für den der Datensatz reserviert wurde. Der Wert, der vorher darin stand, wird ignoriert. Beim Freigeben der Nummer wird der Wert stehengelassen.

Bei einer Kursnummer muss dieser Wert fest vorgegeben sein. kallcenter führt keine Änderungen mehr aus.

agent

Zahl

pkey-Schlüsselwert des Agenten.

Beim Reservieren einer „normalen“ Nummer trägt kallcenter hier den pkey-Schlüssel des Agenten ein, der sich den Datensatz reserviert hat. Der Wert, der vorher darin stand, wird ignoriert. Beim Freigeben der Nummer wird der Wert stehengelassen.

Bei einer Kursnummer muss dieser Wert fest vorgegeben sein. kallcenter führt keine Änderungen mehr aus.

state

Zahl; 1-8

pkey-Schlüsselwert des Status.

Nach diesem Feld werden die Telefonnummern an zweiter Stelle absteigend sortiert.

Die Status-Werte sind: 1=frei, 2=reserviert (von einem Agenten), 3=nicht erreicht, 4=Termin, 5=Negativliste, 6=gelb, 7=Auftrag, 8=kein Auftrag (gelöscht). kallcenter ignoriert jedoch Statuswerte oberhalb von 5. Es werden also zunächst alle Termine dargestellt, dann alle nicht erreichten Nummern und dann alle reservierten.

no

Zahl

Nach diesem Feld werden die Telefonnummern an vierter Stelle sortiert. Diesem Feld wird vom Import-Skript eine Zufallszahl im Bereich 0-30000000 (der ungefähren Größe des Klicktel-Pools) zugewiesen, damit die Telefonnummern in zufälliger Reihenfolge abtelefoniert werden. Die in der Sortierung vorrangigen Felder erhalten bei neu importierten/reservierten Nummern ja stets gleiche Werte: dirty=0, state=2, nextcalldate='2005-01-01 00:00:00'; daher greift hier die Sortierung nach dem Feld no.

nextcalldate

Datum und Zeit, Form:
YYYY-MM-DD HH:MM:SS

Nach diesem Feld werden die Telefonnummern an dritter Stelle sortiert. Vom Import-Skript wird diesem Feld der Wert '2005-01-01 00:00:00' zugewiesen.

Bei gleichem Status greift diese Sortierung, so daß zunächst alle Termine in der Reihenfolge ihres Zeitpunktes abgearbeitet werden, dann alle „nicht erreichten“ Nummern in der Reihenfolge ihres Zeitpunktes und danach die reservierten Nummern, die laut Import-Skript alle den gleichen Zeitstempel haben sollten.

salutation

Freitext, max. 40 Zeichen

Anrede.

firstname

Freitext, max. 40 Zeichen

Vorname.

surname

Freitext, max. 40 Zeichen

Nachname.

birthday

Freitext, max. 40 Zeichen

Geburtstag.

job

Freitext, max. 40 Zeichen

Arbeit.

bankname

Freitext, max. 40 Zeichen

Bankverbindung: Name der Bank.

banknumber

Freitext, max. 40 Zeichen

Bankverbindung: Bankleitzahl (BLZ).

accountnumber

Freitext, max. 40 Zeichen

Bankverbindung: Kontonummer.

accountowner

Freitext, max. 40 Zeichen

Bankverbindung: Kontoinhaber (Name).

street

Freitext, max. 40 Zeichen

Wohnort: Strasse und Hausnummer.

zipcode

Freitext, max. 40 Zeichen

Wohnort: Postleitzahl.

location

Freitext, max. 40 Zeichen

Wohnort: Ort.

prefix

Freitext, max. 40 Zeichen

Vorwahl der anzurufenden Nummer.

phonenumber

Freitext, max. 40 Zeichen

Durchwahl der anzurufenden Nummer.

Die anzurufende SIP-Nummer bestimmt sich nach dem folgenden Schema:

<Landesvorwahl><Vorwahl><Nummer>@<Realm>

prefix2

Freitext, max. 40 Zeichen

Zweite Telefonnummer, Vorwahl. Kann vom Agenten beliebig gesetzt werden; hat nur Kommentarfunktion.

phonenumber2

Freitext, max. 40 Zeichen

Zweite Telefonnummer, Durchwahl. Kann vom Agenten beliebig gesetzt werden; hat nur Kommentarfunktion.

field1, field2, field3, field4

Freitext, max. 40 Zeichen

Die Werte der vier auftragsabhängigen Felder.

remark

Freitext, unbegrenzt

Beliebige Anmerkungen.

normal

0 oder 1

1: „Normale“ Nummer. Die Nummer kann von jedem „normalen“ Agenten und für jeden (unfreien) Auftrag beim Login reserviert werden, sie kann dann bearbeitet oder beim Logout wieder freigegeben werden.

0: „Kursnummer“. Die Nummer kann weder automatisch reserviert noch freigegeben werden.

Default: 1

dirty

0 oder 1

0: Der Datensatz ist entweder unbearbeitet oder sauber abgespeichert worden.

1: Der Datensatz wurde bearbeitet (ein Feld wurde verändert, oder es hat eine Anwahl stattgefunden), aber noch nicht abgespeichert.

Default: 0

Anmerkung: Nach diesem Feld wird an erster Stelle absteigend sortiert. Das heißt, bearbeitete Datensätze kommen stets vor allen anderen, sofern sie überhaupt darstellbar sind – das heißt, nextcalldate muss einen Zeitpunkt in der Vergangenheit beschreiben.

Siehe dazu auch die Anmerkung Bekannter Fehler unter kallcenter Client / Hauptmaske – Frei = 0 / Nächster Versuch.

completenum

Freitext, max. 40 Zeichen

Hier wird beim Import (bzw. bei „freien“ Aufträgen bei der ersten Anwahl) die zusammengesetzte Zeichenkette

<Vorwahl><Durchwahl>

gespeichert. Prüfungen, ob die Anwahl der Nummer erlaubt ist (gegen die Negativliste, oder Vorwahlen der Form 180/190/800), werden gegen completenum durchgeführt. Auf diese Weise werden Fehleingaben kompensiert, bei denen ein Teile der Vorwahl in die Durchwahl oder umgekehrt geraten sind.