yalst 8.1 im Detail (Teil 1): Cobrowsing

Mit dieser Artikelreihe möchten wir Ihnen gerne die neuen Funktionen von yalst 8.1 ausführlicher vorstellen. Den Anfang macht heute die wichtigste Neuerung, nämlich Cobrowsing.

Cobrowsing (automatische Synchronisation eines Browserfensters von Besucher und Operator, um gemeinsam durch Webseiten zu surfen) gibt’s in yalst schon seit 2006. Änderungen in den Javascript-Funktionalitäten der Browser machten jedoch eine komplette Neuentwicklung dieser Funktion erforderlich, die nun in yalst 8.1 eingeflossen ist. Bei dieser Gelegenheit wurde der Funktionsumfang auch gleich wesentlich angehoben. So kann man sich nun mit seinen Besuchern durch das ganze Internet bewegen. Früher ging das nur auf Seiten, die einen speziellen Einbindungscode enthielten.

Die Cobrowsing-Sitzung wird vom Operator aus seinem Chat-Fenster heraus initiiert. Durch einen Klick auf das Cobrowsing-Icon erhält der Operator das Cobrowsing-Startfenster, in welchem er eine Start-URL eintragen oder auswählen kann. Eine Auswahlliste kann zuvor allgemein, abteilungs- oder operatorspezifisch festgelegt werden. Nach Auswahl der Start-URL öffnet sich das Cobrowsing-Fenster des Operators. Der Besucher erhält sein Cobrowsing-Fenster durch Anklicken eines entsprechenden Links, der automatisch in den Chatverlauf eingefügt wird.

Im Cobrowsing-Fenster wird im wesentlichen die gemeinsam besuchte Website dargestellt. Ganz oben auf der Seite befindet sich das Cobrowsing-Steuerungsfeld, das eingeklappt werden kann, um den darunterliegenden Text einsehen zu können.

Eine der beiden Parteien führt jeweils durch die Sitzung, d.h., alle Seitenwechsel, die von dieser Person gemacht werden, geschehen synchron auch auf der Gegenseite. Das gleiche gilt für Scrollbewegungen und Formulareingaben. Ein Seitenwechsel geschieht durch Anklicken eines Links oder durch Eingabe einer neuen Adresse in das Steuerungsfeld. Die geführte Person kann keine Seitenwechsel vornehmen. Das Umschalten der Führung ist nur durch den Operator möglich, er hat dazu eine zusätzliche Schaltfläche in seinem Steuerungsfeld. „Last but not least“ verfügt die Cobrowsing-Funktion noch über eine Zeigefunktion, mit der die jeweils führende Partei auf ein ganz bestimmtes Element der gerade geöffneten Seite deuten kann.

Die Einsatzmöglichkeiten von Cobrowsing sind sehr vielfältig und reichen von der Unterstützung bei Bestellprozessen bis zu Schulungen an webbasierten Software-Lösungen. Selbstverständlich können Sie parallel zur Cobrowsing-Sitzung den Chat weiterführen oder sich mit Ihrem Gesprächspartner durch den Audio-/Video-Chat verständigen. Ein ausführliches Tutorial zur Cobrowsing-Funktion finden Sie auf dieser Seite.

Hinweis: Cobrowsing ist ab der Business-Edition verfügbar.

Chat in eigene Software integrieren

Sie können Ihre Kunden mit yalst nicht nur über Ihre Webseite beraten, sondern auch über Ihre eigenen nativen Anwendungen. Hier werden kurz zwei Szenarien dargestellt.

Der einfachste Fall ist die Integration des yalst-Chatbuttons in die Anwendung des Kunden, wobei der Chat selbst wieder in einem Popup-Fenster des Standard-Webbrowsers ausgeführt wird.
Den Status des Chatbuttons bilden Sie am bequemsten mit einem HTTP-Aufruf des Skriptes online.php ab. Der Aufruf mit diesen Spezifikationen ergibt als Resultat 0 im Offline-Fall und 1 im Online-Fall. Nach diesem Flag sollten sich die grafische Darstellung des Chatbuttons richten. Klickt der Nutzer auf den von Ihnen nachgebildeten Button sollten Sie das jeweilige Shellkommando zum Öffnen einer URL ausführen. Die URL, die Sie übergeben, hat dieses Format:

<IHRE YALST-DOMAIN> Domain Ihres LiveSupport-Servers
<IHRE YALST-SITE> Site Ihres LiveSupport-Zugangs (z.B. 1-1)

Eine beispielhafte Windows-Anwendung mit Textlink könnte so aussehen:

Der zweite Variante ist der Einbau des Popup-Fensters des Webbrowsers in ein Webbrowser-Steuerelement Ihrer Anwendung. Der Chat verlässt Ihre Anwendung dann nicht. Würde der Nutzer zum Beispiel Ihre Anwendung beenden, würde sich ein offener Chat ebenfalls schliessen.

Die Windows-API stellt zu diesem Zweck das Active-X-Control IWebBrowser2 zur Verfügung. Dieser Container kann die gesamte Besucherseite des Chats inklusive Flash-Plugin für den Audio-Video-Chat, aufnehmen. Der Container kann nur über COM-Aufrufe benutzt werden:

Eine Demo-App, die im Wesentlichen nur aus der Webbrowser-Komponente besteht, sieht nach Aufruf des index.php?yinit=true URL so aus:

 

Chat-Button in HTML-Layer einbinden

Wenn Sie Ihren yalst-Einbindungscode/Chat-Button in einer HTML-Layer plazieren (also irgendwo zwischen den HTML-Tags <div> und </div>), kann es bei älteren Kauflösungen passieren, daß auf Ihrer Webseite ein weißes Rechteck zu sehen ist, welches je nach konkreter Position das Design stören kann. Ursache ist eine weitere Layer aus dem yalst-Einbindungscode, die wir z.B. für Chat-Einladungen, Mitteilungen oder Umfragen verwenden.

In solchen Fällen müssen Sie zwei Einbindungscodes pro Seite verwenden. Einer (Code 1) ist dann nur für die Ausgabe des Buttons zuständig, der andere (Code 2) übernimmt das Besucher-Monitoring, die Chat-Einladungen usw. Die beiden Codes unterscheiden sich durch Ihre jeweiligen Parameter.

Ersetzen Sie in den folgenden Beispielen bitte <Ihre yalst-Site> durch die Nummer Ihrer Site (wird u.a. in der Operator-Konsole oben angezeigt), z.B. 27000-1. Bei Kauflösungen müssen Sie rd.livesupportserver.de durch die Domain Ihrer yalst-Installation ersetzen.

Code 1:

  • zur Anzeige des Chat-Buttons
  • kommt in die Layer, in der der Button erscheinen soll

<script language="JavaScript" src="http://rd.livesupportserver.de/yalst/yalst.js.php?site=<Ihre yalst-Site>&amp;count=no" type="text/javascript"></script>

Code 2:

  • für das Besucher-Monitoring
  • kommt unmittelbar vor </body> der jeweiligen Seite

<script language="JavaScript" src="http://rd.livesupportserver.de/yalst/yalst.js.php?site=<Ihre yalst-Site>&amp;button=no" type="text/javascript"></script>

Ab yalst-Version 7.5, Release 7.503 (vom 30.12.2009), sollten keine störenden Rechtecke mehr in einer Webseite zu sehen sein. Allerdings kann es durch eine ungünstige Layer-Schachtelung immer noch passieren, daß Chat-Einladungen, Mitteilungen, Umfragen oder Banner an einer ungeeigneten Position auf der Seite erscheinen.

Daher empfehlen wir bei der Plazierung von Chat-Buttons in einer HTML-Layer nach wie vor die zuvor beschriebene doppelte Einbindung.

Registrierte Benutzer per API via PHP hinzufügen

Registrierte Benutzer sind Besucher Ihrer Website, an die Sie spezielle Zugangsdaten (Benutzername und Kennwort) für den Live-Support vergeben haben. Sobald ein solcher Benutzer angelegt wurde, erscheint im Startfenster des Live-Supports die Schaltfläche [Chat für registrierte Benutzer], über die der jeweilige Besucher zu einem entsprechenden Anmeldefenster gelangt, in das diese Zugangsdaten eingegeben werden müssen. Support-Anfragen registrierter Besucher werden in der Operator-Konsole besonders gekennzeichnet. Somit wissen Sie genau, welche Person „am anderen Ende des Chats“ zugegen ist, was bei „normalen“ Anfragen ja nicht eindeutig bekannt ist. Registrierte Benutzer können mit einem Zeitguthaben versehen werden. Falls die eingestellte Zeit „abgechattet“ ist, kann dieser Benutzer keine neuen Chats mehr initiieren.

Registrierte Benutzer werden standardmäßig über den yalst-Kundenbereich über ein entsprechendes Formular hinzugefügt. Dieser Vorgang kann jedoch über die integrierte Programmierschnittstelle (API) automatisiert werden, so daß z.B. aus einem Besucher, der sich auf Ihrer Website anmeldet, automatisch ein registrierter yalst-Benutzer werden kann. Das PHP-Script, um einen Benutzer hinzuzufügen, könnte etwa so aussehen:

<IHRE YALST-DOMAIN> Domain Ihres LiveSupport-Servers
<IHRE YALST-SITE> Site Ihres LiveSupport-Zugangs (z.B. 1-1)
<IHR API-KENNWORT> Kennwort für API-Zugriffe (wird in Ihrem Kundenbereich festgelegt)

<?php
include("xmlrpc.inc.php");
$passwd = md5("<IHR API-KENNWORT"); // wird im yalst-Kundenbereich festgelegt
$site = ("IHRE YALST-SITE"); // z.B. "27000-1"
// Daten des neuen Benutzers
$benutzer = "test";
$kennwort = "Yalst5";
$beschreibung = "Testbenutzer, per API hinzugefügt";
// API-Funktion aufrufen
$result = XMLRPC_request('<IHRE YALST-DOMAIN>','/yalst/api.php','reguser.add ',array(XMLRPC_prepare($site),XMLRPC_prepare($passwd),XMLRPC_prepare($ benutzer),XMLRPC_prepare($kennwort),XMLRPC_prepare($beschreibung),XMLR PC_prepare("-1")));
?>

Die Include-Datei „xmlrpc.inc.php“ erhalten Sie unter
http://keithdevens.com/software/xmlrpc

LiveSupport-Status (online/offline) über PHP-Script ermitteln

Sie können direkt von Ihren Webapplikationen – z.B. PHP-Skripten – aus feststellen, ob Ihr Live-Support online oder offline ist. Dies kann z.B. sinnvoll sein, wenn Sie einzelne Inhalte Ihrer Seite danach ausrichten möchten, ob Online-Beratung zur Verfügung steht oder nicht.

Dazu stehen Ihnen zwei Möglichkeiten zur Verfügung, der Aufruf eines PHP-Skripts (online.php), welches den Online-Status als Zahl zurückgibt, oder die Nutzung einer API-Funktion.

Bitte ersetzen Sie in den folgenden Beispielen (für PHP, selbstverständlich lassen sich vergleichbare Abfragen auch in anderen Sprachen formulieren) diese Platzhalter durch Ihre entsprechenden Daten:

<IHRE YALST-DOMAIN> Domain Ihres LiveSupport-Servers
<IHRE YALST-SITE> Site Ihres LiveSupport-Zugangs (z.B. 1-1)
<IHR API-KENNWORT> Kennwort für API-Zugriffe (wird in Ihrem Kundenbereich festgelegt)

1. online.php

http://<IHRE YALST-DOMAIN>/yalst/online.php?site=<IHRE YALST-SITE>

Als Ergebnis wird eine einzige Ziffer zurückgegeben, die dann ausgewertet
werden kann:
1 – es wird zur Zeit kein Live-Support angeboten
2 – Live-Support wird angeboten
0 – es ist ein Fehler aufgetreten (z.B. unzulässiger Aufruf dieser Seite)

In PHP könnte man das so formulieren:
function yalst()
{ $fd=@fopen("http://<IHRE YALST-DOMAIN>/yalst/online.php?site=<IHRE YALST-SITE>","r");
if ($fd)
{
$buffer=trim(fgets($fd,4096));
@fclose($fd);
if ($buffer==2)
{return true;}
else
{return false;}
}
else
{return false;}
}

Durch Aufruf der Funktion yalst() können Sie dann ermitteln, ob Ihr LiveSupport online ist.

2. yalst-API

Die eingebaute Programmierschnittstelle, welche in Ihrem yalst-Kundenbereich dokumentiert ist, bietet selbstverständlich auch eine Funktion, um an diese Information zu gelangen, und zwar

„system.isOnline“

In PHP könnte man das in etwa so formulieren:

include("xmlrpc.inc.php");
$passwd = md5("<IHR API-KENNWORT");
$result =
XMLRPC_request('<IHRE YALST-DOMAIN','/yalst/api.php','system.isOnline',ar ray(XMLRPC_prepare("<IHRE YALST-SITE>"),XMLRPC_prepare($passwd)));
if ($result[1])
{echo "online<br>";}
else
{echo "offline<br>";}

Die Include-Datei „xmlrpc.inc.php“ erhalten Sie unter
http://keithdevens.com/software/xmlrpc

Kauflösung: Was tun bei Datenbankfehlern?

Einen Datenbankfehler zeigt yalst in der Regel durch folgende Fehlermeldung an:

„Zur Zeit kann keine Verbindung zu unserem Datenbank-Server hergestellt werden. Wir bitten um Verständnis. Bitte versuchen Sie es später noch einmal!“

Zusätzlich erhalten Sie eine Fehlernummer und den Namen des PHP-Skriptes, bei dem der Fehler aufgetreten ist. Diese Angaben helfen dem yalst-Produktsupport, die Datenbankanweisung zu identifizieren, die zu dem Fehler führt.

Die Original-Fehlermeldung Ihres MySQL-Servers finden Sie in der Textdatei /yalst/log/error.log (oder admin.log bei Fehlern im Kundenbereich). Sie gibt Aufschluß über die Ursache des Problems.

In vielen Fällen handelt es sich bei solchen Fehlern um beschädigte MySQL-Indexdateien (die beispielsweise bei einem Systemabsturz entstehen können). Diese können mit den gängigen MySQL-Werkzeugen wie z.B. phpMyAdmin oder direkt mit dem MySQL-Repair-Befehl (http://dev.mysql.com/doc/refman/5.1/de/repair-table.html) behoben werden.

Sie können uns Ihre Log-Dateien auch zusenden, indem Sie – in Absprache mit unserem Produktsupport – aus yalst-Setup (/yalst/setup) eine Diagnose-Mail versenden (eine entsprechende Schaltfläche finden Sie im Kopfbereich jeder Setup-Seite).

Kauflösung: Umbenennung des yalst-Verzeichnisses

Gelegentlich werden wir gefragt, ob man das yalst-Verzeichnis bei der Kauflösung auch umbenennen kann. Dieses ist nach der Installation möglich. Allerdings müssen Sie in der Datenbank, Tabelle „settings“, dann auch den Wert folgender Felder (Struktur und Daten) entsprechend anpassen:

  • dir
  • logo
  • button_online
  • button_offline

Ferner müssen alle Einstellungen, die Grafiken und Sounds aus der mitgelieferten Bibliothek (/yalst/lib) verwenden, auf den neuen Pfad angepaßt werden.

Wichtig:
Der Setup-Bereich ist darauf angewiesen, daß sein Pfad „/yalst/setup“ lautet. Während der Installation und für Updates muß der Verzeichnisname daher kurzzeitig „yalst“ lauten.

In der kostenlosen Free-Edition ist die hier beschriebene Umbenennung nicht möglich.

Kauflösung: SSL-Unterstützung nachträglich installieren

Grundvoraussetzung:
Die Domain, auf der Sie yalst installiert haben, muß auch per „https“ erreichbar sein. Beispiel: wenn es die URL http://www.example.com/yalst gibt, muß auch https://www.example.com/yalst eingerichtet sein. Wir empfehlen auf jeden Fall ein gültiges SSL-Zertifikat zu verwenden, damit es nicht auf jeder Seite, wo Sie yalst einbinden, zu Sicherheitswarnmeldungen der Browser kommt.

Am einfachsten wird Ihre Kauflösung direkt bei der Installation für den SSL-Betrieb konfiguriert, indem Sie in Schritt 2 die Optionen „Kunden-/Konfigurationsbereich soll SSL-verschlüsselt laufen“ und/oder „Chat-Einbindung in SSL-verschlüsselte Seiten/SSL-verschlüsselte Chats“ anwählen. Das Setup-Skript richtet dann alles entsprechend ein.

Aber auch ein nachträgliches Einrichten ist möglich. Dazu muß die Konfigurationsdatei yalst/data/yalst.ini im Abschnitt [Domain] editiert werden (vgl. hierzu auch Abschnitt 6 der Installationsanleitung):

[Domain]
domain = "www.example.com"
ssl = true
ssl2 = true

(ssl steht für die Kundenbereichsverschlüsselung und ssl2 für die Einbindung in https-Seiten und für verschlüsselte Chats)

Sonderfall SSL-Proxy:

Seit yalst 4.0 benötigen Sie nicht mehr unbedingt eine eigene „https-Domain“, sondern können auch einen sogenannten SSL-Proxy verwenden, der von einigen Providern zur Verfügung gestellt wird. In diesem Fall müssen Sie die Adresse Ihres SSL-Proxys in der oben genannten yalst.ini-Datei zusätzlich im Abschnitt [Domain] eintragen. Beispiel:

[Domain]
domain = "www.example.com"
ssl = true
ssl2 = true
sslproxy = "https://ssl.example.com/example"

Bitte beachten Sie, daß die SSL-Unterstützung in der Free-Edition nicht zur Verfügung steht.

Kauflösung: Rechtschreibkontrolle nachträglich installieren

Unsere Software kann mit Hilfe des externen Programms „aspell“ (Bestandteil vieler Linux-Distributionen) die Chat-Beiträge der Online-Berater (Operatoren) auf Schreibfehler prüfen. Dazu wird normalerweise schon während der Installation der Pfad zu „aspell“ angegegeben oder automatisch erkannt (z.B. /usr/bin). Wurde hier nichts eingetragen, ist diese Funktion deaktiviert.

Um die Rechtschreibkontrolle nachträglich – nach erfolgter aspell-Installation – einzurichten, sind folgende Schritte notwendig:

1. Konfigurationsdatei yalst-data/yalst.ini
hier muß der Pfad zu „aspell“ eingetragen werden, z.B. (vgl. hierzu auch Abschnitt 6 der Installationsanleitung):
; externe Programme
[External]
aspell = "/usr/bin"

2. Datenbank
das Feld „preview“ der Tabelle „settings“ muß bei allen Zugängen auf „true“, und auch der Standardwert muß „true“ gesetzt werden
(z.B. mit phpMyAdmin)

Damit aspell genutzt werden kann, muß der Aufruf externer Programme seitens der PHP-Konfiguration erlaubt sein. Typische „Fallstricke“ sind hier:

  • Zugriffsrechte auf Dateisystem-Ebene
  • open_basedir-Beschränungen in der PHP-Konfiguration
  • das Abschalten der PHP-Funktionen für externe Programme
  • die Nutzung des PHP-Safemodes

Ggf. kann es hilfreich sein, das aspell-Binary in das DocumentRoot der yalst-Installation zu kopieren und diesen Pfad dann in yalst.ini anzugeben, häufig ist die Ausführung hier erlaubt.

Für die oben beschriebene Datenbank-Aktualisierung liefern wir in den yalst-Download-Archiven eine Update-Datei mit (aspell.yuf), die über yalst-Setup eingespielt werden kann und die erforderlichen Änderungen veranlaßt.

JavaScript-Variablen, die vom yalst-Einbindungscode ausgewertet werden

Der yalst-Einbindungscode für Ihre Webseiten wird durch Parameter, die Sie mit Hilfe unseres HTML-Codegenerators im yalst-Kundenbereich erzeugen, an Ihre speziellen Bedürfnisse angepaßt. Es gibt aber auch eine Reihe von JavaScript-Variablen, die vom Einbindungscode ausgewertet werden. Diese müssen vor dem yalst-Code definiert werden, damit dieser sie auslesen kann. Somit können Sie die yalst-Einbindung noch flexibler und dynamischer gestalten. Hier eine Liste der zur Zeit (Stand: yalst 8.1) implementierten Variablen (jeweils mit Beschreibung und Beispiel):

y_extra
Zusatzinformation (wird mit in den Klickpfad aufgenommen und erscheint auch im Besucher-Monitor)
y_extra=’aktueller Warenkorb-Wert: 50 EUR‘;

y_pagetitle
Seitentitel (wird statt URL der Seite in den Statistiken ausgewiesen)
var y_pagetitle=’Impressum‘;

y_remark
Bemerkung (wird im Besucher-Profil gespeichert und erscheint auch im Besucher-Monitor)
var y_remark=’Kunde-Nr. 12345678′;

ytrack (Array)
Tracking-Daten zu diesem Besucher (werden im Besucher-Profil gespeichert)
ytrack = new Array();
ytrack[„Warenkorbwert“]=“45.60″;
ytrack[„Kundennummer“]=“12345678″;

y_comment
Kommentar zur Chatanfrage, wenn sie über diese Einbindung ausgelöst wird; kann z.B. eine dynamisch übergebene Kundennummer sein (wird bei der Anfrage-Alarmierung, im Chat-Fenster des Operators und in der Chat-Historie angezeigt)
var y_comment=’Martin Mustermann, Kunde 43432′;

y_cartitems
Zahl der Artikel im Warenkorb; bitte immer zusammen mit y_cartvalue (s.u.) setzen
var y_cartitems=5;

y_cartvalue
Warenkorb-Wert in der (im Kundenbereich) eingestellten Währung; bitte immer zusammen mit y_cartitems (s.o.) setzen
var y_cartvalue=7.25;

y_cartcomplete
Information, ob die Bestellung abgeschlossen ist; bitte am Ende des Bestellvorgangs auf „true“ setzen; kann dann auch ohne y_cartitems und y_cartvalue (s.o.) verwendet werden
var y_cartcomplete=true;