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;

yalst-Chatanfragefenster des Besuchers aus Flash starten

Wenn yalst auf Flash-Websites eingesetzt wird, soll meist auch der Chat-Button als Flashanimation dargestellt werden. Dazu ist eine doppelte Einbindung erforderlich, denn neben des Starten des Chats hat der Button weitere wichtige Funktionen, wie die Aufnahme der Statistikdaten oder des aktiven “Anchattens” durch den Operator. All diese Funktionen erfüllen Javascript-Dateien, die im Flashfilm nicht nachgebildet werden können.

Das im Film vorhandene Symbol (Schaltfläche) braucht zum Starten des Chats eine Aktion in ActionScript z.B. in der Form:

on (release) {

getURL("javascript:open_livechat('http://<IHRE YALST-DOMAIN>/yalst/index .php?site=<IHRE YALST-SITE>',550,540)", "_self");
}

Die Platzhalter <IHRE YALST-DOMAIN> (bei Mietlösungen: rd.livesupportserver.de) und <IHRE YALST-SITE> müssen Sie entsprechend anpassen.

Diese Aktion ist nur ein einfacher Aufruf der entsprechenden URL in einem PopUp-Fenster durch eine Javascript-Funktion. Diese muss in der HTML-Seite, in die das Flash eingebunden ist, integriert werden, also:

<script language="JavaScript">
<!--
function open_livechat(url,width,height)
{
if (!width) width=550;
if (!height) height=540;
Fpopupwindow=open(url, "yalst24000-1", width="+width+",height="+height+", location=no, menubar=no, statusbar=yes, scrollbars=yes, dependent=no, screenX=0, screenY=0, left=0, top=0");
Fpopupwindow.focus();
}
//-->
</script>

Damit kann der Besucher den Chat nun auch aus einer Flash-Website oder einem Flash-Header starten.

Allerdings braucht man für die oben erwähnten Funktionalitäten noch eine zweite “normale” Einbindung, die entweder ein zweiter Button im Nicht-Flash-Teil der Website oder eine unsichtbare Einbindung sein kann.

1. Zweiter Button (Einbindung in allen Seiten in den Nicht-Flash-Teil):

<script language="JavaScript" src="http://<IHRE YALST-DOMAIN>/yalst/yalst.js.php?site=<IHRE YALST-SITE>"
type="text/javascript"></script>

2. Unsichtbare Einbindung ohne Button (Einbindung in allen Seiten, am besten möglichst weit unten auf der Seite plazieren im Nicht-Flash-Teil):

<script language="JavaScript" src="http://<IHRE YALST-DOMAIN>/yalst/yalst.js.php?site=<IHRE YALST-SITE>& button=no" type="text/javascript"></script>