Eigener VBScript Code - Valentins Grüße

Enreach Info
Enreach Info
  • Aktualisiert

Zusammenfassung:

Der Niederländische SwyxWare Distributor

disp_image_from_blob.jpg
                         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

disp_image_from_blob__1_.jpg
                                                                                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.

    disp_image_from_blob__2_.jpg
                                   ODBC Datenquellen-Administrator

    Erzeugen Sie eine neue System-DSN:

    disp_image_from_blob__3_.jpg
                                  System-DSN hinzufügen

    auf Grundlage eines Microsoft Access Treibers:

    disp_image_from_blob__4_.jpg
                                       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.

    disp_image_from_blob__5_.jpg
                                 Datenquelle konfigurieren

    Funktion des Skripts

    Neben den Standard GSE Blöcken beinhaltet dieses Skript 3 zusätzliche Funktionen, die als eigener VBScript Code hinzugefügt wurden.

    disp_image_from_blob__6_.jpg
                                         Eigener VBScript Code

    Diese 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:

    disp_image_from_blob__7_.jpg
                                      Aufruf der PIN Überprüfung       

    Die 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 Name
    Const 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 Function

    Die 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 Function

    Die 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.

    disp_image_from_blob__8_.jpg
                                    Aufruf der "SaveMessage()" Funktion 

    Function 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 Function

    Bitte 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:

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.

War dieser Beitrag hilfreich?

0 von 0 fanden dies hilfreich

Haben Sie Fragen? Anfrage einreichen

Kommentare

0 Kommentare

Zu diesem Beitrag können keine Kommentare hinterlassen werden.