Zusammenfassung:
Der Niederländische SwyxWare Distributor
intratel
hat zum Valentinestag am 14.02.2003 eine besondere Telefon- bzw. Gruß-EMail Aktion veranstaltet.
Nachdem sich ein Teilnehmer über eine Webseite kostenlos angemeldet und dort eine PIN erhalten hat, konnte er über eine gebührenpflichtige Rufnummer einen Valentinsgruß aufzeichnen. Dieser wurde dann per EMail als WAV Datei Attachment am Valentinstag an die zuvor auf den Webseiten angegebene EMail Adresse verschickt.
Dieser Artikel beschreibt das GSE Skipt zum Aufzeichnen des Grußes welches übrigens in weniger als einer Stunde entwickelt wurde. Es ist damit ein ausgezeichnetes Beispiel dafür, wie effektiv and kreativ man die SwyxWare einsetzen kann.
Information:
Zunächst wird der Rufablauf erklärt
- Der Ruf gelangt zur SwyxWare
- Eine Begrüßung wird abgespielt
- Die PIN wird über DTMF Eingabe aufgezeichnet
- Die PIN wird gegen eine Datenbank überprüft:
- ungültige PIN: Neueingabe der PIN
- gültige PIN: es geht weiter
- Eine Ansage erklärt den Ablauf zur Aufzeichnung des Valentins Grusses
- Der Gruss wird aufgezeichnet
- Ein IVR Menu folgt, in welchem der Anrufer folgende Möglichkeiten hat:
- 1 Vorspielen des aufgezeichneten Grusses
- 2 Neuaufzeichnung des Grusses
- 3 Gruss speichern und Skript beenden
Valentines Skript im GSE
Installation des Skripts
- Entpacken Sie das ZIP-Archiv inkl. Unterverzeichnisse
- Kopieren Sie alle Dateien aus dem Verzeichnis Voicemail in das Voicemail Verzeichnis des Benutzers, der dieses Sktipt erhalten soll, z.B.
C:\Dokumente und Einstellungen\All Users\ Anwedungsdaten\Swyx\Share\User\Valentines\ PhoneClient\Voicemail - Öffnen Sie den Call Routing Manager des Benutzers und erzeugen Sie eine neue GSE Regel
- Im GSE importieren Sie über das Menü Datei | Importieren... die Datei valentines.rse und speichern Sie es als aktive Regel ab.
- Legen Sie nun bitte noch ein Verzeichnis
D:\Valentines
an, in welches die aufgezeichneten Nachrichten gespeichert werden. Sollten Sie ein anderers Verzeichnis verwenden wollen, so müssen Sie die zweite Anweisung im VBScript Code entsprechend ändern:' Folder to store all messages in (with tailing "\")Const SAVE_DIR = "d:\valentines\"
Installation der Datenbank
- Kopieren Sie die MS Access™ Datenbank Datei valentines.mdb in ein Verzeichnis Ihrer Wahl.
-
Erzeugen Sie eine sogenannte ODBC Datenquelle für diese Datenbank. Öffnen Sie hierzu über Start | Programme | Verwaltung die ODBC Datenquellen-Administrator. Sollten Sie das Menu Verwaltung nicht sehen, müssen Sie es über die Eigenschaften der Taskleiste zunächst sichtbar schalten.
ODBC Datenquellen-Administrator
Erzeugen Sie eine neue System-DSN:
System-DSN hinzufügen
auf Grundlage eines Microsoft Access Treibers:
Microsoft Access Treiber
Dieser Datenquelle geben Sie den Namen valentines und verbinden sie mit der Access Datenbank auf Ihrer Festplatte. Über den Namen der Datenquelle erfolgt später im Skript der Zugriff auf die Datenbank.
Datenquelle konfigurierenFunktion des Skripts
Neben den Standard GSE Blöcken beinhaltet dieses Skript 3 zusätzliche Funktionen, die als eigener VBScript Code hinzugefügt wurden.
Eigener VBScript CodeDiese 3 Funktionen ergeben sich aus den Anforderungen an die Anwendung:
- Überprüfung der eigegebenen PIN gegen eine Datenbank
- Abspielen der zuletzt aufgezeichneten Nachricht
- Speichern der Nachricht mit einem bestimmten Dateinamen in einem bestimmten Verzeichnis (plus Datenbank Update)
Die Funktion "ValidPin()"
Diese Funktion wird über den Variable Auswerten Block Valid PIN ? aufgerufen:
Aufruf der PIN ÜberprüfungDie Funktion erhält als Parameter die PIN die zuvor in dem Enter PIN Block eingegeben wurde. Der sogenannte Connecstring für den Datenbank Zugriff DB_DSN ist in der ersten Anweisung des VBScript Codes definiert
' Data Source NameConst DB_DSN = "valentines"
und kann dort auch entsprechend an andere Datenbanken angepasst werden.Function ValidPin ( sPin ) Dim bReturn bReturn = false ' open connection to database Dim db Set db = CreateObject("ADODB.Connection") db.Open DB_DSN ' open recordset Dim sSQL Dim rs sSQL = "select * from users where pin = '" _ & sPin & "'" Set rs = CreateObject("ADODB.Recordset") rs.Open sSQL, db, adOpenDynamic, _ adLockOptimistic, adCmdText bReturn = not rs.EOF rs.Close Set rs = Nothing db.Close Set db = Nothing ValidPin = bReturn End FunctionDie Funktion liest alle Datensätze aus der Tabelle users die im Feld pin die eigegebene PIN haben. An dem EOF Flag des Ergebnisse wird erkannt, ob es entsprechende Einträge gibt. Das Flag ist True wenn keine Ergebnisse geliefert wurden, es also keinen entsprechenden Eintrag in der Tabelle gibt. Da die Funktion ValidPin() aber in diesem Fall False zurück liefern soll, wird das Flag einfach negiert.
Die Funktion "PlayLastMessage ()"
Diese Funktion wird innerhalb des Variable setzen Blocks Play Message aufgerufen. Bitte beachten Sie, dass wir diesen Block nur benutzen, um die Funktion aufzurufen. An dem Ergebnis, welches in diesem Fall in eine Dummy Variable gespeichert wird, sind wir nicht interessiert.
Der GSE liefert z.Zt. leider keine direkte Möglichkeit mit der die zuletzt aufgezeichnete Nachricht abgespielt werden kann. Es gibt aber sehr wohl eine entsprechende Möglichkeit mittels eigenen VBScript Codes:
Function PlayLastMessage () Dim retVal Dim sFileName ' get name of last recorded file sFileName = PBXCall.LastRecordedMessage ' play last recorded file retVal = PBXCall.PlayMessage(sFileName) PlayLastMessage = True End FunctionDie Funktion "SaveMessage()"
Diese Funktion hat zwei Aufgaben:
- Die aufgezeichnete Nachricht in das definierte SAVE_DIR Verzeichnis unter einem Namen PIN.WAV zu kopieren, wobei PIN durch die aktuelle PIN des Benutzers ersetzt wird.
- Die komplette Pfadinformation dieser Datei in der Datenbank entsprechend zu diesem Benutzer zu speichern.
Auch diese Funktion wird über einen Variable setzen Block Save Message aufgerufen, und auch hier sind wir an dem Ergebnis nicht weiter interessiert.
Aufruf der "SaveMessage()" FunktionFunction SaveMessage( sPin ) Dim sFileName, sNewFileName ' get name of last recorded file sFileName = PBXCall.LastRecordedMessage ' cal new file name sNewFileName = SAVE_DIR & sPin & ".wav" ' create FileSystemObject Dim fso Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile sFileName, sNewFileName Set fso = Nothing ' open connection to database Dim db Set db = CreateObject("ADODB.Connection") db.Open DB_DSN ' update record Dim sSQL sSQL = "update users set message = '" & _ sNewFileName & "' where pin = '" & _ sPin & "'" db.Execute(sSQL) db.Close Set db = Nothing SaveMessage = True End FunctionBitte beachten Sie noch, dass die Ansagen in der Download-Datei nicht den endgültigen Ansagen während der Valentines Aktion entsprechen, sondern lediglich Testansagen darstellen.
Weitere Informationen zu der Valentins Aktion
Natürlich bestand die gesamte Aktion nicht nur aus dem gezeigten GSE Skript. Auf den folgenden Webseiten war eine Anmledung zu der Aktion möglich:
Die Webseiten wurden erstellt von der Firma Web Power (www.webpower.nl) welche auch für den Versandt der Valentins EMail verantworlich war.
Referenzen:
- Valentins Tag 2003 - Call Routing Skript
kb2339_Valentines_Day_2003.zip
Informationen anderer Anbieter, die in diesem Artikel zur Verfügung gestellt werden, sollen bei der Suche nach technischen Informationen helfen. Die Inhalte können ohne weitere Ankündigung geändert werden. Swyx garantiert nicht für die Güte von Inhalten anderer Anbieter, noch ist Swyx für diese verantwortlich.
Kommentare
0 Kommentare
Zu diesem Beitrag können keine Kommentare hinterlassen werden.