HOWTO

Eigener VBScript Code - CeBIT 2003 Messeparties (kb2336)

Die Information in diesem Artikel betrifft die folgenden Produkte:

  • SwyxWare ab Version 4

[ Zusammenfassung | Information | Referenzen ]


Zusammenfassung

Swyx präsentiert zusammen mit www.messeparties.de alle Standparties auf der CeBIT 2003 in Hannover. Über die Rufnummer

  • 0700 CALLSWYX   (0700 22557999)

können alle Standparties telefonisch abgefragt werden. Hierzu dient ein Call Routing Script mit einer kleinen Erweiterung durch eigenen VBScript Code.

Dieser Artikel beschreibt die Funktionsweise des Skripts. Darüber hinaus steht das Skript auch zum Herunterladen zur Verfügung.


Information

Zunächst wird der Rufablauf erklärt

  • Anruf gelangt zur SwyxWare
  • Benachrichtigung per E-Mail wird verschickt
  • Ansage des Hauptmenus wird vorgespielt
    • 1 fuehrt zu den Messeparties
    • 2 zum Hinterlassen einer Voicemail

Fall 1)

  • Eine kurze Erläuterung der Navigation wird angesagt
    • 1 eine Party zurück
    • 3 eine Party weiter
    • 4 ein Tag zurück
    • 6 ein Tag weiter
    • 0 zurück zum Hauptmenü

Fall 2)

  • eine Voicemail wird aufgezeichnet
  • es geht zurück zum Hauptmenü


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:\Programme\SwyxWare\Share\User\ CallSwyx\PhoneClient\Voicemail
  • Kopieren Sie das Verzeichnis Ansagen an einen beliebigen Ort Ihrer Festplatte, z.B.
    D:\Ansagen
  • Öffnen Sie den Call Routing Manager des Benutzers und erzeugen Sie eine neue GSE Regel
    Call Routing Manager
    Call Routing Manager
    Zum Vergrern anklicken ...

  • Im GSE importieren Sie über das Menü Datei | Importieren... die Datei CeBit 2003 Standparties.rse
    Graphischer Skript Editor
    Graphischer Skript Editor
    Zum Vergrern anklicken ...

  • Öffnen Sie die Eigenschaften der Start Rule. Auf der zweiten Seite Parameter finden Sie den eigenen VBScript Code. Gleich die erste Anweisung:
    const base_directory = "d:\temp4\" muss angepasst werden. Hier geben Sie das Verzeichnis an, in das Sie die Ansagen (die Unterverzeichnisse 12 bis 18) kopiert haben - um beim Beispiel zu bleiben: const base_directory = "d:\Ansagen\" Beachten Sie den \ (backslash) der unbedingt am Ende gesetzt sein muss!
  • Speichern Sie nun bitte das Skript


Funktion des Skripts

Spannend ist der Teil des Skripts, in dem die Messeparties angesagt werden und die Navigation zwischen den einzelnen Parties realisiert ist.

Fuer jeden Tag, an dem Messeparties stattfinden, gibt es ein Verzeichnis mit dem Tag als Namen:

+- Ansagen
  +- 12
  +- 13
  ...

In diese Verzeichnisse werden die WAV-Dateien kopiert, die jeweils eine Party für diesen Tag ansagen. Damit sie in der richtigen Reihenfolge abgespielt werden, beginnen die Namen der Dateien jeweils mit der Startzeit einer Party:

18_00_party_1.wav
18_30_party_2.wav
...

Zu Beginn des Skripts wird die Funktion GetAllMessages() aufgerufen, die zunächst alle Dateinamen aller Verzeichnisse alphabetisch sortiert in ein Array einliest. Die folgende Navigation bewegt nur noch den/die Zeiger auf den gerade aktuellen Eintrag im Array. Hierzu werden die Variablen cur_day und cur_message verwendet.

Nach dem Abspielen des Party-Intros wird der Evaluate-Block Play Party Message aufgerufen, der seinerseits die Funktion PlayCurrentMessage() im Script aufruft.

Hier wird als erstes der Dateiname der aktuellen Party auf dem Array gelesen und mittels der Funktion gsePlaySound() vorgespielt. Diese Funktion kann zusätzlich noch während des Abspielens einer Ansage DTMF-Zeichen erkennen und diese in eine Variable zurückliefern. Zusätzlich kann noch eine Maske aller akzeptierten DTMF-Zeichen definiert werden.

Die Maske ist in diesem Fall 01346 und das erkannte DTMF-Zeichen wird in die Variable key_pressed geschrieben.

Anschliessend geschieht in Abhängigkeit des Rückgabewertes folgendes:

  • Ansage wurde komplett abgespielt, ohne dass sie durch DTMF unterbrochen wurde: Die Funktion IncMessage() wird aufgerufen um die aktuelle Nachricht eine Position weiter zu setzen.
  • Ansage wird durch ein DTMF-Zeichen unterbrochen:
    1: die Funktion DecMessage() wird aufgerufen, um die aktuelle Nachricht eine Position zurück zu setzen
    3: die Funktion IncMessage() wird aufgerufen, um die aktuelle Nachricht eine Position weiter zu setzen
    4: die Funktion DecDay() wird aufgerufen um den aktuellen Tag eine Position zurück zu setzen
    6: die Funktion IncDay() wird aufgerufen um den aktuellen Tag eine Position vor zu setzen


Die Funktion PlayCurrentMessage() liefert den ermittelten DTMF-Code zurück, danach geht es mit dem Block Play Nex Message ? weiter.

Ist der DTMF-Code 0 gewesen geht es zurück zum Hauptmenü, ansonsten wird die Funktion PlayCurrentMessage() erneut aufgerufen, um die neue, aktuelle Nachricht vorzuspielen.


Zu erwähnen sind noch die Funktionen:

  • DecMessage()
  • IncMessage()
  • DecDay()
  • IncDay()

die jeweils die aktuellen "Zeiger" cur_day und cur_message neu setzen. Ist man am Anfang oder Ende eines Tages angelangt, erfolgt automatisch der Sprung zum jeweiligen vorherigen oder nächsten Tag. Gleiches gilt für die Liste der Tage.

Bitte beachten Sie noch, dass die Partyansagen in der Download-Datei nicht den endgültigen Ansagen während der CeBIT 2003 entsprechen, sondern lediglich Testansagen darstellen. So werden Sie die Stimme des Autors dieses Artikels hören ;-)


Referenzen

Soweit die von uns gelieferte oder/und verwendete Software Open Source Elemente beinhaltet, gelten zusätzlich die unter https://www.swyx.de/open-source einsehbaren zusätzlichen Bedingungen. Welche Produkte aus dem Swyx Portfolio Open Source Elemente beinhalten und welche Open Source Lizenz einschlägig ist, ergibt sich aus der unter folgender URL einsehbaren Liste https://www.swyx.de/open-source.

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 weder für die Güte von Inhalten anderer Anbieter, noch ist Swyx für diese verantwortlich.


Kommentar

Hat Ihnen dieser Artikel weitergeholfen? Kommentieren Sie diesen Artikel



Sollten sich Fragen aus Ihrem Kommentar ergeben, wie können wir Sie erreichen?

E-Mail Adresse (optional)


Hinweis

Dieses Kommentar-Feld steht Ihnen nicht für Support-Anfragen zur Verfügung. Diese richten Sie bitte ausschliesslich an Ihren Swyx Händler bzw. Distributor.