Dieses Dokument enthält Informationen zum Cisco Unity Express (CUE)-System. Dieses Dokument bietet eine Grundlage für die Erstellung einer benutzerdefinierten Anwendung für die automatische Anrufvermittlung im Produkt.
Weitere Informationen zu Cisco Unity Express finden Sie im Leitfaden zum Cisco Unity Express Script Editor. Dieses Dokument richtet sich an Administratoren, die einen grundlegenden Leitfaden benötigen, um den Cisco Unity Express Editor zu verwenden und Skripts für das Cisco Unity Express-Produkt zu verwalten.
Hinweis: Der technische Support von Cisco bietet keine Unterstützung für benutzerdefinierte Skripts. Senden Sie bei Fragen, Kommentaren und Hilfe zu einem benutzerdefinierten Skript eine E-Mail an ask-cue-editor@external.cisco.com.
Der Leser muss mit der Administration und Konfiguration von Cisco Unity Express über die Kommandozeile (CLI) oder die GUI vertraut sein.
Der Cisco Unity Express-Skript-Editor (CUEditor2.1.1.exe) und das in diesem Dokument verwendete Beispielskript (CUE-AA-S6-AASample.zip) sind im Cisco Unity Express 2.1.1 Software Download Center verfügbar.
Die Informationen in diesem Dokument basieren auf Cisco Unity Express Version 2.1.1. Das Beispiel enthält Schritte, die nur in Cisco Unity Express 2.1.1 verfügbar sind. Obwohl viele der Prinzipien für frühere Versionen gleich sind. Schritte, die spezifisch für 2.1.1 sind, werden in diesem Dokument explizit erläutert.
Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.
Weitere Informationen zu Dokumentkonventionen finden Sie in den Cisco Technical Tips Conventions.
Das grundlegende Cisco Unity Express-Produkt wird mit einer Voicemail und einer einfachen automatischen Anrufvermittlung ausgeliefert (in Cisco Unity Express 2.1.1 und höher gibt es zwei Scripts für die automatische Anrufvermittlung). Für viele Kunden ist die standardmäßige automatische Anrufvermittlung zu eingeschränkt. Cisco Unity Express verfügt über einen Skripteditor, mit dem benutzerdefinierte Skripte erstellt werden können. Diese benutzerdefinierten Skripts können in Cisco Unity Express geladen werden und die automatische Anrufvermittlung ersetzen (oder ergänzen).
Warnung: Das hier gezeigte Beispielskript dient Illustrationszwecken. Sie kann auf jede Art und Weise verändert werden. Dieses Dokument soll den Design- und Implementierungsprozess eines angepassten Skripts veranschaulichen. Es ist nicht beabsichtigt, ein fertiges Produktionsskript bereitzustellen. Wenn Sie jedoch dieses Skript verwenden möchten, notieren Sie mindestens alle Aufforderungen. Sie können die angeschlossenen Audiodateien abhören, um zu hören, wie sie klingen. Verwenden Sie jedoch die Administration über das Telefon (AVT)/Greetings Management System.
Hinweis: Derzeit ist es nicht möglich, eine Kopie der von Cisco Unity Express verwendeten Systemskripts zu erhalten. Diese Skripts enthalten Schritte, die der reguläre Skripteditor nicht unterstützt. Die Systemskripts für Cisco Unity Express 2.1.1 sind aa.aef, voicebrobrowser.aef, setmwi.aef, promptmgmt.aef, checkaltgreet.aef, xfermailbox.aef und aasimple.aef.
Der Skripteditor ist ein Tool, mit dem Sie Skripts auf einem von Cisco Unity Express getrennten PC erstellen können. Nach der Erstellung werden die Skripts hochgeladen und auf Cisco Unity Express konfiguriert.
In dieser Liste werden einige grundlegende Terminologie erläutert, um Ihnen das Verständnis der in diesem Dokument enthaltenen Konzepte zu erleichtern.
Step - Der grundlegende Baustein für die Skripterstellung. Jeder Schritt ist die einfachste ausführbare Einheit, z. B. eine "if"-Anweisung, ein "Goto" usw.
Skript - Ein oder mehrere Schritte, die nacheinander ausgeführt werden. Ein Skript ist eine Datei mit der Erweiterung .aef.
Variable - Dies sind Variablen in einem Skript. Variablen können verschiedene Typen aufweisen, z. B. Integer, Boolean, String usw.
Parameter - Dies ist eine Eigenschaft einer Variablen, sodass die Variable dem Administrator über die Cisco Unity Express-Webschnittstelle verfügbar gemacht wird. Wenn Sie z. B. eine OperatorExtension-Variable haben, die Sie den Wert 1000 standardmäßig zuweisen möchten, muss sie manchmal in 2000 geändert werden. In diesem Fall wird die Variable über die Webschnittstelle verfügbar gemacht, sodass das gesamte Skript nicht jedes Mal erneut in Cisco Unity Express geladen werden muss, wenn der Wert geändert werden muss.
Prompt - Eine WAV-Datei, die abgespielt werden kann. Sie wird entweder manuell in das Cisco Unity Express-System hochgeladen oder über die Administration über das Telefon (AVT)-System aufgezeichnet (vor Version 2.1.1 wurde die AVT als Greetings Management System (GMS) bezeichnet). Alle Benutzeraufforderungen, die hochgeladen werden, werden im gleichen Verzeichnis gespeichert. Sie sind in der GUI über das Menüelement Voicemail > Prompts (Voicemail > Aufforderungen) oder in der CLI über den Befehl show ccn prompts (Ansagen anzeigen) sichtbar.
In einem Skript werden Benutzeraufforderungen als P[<promptname>] angegeben. Systemaufforderungen werden vorab aufgezeichnet und können verwendet werden. Sie werden als SP[<promptname>] angegeben. In Anhang 1 sind die verfügbaren Systemaufforderungen aufgeführt.
Application (Anwendung): Dieses Skript enthält alle Eingabeaufforderungen und Parameter. Cisco Unity Express wird standardmäßig mit der Voicemail, dem AVT-System und einer einfachen automatischen Anrufvermittlung ausgeliefert, die alle konfiguriert sind, wenn Sie den Initialisierungsassistenten am Ende einer Installation ausführen.
Trigger: Der Trigger teilt Cisco Unity Express mit, dass eine bestimmte Anwendung ausgeführt werden muss. Wenn Sie beispielsweise die 1000 wählen, leitet das Telefonsystem (Cisco CallManager oder Cisco CallManager Express) den Anruf an Cisco Unity Express weiter. Wenn Cisco Unity Express erkennt, dass ein Anruf an die Nummer 1000 getätigt wird, sucht es nach einem Trigger für diese Durchwahl. Die entsprechende Anwendung wird dann gestartet. Mit anderen Worten, sie weiß, ob ein Anruf an die 1000-Anrufvermittlung an die Voicemail, eine automatische Anrufvermittlung oder an eine andere Stelle weitergeleitet werden muss. Sie können mehrere Trigger für dieselbe Anwendung haben. Es gibt eine Reihe von standardmäßig hinzugefügten Triggern, z. B. Trigger für die Voicemail, AVT und die automatische Anrufvermittlung in einem Dose.
Wenn Sie die Terminologie verstehen, wird das Web-Verwaltungstool von Cisco Unity Express einfacher verständlich.
Auf der Cisco Unity Express-Webseite bezieht sich die Option Automatische Anrufvermittlung unter der Kategorie Voicemail auf die in der Terminologie definierten Anwendungen. Jeder Eintrag enthält die der Anwendung zugeordnete Nummer, das Skript, auf das er verweist, alle dem Skript zugeordneten Parameter, ob die Anwendung aktiviert ist oder nicht, und die Anzahl der zugeordneten Ports.
Die Anrufbearbeitung enthält derzeit nur die zugehörigen Nummern für Voicemail, die integrierte automatische Anrufvermittlung und das AVT-System. In Cisco Unity Express 2.1 und höher unter Administration > Call in Numbers (Administration > Einwahlnummern) werden alle Trigger zusätzlich angezeigt, sowohl JTAPI (für Cisco CallManager) als auch SIP (für Cisco CallManager Express oder SRST-Modus). Derzeit können Sie nur mit dem Befehl show ccn trigger in der CLI sehen, ob mehrere Trigger konfiguriert wurden, die auf dieselbe Anwendung zeigen.
Die Eingabeaufforderung bezieht sich auf die Audiodateien (.wav), die auf dem System vorhanden sind.
Die Auswahl Scripts bezieht sich auf die .aef-Dateien, die Sie auf dem System speichern können. Derzeit können zusätzlich zu den Systemskripts bis zu vier Skripte hochgeladen werden.
Über die CLI sind diese Informationen mithilfe der Befehle show ccn verfügbar. Diese Ausgabe stellt Teile jeder Befehlsausgabe dar:
cue-3745-44a> show ccn application Name: customaa Description: customaa Script: customaa.aef ID number: 4 Enabled: yes Maximum number of sessions: 8 OperatorExtension: 205 MainMenu: MainMenu.wav ClosedGreeting: ClosedGreeting.wav InvalidExt: InvalidExt.wav MaxRetries: 3 MaxExtension: 205 SorryGoodbye: SorryGoodbye.wav EnterExtension: EnterExtension.wav namePrompt: namePrompt.wav MinExtension: 200 ... cue-3745-44a> show ccn prompts Name: MainMenu.wav Language: de_DE Last Modified Date: Wed Dec 22 03:34:57 GMT+00:00 2004 Length in Bytes: 121978 Name: EnterExtension.wav Language: de_DE Last Modified Date: Wed Dec 22 03:34:26 GMT+00:00 2004 Length in Bytes: 21338 Name: SorryGoodbye.wav Language: de_DE Last Modified Date: Wed Dec 22 03:34:02 GMT+00:00 2004 Length in Bytes: 17658 Name: ClosedGreeting.wav Language: de_DE Last Modified Date: Wed Dec 22 03:33:00 GMT+00:00 2004 Length in Bytes: 86138 Name: InvalidExt.wav Language: de_DE Last Modified Date: Wed Dec 22 03:47:07 GMT+00:00 2004 Length in Bytes: 29818 Name: namePrompt.wav Language: de_DE Last Modified Date: Wed Dec 22 03:40:28 GMT+00:00 2004 Length in Bytes: 22618 ... cue-3745-44a> show ccn trigger Name: 18955 Type: SIP Application: customaa Locale: systemDefault Idle Timeout: 10000 Enabled: yes Maximum number of sessions: 8 ...
Die Ausgabe der show ccn-Anwendung zeigt den Anwendungsnamen, das Skript, auf das sie verweist, ob sie aktiviert ist und wie viele gleichzeitige Aufrufe sie verarbeiten kann, zusammen mit allen Skriptparametern mit ihren Werten.
Der Befehl show ccn prompts (CCN-Eingabeaufforderungen anzeigen) listet alle Befehle, deren Sprache, Größe und Datum auf.
Die Informationen zum show ccn-Trigger geben die Nummer ("Name"), die aufrufende Anwendung, den Status (aktiviert/deaktiviert) und die Anzahl der Sitzungen an.
Verwenden Sie den Skripteditor (nur registrierte Kunden), um ein neues Skript zu erstellen. Sie muss auf einem separaten PC installiert werden.
Am gleichen Ort befinden sich mehrere Beispielskripts. Diese Skripte helfen, zu erfahren, wie bestimmte Operationen in einem Skript ausgeführt werden. Cisco empfiehlt, den Editor zu installieren und einige Beispielskripts herunterzuladen, um sich mit der Funktionsweise des Editors vertraut zu machen.
Sobald der Skripteditor gestartet wird, können Sie ein Skript öffnen, wie in der folgenden Grafik gezeigt:
Der Palettenbereich enthält Ordner mit jedem Schritt, die nach ihrer Hauptfunktion kategorisiert sind. Ziehen Sie von dort Schritte in den Entwurfsbereich, um ein Skript zu erstellen. Im Bereich Variablen können Sie Variablen erstellen und bearbeiten. Nachdem Sie einen Schritt in den Entwurfsbereich gezogen haben, können Sie mit der rechten Maustaste auf einen Schritt klicken, Eigenschaften auswählen und den Schritt und die dem Schritt zugewiesenen Variablen anpassen. Bevor Sie ein Skript in Cisco Unity Express hochladen, müssen Sie es immer zuerst mithilfe der Option Tools > Validieren validieren. Eine beliebige Fehlerausgabe wird dann im Bereich Debuggen angezeigt.
Eine der nützlichsten Dinge, die Sie sich bei der Verwendung des Editors merken sollten, ist die Hilfefunktion. Sie können entweder direkt über das Menü Hilfe in der Symbolleiste darauf zugreifen oder eine bestimmte Schritt-Eigenschaft auswählen.
Sie können das Menü Hilfe verwenden, um sich mit einigen Schritten vertraut zu machen. Ziehen Sie im Skripteditor einige Schritte aus der Palette in den Entwurfsbereich, und klicken Sie mit der rechten Maustaste auf einen Schritt, und wählen Sie Eigenschaften aus. Klicken Sie dann auf die Schaltfläche Hilfe, um Hilfe zu diesem bestimmten Schritt zu erhalten.
In diesem Dokument wird die Erstellung eines Beispielskripts beschrieben. In diesem Dokument werden auch einige der häufigsten Probleme behandelt, die Benutzer bei der Erstellung einer benutzerdefinierten automatischen Anrufvermittlung zu beheben versuchen. Hier soll ein Skript erstellt werden, das einen Anruf beantwortet, um festzustellen, ob eine alternative Begrüßung im Notfall vorliegt und ob die aktuelle Uhrzeit die üblichen Geschäftszeiten ist. Wenn sie geschlossen ist, können Sie eine persönliche Begrüßung abspielen und den Anruf an den Operator senden. Wenn sie geöffnet ist, spielen Sie ein Menü ab, in dem der Anrufer eine Nummer für den Namen wählen kann, eine 2 für die Durchwahl oder eine 0 für einen Operator. Bei der Wahl der Durchwahl sollte der Anruf nur an einen bestimmten Bereich weitergeleitet werden, nicht an eine Nummer, die Sie eingeben können.
Warnung: Das Beispiel, das dieses Dokument verwendet, dient nur Illustrationszwecken. Sie können zwar beliebig viele Portionen verwenden, aber es passt wahrscheinlich nicht genau zur Situation Ihres Unternehmens. Insbesondere im Bereich der Fehlerbehandlung ist dieses Skript nicht sehr nützlich.
Hinweis: Neben den Beispielskripts unter www.cisco.com enthält die Cisco Unity Express-CD ein ähnliches Skript wie das hier verwendete, das als aa_sample1.aef bezeichnet wird. Sie ähnelt stark der normalen, ausgelieferten automatischen Anrufvermittlung (vor 2.1). Wenn Sie das gescannte Skript als Ausgangspunkt verwenden möchten, verwenden Sie dieses Skript anstelle der aa.aef-Datei, die bei der Installation einiger Versionen des Skripteditors gefunden wird.
Cisco Unity Express unterstützt derzeit die Integration in Cisco CallManager oder Cisco CallManager Express. Obwohl sich das Skript selbst nicht ändert, kann die Integrationsmethode zu geringfügigen Unterschieden führen. Wenn Sie einen Redirect-Schritt ausführen, bei dem der Anruf logisch von Cisco Unity Express an eine externe Durchwahl weitergeleitet wird, ist diese Integrationsmethode von entscheidender Bedeutung. Wenn die Signalisierung in Cisco CallManager Express integriert wird, was bei einer Cisco CallManager-Integration, die sich derzeit im SRST-Modus befindet, identisch ist, erfolgt sie über SIP in Form einer BYE/Auch-Nachricht. Das bedeutet, dass eine Umleitung den Anruf an Cisco Unity Express aufhängt und den Cisco CallManager Express/SRST-Router anweist, den Anrufer mit der Durchwahl zu verbinden, die im Abschnitt "Auch" der BYE-Nachricht angegeben ist. Wenn diese Durchwahl ungültig oder anderweitig nicht erreichbar ist, kann der Anrufer verworfen werden. Der Grund hierfür ist, dass Cisco Unity Express diesen Anruf nicht zurückfordern kann und nicht benachrichtigt werden kann, wenn die Weiterleitung fehlschlägt. Es ist ein echter Blind Transfer. Wenn der Anruf an eine nicht registrierte oder besetzte Leitung oder Durchwahl umgeleitet wird, die nicht antwortet, gelten die für diese Verzeichnisnummer geltenden Regeln für die reguläre Anrufweiterleitung. Cisco Unity Express ist nicht mehr Teil des Anrufs. Dies bedeutet auch, dass beim Skript für die Umleitung von Schritten derzeit kein großer Vorteil besteht, wenn Sie Code für die Bearbeitung von Besetzt/Ungültig/Fehlgeschlagen-Umleitungen hinzufügen, da die Umleitung selbst einer Trennung entspricht. Es ist kein Fehlerfall möglich.
Für Cisco CallManager-Integrationen kommuniziert Cisco Unity Express über JTAPI (Java Telefony Application Programming Interface). Auf diese Weise können aktive/ungültige/erfolglose Umleitungsschritte ausgeführt werden. Fügen Sie dem Skript daher Code hinzu, um diese Situationen zu behandeln. Wenn alle Cisco CallManager nicht erreichbar sind und das System in den SRST-Modus fällt, wird die zuvor in diesem Dokument beschriebene SIP-Signalisierung verwendet. Daher gelten alle in diesem Dokument beschriebenen Einschränkungen.
Bevor Sie mit einem Produktionsskript beginnen, müssen Sie den gesamten Anruffluss abbilden. In diesem Beispiel wird davon ausgegangen, dass alle Erweiterungen im Bereich 200-299 liegen (der wichtige Punkt ist, dass alle mit 2 beginnen). In diesem Beispiel haben Sie etwas wie dieses Verfahren:
Nehmen Sie den Anruf an.
Überprüfen Sie, ob eine andere Begrüßung vorliegt. Wenn ja, spielen Sie es.
Überprüfen Sie, ob es ein Urlaub ist. Wenn ja, spielen Sie eine Feiertagsgrüße und gehen Sie zum Hauptmenü.
Überprüfen Sie, ob es während oder außerhalb der Geschäftszeiten geschieht, und spielen Sie die entsprechende Begrüßung (offen/geschlossen). Wechseln Sie zum Hauptmenü.
Das Hauptmenü muss eine Eingabeaufforderung abspielen und es Benutzern ermöglichen, jederzeit eine Durchwahl einzugeben, wenn sie sie kennen. Sie können 1 eingeben, wenn sie einen Benutzer im Verzeichnis nachschlagen möchten, oder 0, wenn sie den Operator erreichen möchten. Da alle gültigen Benutzererweiterungen mit 2 beginnen, geben Sie zwei Zweigstellen in den Bereich für die einzelnen Durchwahlen ein.
Der Name der Person, die eine Wahl getroffen hat, sucht nach Benutzern und leitet sie weiter. Der Benutzer wird an den Operator weitergeleitet, wenn 0 eingegeben wird.
Die Option für die Durchwahl versucht sofort, zwei weitere Ziffern zu sammeln. Wenn weniger eingegeben wird, kehrt er zum Hauptmenü zurück. Wenn zwei Daten gesammelt werden, wird versucht, den Benutzer nachzuschlagen. Der Benutzer wird an diese Durchwahl weitergeleitet, wenn der Benutzer den Vorgang beendet. Andernfalls wechselt der Benutzer zum Hauptmenü.
Die Weiterleitung an die Operatorfunktion überträgt den Anruf. Wenn sie aus irgendeinem Grund fehlschlägt, kehrt sie zum Hauptmenü zurück.
Eine zusätzliche Fehlerbehandlungssequenz für verschiedene Probleme (z. B. mehrere fehlgeschlagene Übertragungen), die den Benutzer anweist, es später erneut zu versuchen und aufzulegen.
Bei der Fehlerbehandlung kann viel getan werden. Bei einer echten Implementierung ist es wahrscheinlich hilfreich, den vollständigen Anrufablauf (einschließlich Fehlerbehandlung und jede Benutzerinteraktion oder -auswahl) in einem Flussdiagramm abzubilden.
Geben Sie das Skript im Skripteditor ein.
Alle Skripte beginnen mit einem Start-Schritt. Zuerst müssen Sie den Anruf annehmen. Danach spielen Sie eine Eingabeaufforderung (DP[500]), die eine 0,5-Sekunden-Pause ist. In manchen Fällen erfolgt die Audio-Durchleitung zum öffentlichen Telefonnetz (PSTN) nicht schnell. Spielen Sie vor dem Gruß etwas und "echte" Begrüßung, um zu vermeiden, dass Sie die Begrüßung wahrnehmen. Als Nächstes wird der Schritt On Exception Goto ausgeführt. Dabei wird zum Zeitpunkt der Ausführung des Skripts nach einer Ausnahme vom Typ "UndefinedPromptException" gesucht. Diese Ausnahme tritt auf, wenn der Schritt versucht, eine nicht vorhandene Eingabeaufforderung wiederzugeben. Dies tritt nur auf, wenn für den Schritt, der die Eingabeaufforderung wiedergibt, die Eigenschaft "Continue On PromptErrors" auf No festgelegt ist. Wenn Sie auf Yes festgelegt sind, wird keine Eingabeaufforderung angezeigt, und es wird keine Ausnahme ausgelöst. Durch die Verwendung dieses Schritts für Ausnahmefehler wird sichergestellt, dass eine kritische vom Administrator verwaltete Eingabeaufforderung (z. B. das Hauptmenü) gelöscht wird. Sie können eine Verzweigung zu einem Bereich vornehmen, in dem Sie zur Bezeichnung "Sorry" verzweigen können, um den Benutzer zu einem späteren Zeitpunkt zu informieren. Rufen Sie danach einen Subflow auf, checkAltGreet.aef. Dies ist ein Systemskript, das immer vorhanden ist. Es überprüft, ob die Datei AltGreeting.wav vorhanden ist. Wenn es vorhanden ist, wird es wiedergegeben. Ist dies nicht der Fall, kehrt der Subflow zurück. Dies ist praktisch, da Sie es in Verbindung mit dem GMS (jetzt AVT-System genannt) verwenden können, um vor der normalen Nachricht eine Notrufgrüße zu spielen. Weitere Informationen zu dieser Funktion finden Sie unter Konfigurieren und Verwenden des Grußmanagementsystems und alternative Begrüßung für Unity Express in Notfallsituationen. Es gibt keine Möglichkeit festzustellen, ob die alternative Begrüßung tatsächlich wiedergegeben wird (oder ob eine Datei im lokalen Repository vorhanden ist). Sie müssen dies nicht zu Beginn eines Skripts verwenden. Je nach Anwendung können Sie beispielsweise alternative Begrüßungsfunktionen für Notfälle verwenden, um Urlaubsaufforderungen aufzuzeichnen. Anstatt diesen Subflow zu nennen, nennen Sie ihn nur, wenn es ein Feiertag ist. So können die Standortadministratoren Urlaubsgrüße über die Benutzeroberfläche für Telefonie aufzeichnen, ohne über einen Browser oder die Kommandozeile auf das System zugreifen zu müssen (um Aufforderungen umbenennen oder Skriptvariablen zuweisen zu können).
Legen Sie fest, welche Eingabeaufforderung abgespielt werden soll. Wenn es ein Urlaub ist, spielen Sie die Urlaubsgrüße. Wenn dies während der Geschäftszeiten geschieht (die im Cisco Unity Express-Webadministrator über Zeitpläne konfigurierbar sind), können Sie die Begrüßung abspielen (was so einfach sein kann wie "Danke für den Anruf bei Cisco Systems"), sonst die geschlossene Begrüßung abspielen. Unabhängig davon, welches Spiel Sie spielen, gehen Sie auch direkt zum Hauptmenü.
Hinweis: Die Schritte "Is Holiday" und "Business Hours" sind spezifisch für Version 2.1.1 und höher. Bei früheren Versionen von Cisco Unity Express besteht die einzige Option darin, den Schritt "Time of Day" (Tageszeit) zu verwenden. Sie können keine verschiedenen Begrüßungen je nach Tag oder Datum abspielen. Es basiert nur auf der Zeit.
Geben Sie den Abschnitt Main Menu (Hauptmenü) ein. Da ein Großteil der Fehlerbehandlung den Anrufer später wieder zum Hauptmenü zurücksendet, wird ein Zähler hinzugefügt. Der Zähler "attempts" wird mit "MaxRetries" verglichen, einer weiteren Variablen, die vom Benutzer konfiguriert werden kann (standardmäßig 3). Wenn dieser Zähler erreicht ist, entschuldigen Sie, und leiten Sie den Anrufer an den Operator weiter ("Leider haben Sie Probleme. Bitte warten Sie, um eine Telefonzentrale zu kontaktieren.")
Der Menüschritt gibt eine einfache Eingabeaufforderung wieder ("Wenn Sie die Durchwahl des Teilnehmers kennen, wählen Sie sie jederzeit. Drücken Sie bei "Rechtschreibung nach Namen" die 1, bei "Bediener" die 0, um diese Optionen zu wiederholen, die 9."). In diesem Fall ändern Sie, da Sie Ihre eigene aufgezeichnete Eingabeaufforderung wiedergeben, den Parameter Maximum Retries (Maximale Wiederholung) in diesem Schritt auf 0. Dies geschieht überall dort, wo Sie die Möglichkeit dazu haben. Wenn es sich um etwas Anderes als 0 handelt, hören Sie die Systemaufforderung "Sind Sie noch da?". jedes Mal, wenn der Ablauftimer erreicht wird und die Verzweigung zur Verzweigung Timeout erfolgt. Die Verzweigung "Nicht erfolgreich" wird erreicht, wenn jemand etwas Anderes als 1, 2, 9 oder 0 drückt. In diesem Fall wird die Eingabeaufforderung "Die eingegebene Durchwahl ist ungültig" abgespielt, der Schritt, in dem Sie den Zähler für Versuche erhöhen, wird beendet und das Hauptmenü aufgerufen.
Hinweis: Um sicherzustellen, dass die Audiowiedergabe beendet wird, sobald Sie in Medienschritten eine Ziffer eingeben (z. B. Menü oder Play Prompt), müssen Sie im Schritt auf der Registerkarte Prompt (Aufforderung) das Feld Aufschalten aktivieren. Das Feld "Interrupbar" (auf der Registerkarte "Allgemein") wird für andere Step-Unterbrechungen verwendet, die derzeit nicht für Cisco Unity Express gelten.
Ein einziger Abschnitt zur Fehlerbehandlung wird hinzugefügt. Im Bereich "Sorry" wird eine Nachricht abgespielt ("Wir können den Anruf zurzeit nicht weiterleiten. Versuchen Sie es später erneut. Auf Wiedersehen.") Der Anruf wird dann getrennt.
Anstelle dieser benutzerdefinierten Variablen können Sie immer eine Systembegrüßung verwenden. Systemaufforderungen haben immer die SP[]-Schreibweise, während Benutzeraufforderungen die P[]-Schreibweise verwenden. Sie können einer Eingabeaufforderungsvariablen keine Systemaufforderung zuweisen, wenn Sie sie definieren (im Variablenbereich, da diese per Definition Benutzerwerte sind). Nach der Definition können Sie im Skript einer Variablen eine Systemaufforderung über den Schritt Festlegen (oder einen der Schritte zur Aufforderung erstellen) zuweisen.
Eine Möglichkeit zum Wählen nach Name besteht darin, das Beispiel (S4_DialByName) von Cisco.com herunterzuladen, es als separates Skript in Cisco Unity Express zu laden und anschließend einen Call Subflow-Schritt zum Aufrufen hinzuzufügen. In diesem Fall wird der Schritt direkt in das Skript eingefügt und ausführlich behandelt. Im "NameToUser Step" können Sie nur eine der Aufforderungen konfigurieren ("Spell den Nachnamen der Person, die Sie anrufen möchten, gefolgt vom Vornamen für den Buchstaben Q drücken Sie 7, und für den Buchstaben Z drücken Sie 9"). Es ist nicht möglich, alle Systemaufforderungen zu entfernen. Um sie zu minimieren, müssen Sie zunächst die Taste Cancel (Abbrechen) deaktivieren (Standardeinstellung *). Wenn sie vorhanden ist, fügt das System die Meldung "to start over, press star" (Neustarten, Sternchen drücken) am Ende der aufgezeichneten Eingabeaufforderung hinzu. Ändern Sie anschließend Maximum Retries (Maximale Wiederholungen) auf Null, sodass die Meldungen "bitte erneut versuchen" und "sind Sie noch da" nicht auftreten können. Notieren Sie immer die Anzahl der Versuche mit einer separaten Zählervariable, die Sie hinzufügen. Es gibt immer noch eine Systemaufforderung, die nicht entfernt werden kann. Es ist die Eingabeaufforderung für mehrere Übereinstimmungen ("Es wurden mehrere Namen gefunden. Wählen Sie Folgendes aus..."). Der Schritt Name an Benutzer endet immer als Successful, Timeout, Unsuccessful oder der Operator (sofern in den Step-Eigenschaften ausgewählt). Mit Ausnahme der Verzweigung Erfolgreich und Operator werden Sie aus dem Menü-Schritt gelöscht. Dies bedeutet, dass Sie den Zähler für Versuche erhöhen und zum Hauptmenü zurückkehren. Je nach Situation können Sie über einen separaten Wiederholungszähler verfügen und einen Schritt hinzufügen, um zur DialByName-Bezeichnung zurückzukehren, sodass die bereits ausgewählte Aktion wiederholt wird.
Hinweis: Ein Fehler in Version 2.1.1, der beachtet werden musste, ist die Cisco Bug ID CSCeg81385 (nur registrierte Kunden). Wenn Maximum Retries für den NameToUser-Schritt auf 0 oder 1 festgelegt ist, müssen Sie ein Terminierungszeichen verwenden. Ohne das Terminierungszeichen wird der Schritt nicht in den Bereich "Successful" (Erfolgreich) verschoben. Stattdessen geht es immer zu "Timeout", auch wenn es eine Übereinstimmung gibt.
Wenn der Benutzer keine Erweiterung eingibt, die einem Namen zugeordnet werden kann, überprüft die Verzweigung Fehlgeschlagen einen neuen Zähler (SpellByNameAttempts) gegen MaxRetries. Nehmen wir an, dass die gleiche maximale Anzahl von Wiederholungen, um in das Hauptmenü zu gelangen, auf die Funktion "Rechtschreibung nach Namen" angewendet werden muss. Sie können eine separate Variable hinzufügen, wenn diese anders sein muss.
Ein erfolgreicher NameToUser-Schritt bedeutet, dass mindestens eine Ziffer eingegeben und der Nachname eines einzelnen Benutzers, wie in Cisco Unity Express definiert, ausgewählt wird (die Verzweigung für das Timeout wird nur erreicht, wenn überhaupt keine Ziffern eingegeben werden). Um sicherzustellen, dass die Durchwahl eindeutig ist, stellen Sie sicher, dass Sie die Durchwahl dem Benutzer zurückzuordnen können. Dies kann über den ExtensionToUser-Schritt erreicht werden. Dieser Schritt wird in Cisco Unity Express 2.1.1 hinzugefügt. Zuvor gab es keine Möglichkeit, eine Durchwahl zu verwenden, um sicherzustellen, dass sie einem echten Benutzer im Voicemail-System zugeordnet wurde. Sie können am besten einige Variablen einrichten, mit denen Sie vergleichen können, z. B. mit dem Hinzufügen eines Schritts "If (TransferExt < MinExtension) || (TransferExt > MaxExtension)..." oder Ähnliches.
Hier sehen Sie das Skript, nachdem Sie die Erweiterung dem Benutzer zurückzuordnen. Andernfalls wird eine Aufforderung abgespielt, dass die Durchwahl ungültig ist. In der Regel gibt es aus irgendeinem Grund keine Erweiterung. Im Fall von Cisco CallManager Express kann dies bedeuten, dass Sie auflegen, wenn Sie versuchen, den Anruf weiterzuleiten. Dies kann zu leichter Verwirrung führen, da der Anrufer bereits einen Benutzer ausgewählt hat. Dies ist jedoch bereits ein Fehler, über den Sie ohnehin Bescheid wissen möchten. Wenn die Zuordnung der Erweiterung zu einem Benutzer erfolgreich ist, überprüfen Sie zunächst, ob der Name aufgezeichnet wurde (die gesprocheneName-Variable wird beim Nachschlagen dieses Benutzers ausgefüllt). Legen Sie dann die prompt-Variable auf Calling plus den gesprochenenName fest. Andernfalls setzen Sie sie auf Calling Extension und die geschriebene Durchwahl des Benutzers. Sie können auch den Namen angeben (Wiedergabe von S[name] in der Eingabeaufforderung). Es ist kein aufgezeichneter Name zum Abspielen vorhanden. Jede Rechtschreibung des Systems, z. B. das Ausgeben eines Namens oder einer Durchwahl, erfolgt immer in der Stimme des Systems und kann nicht angepasst werden. Der Schritt Implicit Confirmation gibt die gerade erstellte Eingabeaufforderung wieder. Wenn der Benutzer keine Eingabe vornimmt, geht er in die Zweigstelle "Yes" (Ja) und leitet den Anruf um. Tritt ein Problem auf, wird im Falle der Cisco CallManager-Integration eine Begrüßung wiedergegeben, und der Anrufer wird zurück an das Hauptmenü geleitet. Wenn der Anrufer etwas eingibt, generieren Sie eine weitere Eingabeaufforderung. Diesmal beginnen Sie mit der Eingabeaufforderung entweder mit dem gesprochenenName oder mit einer geschriebenen Version des Benutzernamens (Schritt "Bedingte Aufforderung erstellen"). Befolgen Sie diese Anweisungen, indem Sie eine Pause einlegen und die Meldung "Wenn dies der Name der angerufenen Person ist, drücken Sie 1". Nun kann der Benutzer die "1" für "yes" (Ja), "2", "*" drücken oder warten. Das System sendet sie entweder zurück an den Abschnitt für die einzelnen Namen oder an den Operator. Dies hängt davon ab, wie oft sie das System durchlaufen haben.
Der Abschnitt "Wählen nach Durchwahl" enthält bereits die erste Ziffer ("2" in diesem Beispiel). Legen Sie die prefixDigit-Variable auf 2 fest. Sie können diese auf einfache Weise ändern, basierend auf der führenden Ziffer (oder wenn es mehr als eine mögliche führende Ziffer gibt). Keine führende Ziffer kann mit einer anderen Option im Menü identisch sein (z. B. die 1, die Sie in diesem Beispiel für die Wahl nach Namen verwenden). Die Get-Ziffernfolge sammelt auch eine feste Anzahl von Ziffern (in diesem Fall zwei). Daher muss die Gesamtzahl der Ziffern festgelegt werden. Wenn die gültigen Durchwahlen mit 2 oder 3 beginnen, können Sie der Option 3 des Menüschritts einen Schritt "Set prefixDigit = "3", gefolgt von einem Goto DialByExtension-Schritt, hinzufügen.
Da in dieser Umgebung dreistellige Durchwahlen vorhanden sind, ist der Parameter Get Digit String step Input length 2. Es gibt kein Abschlusszeichen und keinen Abbruchschlüssel. Die maximale Anzahl von Wiederholungen beträgt 0. Wenn ein Benutzer keine gültige Durchwahl eingibt, erhöht das Skript die Anzahl der Versuche und kehrt zum Hauptmenü zurück. Bei diesem Schritt wird kein Audio wiedergegeben (Aufforderung ist P[]), da sich der Benutzer bereits mitten in den Wählziffern befindet.
Wenn zwei Ziffern erfolgreich gesammelt wurden, stellen Sie die prefixDigit ("2" in diesem Fall) voran, die bereits gewählt wurde (wodurch Sie die Verzweigung aus dem Menu-Schritt durchführen können). Die resultierende TransferExt wird an den Schritt Erweiterung an Benutzer übergeben, in dem überprüft wird, ob es sich um einen gültigen Benutzer handelt. Ist dies der Fall, erstellen Sie eine Eingabeaufforderung mit der ausgedrückten Erweiterung. Im Schritt "Implicit Confirmation" (Implizite Bestätigung) wird die Aufforderung "alling Extension" (Anrufdurchwahl) gefolgt von der Durchwahl wiedergegeben. Nachschlagen des Benutzers und Wiedergeben des gesprochenen Namens, wie Sie es bei DialByName getan haben. In diesem Fall ist dies jedoch nicht erforderlich. Wenn keine Ziffer gewählt wird, nehmen Sie an, dass es sich um die Durchwahl handelt, die der Anrufer erreichen möchte, und leiten Sie den Anruf um. Andernfalls kehren Sie zum Hauptmenü zurück. Der DP[250]-Schritt der Play Prompt besteht darin, alle anderen Eingaben zu löschen, da für den Schritt Get Digit String kein Terminierungszeichen konfiguriert ist. Die Idee ist, dass Sie diese Funktion aktivieren möchten, wenn jemand die Durchwahl "200" oder "200#" wählt. Wenn # eingegeben wird, während der Schritt Implicit Confirmation ausgeführt wird, geht es zum Abschnitt No (Nein) des Schritts. In einigen Fällen ist es wahrscheinlich nicht notwendig, einen Schritt der impliziten Bestätigung zu haben, sondern den Anruf sofort umzuleiten. Zur Veranschaulichung bleiben diese Schritte in enthalten.
Wiedergabe einer Aufforderung "Anruf weiterleiten" und anschließend an die konfigurierte Operatorerweiterung umleiten. Wenn es aus irgendeinem Grund fehlschlägt, haben Sie einen separaten Zähler, den Sie inkrementieren, und kehren zum Hauptmenü zurück. Der Grund dafür ist, dass Sie eine Methode haben möchten, um dem Bediener etwas Zeit zu geben, vom Telefon auszusteigen oder sich neu zu registrieren, damit Sie erfolgreich versuchen können, sie erneut zu übertragen. Nach mehreren Versuchen (in diesem Beispiel mit 3 hartcodiert) wird der Anruf auf die Bezeichnung "Sorry" (Sorry) umgeleitet, die den Anruf beendet.
Es gibt viele Orte, an denen Skripte fehlschlagen können. Einer der häufigsten Bereiche in einem gut durchdachten Skript ist, wenn Benutzeraufforderungen fehlen. Wenn das System versucht, eine Eingabeaufforderung abzuspielen, die nicht vorhanden ist, kann es zu einer Reihe von Vorgängen kommen. Zuerst, wenn bei dem Schritt, der die Eingabeaufforderung wiedergibt, "Continue On Prompt Errors" (Weiter bei Eingabefehlern) auf "Yes" (Ja) eingestellt ist. Er fährt mit dem nächsten Schritt fort und gibt die Eingabeaufforderung nicht wieder. Wenn Continue On Prompt Errors (Auf Aufforderung fortsetzen) auf No (Nein) festgelegt ist, wird eine Ausnahme generiert. Meistens ist dies die "UndefindedPromptException", d. h. die Eingabeaufforderung wird nicht gefunden oder nie konfiguriert. Wenn Sie einen On Exception Goto-Schritt haben, können Sie diese Ausnahme abfangen und in einen Codeabschnitt verzweigen, der entweder eine Systemmeldung oder eine andere Audioform abspielen kann. Da der Schritt On Exception Goto für alle Audiodaten gilt, die im gesamten Skript abgespielt werden (Sie können für jede abgespielte Eingabeaufforderung keinen separaten On Exception Goto-Schritt definieren), ist es am besten, dies zu behandeln, unmittelbar vor dem Abspielen der Eingabeaufforderung eine Fehlercodevariable festzulegen. Auf diese Weise können Sie irgendwo eine Verzweigung durchführen, eine Aktion basierend auf diesem Fehlercode durchführen und dann möglicherweise eine Verzweigung durchführen.
Sie können das Skript z. B. wie folgt ändern:
Sie haben das Label "Maxretries" hinzugefügt. So können Sie zum selben Ort zurückkehren. Legen Sie eine ErrorCode-Variable auf Maxretries fest. Stellen Sie im Schritt Play Prompt (Wiedergabe) sicher, dass Continue On Prompt Errors (Weiter) auf No (Nein) eingestellt ist. Fügen Sie jetzt einen Abschnitt hinzu, der dies behandeln kann. Überprüfen Sie, ob der ErrorCode mit "Maxretries" übereinstimmt, und legen Sie dann die Variable SorryProblems (die Sie zuvor abgespielt haben) auf die Systemmeldung fest. Bitte haben Sie Probleme. Bitte bleiben Sie am Apparat, und einige sind in Kürze bei Ihnen. Dann gehen Sie zum Label Maxretries, damit es abspielen kann.
Im letzten Schritt wird die Nachricht On Exception Goto geändert, um nach dem UndefinedPromptException-Fehler zu suchen:
Dieser Schritt kann sich an einer beliebigen Stelle im Skript befinden. Sie wird jedoch normalerweise am Anfang oder nahe am Anfang platziert. Es gibt eine Reihe von Schritten, in denen Sie Aufforderungen abspielen können. Die Systemaufforderungen sind unten in diesem Dokument aufgeführt.
Diese Methode kann verwendet werden, anstatt den checkAltGreet.aef-Subflow aufzurufen. Sie müssen die Datei AltGreeting.wav abspielen. Wenn ein Fehler auftritt, behandeln Sie ihn. Der Vorteil ist, dass Sie wissen, wenn es spielt oder nicht.
Obwohl weniger häufig, sind dies die anderen Aufforderungsausnahmen:
UndefinedPromptException
PromptException
UndefinedPromptGenerator
InvalidPromptArgumentException
UnsupportedPromptExpression
Es ist derzeit nicht möglich, den Anruf direkt an eine Voicemail-Box umzuleiten. Sie muss an eine Nummer gesendet werden, die an die Voicemail weiterleitet. Dabei kann es sich um eine Dummy-Nummer in Cisco CallManager Express (oder sogar in Cisco CallManager) handeln, die so konfiguriert ist, dass alle Anrufe an die Pilotnummer der Voicemail umgeleitet werden. Verwenden Sie die Nummerneinstellungen für Cisco Unity Express-Nummer/e.164, um diese Nummer einem Teilnehmer oder einer Gruppe zuzuordnen. Wie ein Anrufer direkt in eine Unity Express-Mailbox weitergeleitet werden kann, wird erläutert.
Sie müssen alle in einem Skript verwendeten Variablen erstellen, bevor Sie sie verwenden können. Wenn Sie eine Option verwenden und diese später löschen, wählen Sie im Skripteditor Extras > Validieren, um sie zu finden. Für dieses Beispielskript werden diese Variablen verwendet. Beachten Sie Name, Type, Value (der Wert der Variablen zu Beginn) und Attribute. Das Parameter-Attribut bedeutet, dass die Variable dem Administrator über die Webseite verfügbar gemacht wird. Alles, was der Cisco Unity Express-Administrator anpassen soll, muss über das Parameter-Attribut verfügen.
Wenn Sie nicht alle dieser benutzerdefinierten Aufforderungen aufzeichnen möchten, können Sie jede dieser Aufforderungen bearbeiten und das Parameter-Attribut deaktivieren, sodass es nicht über die Webseite verfügbar gemacht wird. Um sicherzustellen, dass das System immer noch funktioniert, fügen Sie mehrere Set-Schritte zum Start des Skripts hinzu. Legen Sie beispielsweise 'Calling' auf 'SP[AA/AACalling]' fest. Nicht alle hier gezeigten Aufforderungen verfügen über entsprechende Systemskripts. In den meisten Fällen ist es sinnvoll, sie selbst aufzuzeichnen. Wenn sich die Eingabeaufforderungen nicht ändern, können Sie sie einmal aufzeichnen, sicherstellen, dass sie auf dem Cisco Unity Express-System mit einem bestimmten Dateinamen vorhanden sind, und dann das Parameter-Attribut aus der Variablen entfernen. Auf diese Weise wird ein fester Dateiname wiedergegeben. Die Variable wird jedoch nicht über die Webschnittstelle verfügbar gemacht, wo ein Administrator sie versehentlich ändern kann.
In der Regel besteht der erste Schritt zum Hinzufügen einer neuen Anwendung und eines neuen Skripts zu Cisco Unity Express darin, die Aufforderungen hochzuladen. Dies ist wichtig, da die Aufforderungen auf dem System vorhanden sein müssen, damit Sie sie in den Skriptparametern konfigurieren können. Andernfalls müssen Sie die Parameter leer lassen, die Eingabeaufforderungen hochladen und anschließend die Skriptparameter bearbeiten. Weitere Informationen zum Aufzeichnen und Hochladen von Aufforderungen finden Sie unter Administration via the Telefone (AVT)/Greetings Management System.
Sobald Sie Ihr Skript gespeichert haben und es ausprobieren können, müssen Sie es zunächst in Cisco Unity Express hochladen. Am einfachsten ist die Verwendung der GUI, da dafür kein FTP-Server zum Laden der Skriptdateien erforderlich ist.
Gehen Sie wie folgt vor:
Melden Sie sich mit einem Konto mit Administratorrechten bei der Benutzeroberfläche von Cisco Unity Express an.
Wählen Sie Voicemail > Automatische Anrufvermittlung aus.
Klicken Sie auf Hinzufügen.
Klicken Sie neben dem Skript für die ausgewählte automatische Anrufvermittlung auf die Schaltfläche Hochladen.
Klicken Sie auf Durchsuchen.
Suchen Sie die Skriptdatei, wählen Sie sie aus, und drücken Sie OK.
Wenn Sie den Namen der Zieldatei ändern möchten, tun Sie dies. Andernfalls drücken Sie Hochladen.
Geben Sie einen Anwendungsnamen ein. Dies kann alles in Kleinbuchstaben sein und wird verwendet, um auf die dieser Skriptdatei zugeordnete Anwendung zu verweisen.
Klicken Sie auf Weiter.
Die Seite zeigt nun alle Variablen für das Skript an, die als Parameter markiert sind. Dies bedeutet, dass sie auf dieser Seite konfiguriert werden können. Wenn Sie die Aufforderungsdateien noch nicht hochgeladen haben, können Sie diese zuerst durchgehen und die Informationen später eingeben.
Klicken Sie nach der Eingabe der Skriptparameter auf Weiter.
Stellen Sie sicher, dass die Anwendung als Aktiviert markiert ist, konfigurieren Sie die maximale Anzahl gleichzeitiger Anrufe (standardmäßig ist die maximale Anzahl von Anrufen die von der Lizenz erlaubt), und geben Sie eine Einwahlnummer ein.
Dies ist die Nummer, für die diese Anwendung aufgerufen werden muss (Trigger). Dabei kann es sich um Ihre wichtigste automatische Anrufvermittlung oder um eine temporäre Nummer handeln. Sie können dies auch überspringen und später eintragen. Ohne Einwahlnummer können Sie ein Skript nicht testen oder starten.
Hinweis: Für die Integration von Cisco CallManager mit SRST-Unterstützung müssen Sie mehrere Einwahlnummern eingeben. Vor Cisco Unity Express 2.1.1 mussten diese Informationen über die CLI eingegeben werden. In Cisco Unity Express 2.1 können im Bildschirm Administration > Call in Numbers (Administration > Einwahlnummern) mehrere Einwahlnummern (Trigger) eingegeben werden.
Klicken Sie auf Fertig gestellt.
Wenn Sie das Skript hochladen und die Anwendung konfigurieren, müssen Sie sicherstellen, dass Sie Anrufe an die Anwendung weiterleiten können. Dies bedeutet, dass entweder Cisco CallManager Express oder Cisco CallManager konfiguriert werden muss. Bei CallManager Express muss ein Dial-Peer konfiguriert werden, der auf Cisco Unity Express verweist und mit dem in Cisco Unity Express konfigurierten Muster (Auslöser- oder Einwahlnummer) übereinstimmt. In Cisco CallManager muss ein CTI-Routenpunkt mit dieser Nummer hinzugefügt werden. Vergessen Sie nicht, dass Sie diesen CTI-Routing-Point dem JTAPI-Benutzer zuordnen müssen, als der sich Cisco Unity Express anmeldet. Für diese Konfiguration kann möglicherweise ein Neustart von Cisco Unity Express erforderlich sein. Wenn Sie den Routenpunkt hinzugefügt und dem Benutzer zugeordnet haben, können Sie das Skript beliebig ändern, ohne dass ein Neustart erforderlich ist.
Wenn Sie ein Skript aktualisieren und keine Variablen-Parameter hinzugefügt oder geändert werden, können Sie in den Cisco Unity Express-Editor wechseln, auf Voicemail > Scripts klicken, hochladen und das Skript auswählen. Sie wird mit allen anderen konfigurierten Parametern überschrieben, die identisch bleiben.
Wenn Sie Aufforderungen erstellen, verwenden Sie am einfachsten das AVT-System. Die Dateinamen, die in den Datensätzen gespeichert sind, enthalten Datums-/Uhrzeitstempel. In Cisco Unit Express 2.1.1 und höher ist es jedoch möglich, den Befehl CLI ccn rename prompt (Eingabeaufforderung für Umbenennung) zu verwenden. Zuvor mussten Sie die Eingabeaufforderung herunterladen, erneut mit einem neuen Namen hochladen und anschließend die ursprüngliche WAV-Datei löschen. Beispiel:
cue-3745-44a> show ccn prompts ... Name: UserPrompt_01032005170038.wav Language: en_US Last Modified Date: Mon Jan 03 17:00:38 EST 2005 Length in Bytes: 35098 cue-3745-44a> ccn rename prompt UserPrompt_01032005170038.wav MyPrompt.wav language en_US Warning! Any existing ccn applications that use this prompt will stop working until they are manually updated with the new prompt name. Continue? (y/n) y cue-3745-44a>
Wenn Sie die Fehlerbehebung für ein Skript durchführen, müssen Sie verschiedene Szenarien, sowohl reguläre Benutzereingaben als auch Zeitüberschreitungs- und voraussichtliche Fehlerzustände, anrufen und testen.
Bevor Sie ein Skript hochladen, rufen Sie immer den Eintrag Extras > Validieren im Skripteditor auf, und vergewissern Sie sich, dass die Meldung "Validierung erfolgreich" angezeigt wird. Andernfalls werden alle Fehler im Debugbereich angezeigt. Sie können auf diese doppelklicken, um anzuzeigen, wo die Fehlerbedingung im Skript vorhanden ist.
In den meisten Fällen sind die Standardspuren für die Problembehebung mehr als ausreichend. Um dies zu vereinfachen, lassen Sie die Standardspuren ein, und verwenden Sie die Filterfunktion, um anzuzeigen, was Sie benötigen.
Führen Sie vor einem Test den Befehl clear trace aus. Dadurch wird der Speicherpuffer von Ablaufverfolgungsmeldungen gelöscht, sodass die gefilterte Datenmenge nur die Daten enthält, nachdem der Befehl ausgegeben wurde.
Bei der Skriptausführung ist EXECUTING_STEP das wichtigste zu filternde Element. Es werden alle Schritte während der Ausführung angezeigt. Beispiel:
cue-3745-44a> clear trace cue-3745-44a> /*** NOW THE TEST CALL IS MADE ***/ cue-3745-44a> show trace buffer long | include EXECUTING_STEP 3119 12/28 17:05:33.955 ACCN APMG 0 EXECUTING_STEP:Executing a step: Application=App[name=customaa,type=Cisco Script Application,id=4, desc=customaa,enabled=true,max=8,valid=true,optional= [cfgVars=[Lcom.cisco.wfapi.util.WFNameValuePair;@14efaa66,script=customaa21.aef]], Task id=17,000,000,007,Step id=0,Step Class=com.cisco.wfframework.steps.core. StepStart,Step Description=Start ...
In diesem Beispiel werden einige der redundanten Informationen in der Mitte entfernt und der Anfang des Datums-/Zeitstempels zugeteilt. Meistens sind die wichtigsten Informationen am Ende jeder Zeile.
Hinweis: Viele dieser Ausgabezeilen werden aus räumlichen Gründen auf eine zweite und dritte Zeile reduziert.
5:33.956 Step id=529,Step Class=com.cisco.wfframework.steps.core.StepComment, Step Description=/* Assumptions: User extensions ... */ 5:33.957 Step id=3,Step Class=com.cisco.wf.steps.ivr.AcceptStep,Step Description=Accept (contact: --Triggering Contact--) 5:33.977 Step id=129,Step Class=com.cisco.wf.steps.ivr.OutputStep,Step Description=Play Prompt (contact: --Triggering Contact--, prompt: DP[500]) 5:34.461 Step id=2,190,Step Class=com.cisco.wfframework.steps.core .StepOnExceptionGoto,Step Description=On Exception(UndefinedPromptException) Goto Error 5:34.463 Step id=1,649,Step Class=com.cisco.wfframework.steps.core .StepComment,Step Description=/* Check for Alternate Greeting. ... */ 5:34.464 Step id=1,650,Step Class=com.cisco.wfframework.steps.core .StepCallSubflow,Step Description=Call Subflow -- checkAltGreet.aef 5:34.467 Step id=0,Step Class=com.cisco.wfframework.steps.core.StepStart, Step Description=Start 5:34.468 Step id=78,Step Class=com.cisco.wf.steps.ivr.GetContactInfoStep, Step Description=Get Contact Info (contact: --Triggering Contact--) 5:34.469 Step id=79,Step Class=com.cisco.wfframework.steps.core .StepCreateHost,Step Description=aType = new com.cisco .aesop.AltGreetType(language) 5:34.473 Step id=56,Step Class=com.cisco.wfframework.steps.core .StepHost,Step Description=pExist = aType.isEnabled() 5:34.477 Step id=5,Step Class=com.cisco.wfframework.steps.core .StepIf,Step Description=If ( pExist == true 5:34.478 Step id=3,Step Class=com.cisco.wfframework.steps.core .StepEnd,Step Description=End 5:34.480 Step id=510,Step Class=com.cisco.wf.steps.ivr.HolidayStep, Step Description=Is Holiday (Date: --Current Date--) 5:34.487 Step id=512,Step Class=com.cisco.wf.steps.ivr.BusinessHoursStep, Step Description=Business Hours (date: --Current Date--, time: --Current Time--, schedule: BusinessSchedule) 5:34.527 Step id=1,659,Step Class=com.cisco.wfframework.steps.core .StepLabel,Step Description=Office Open: 5:34.529 Step id=1,660,Step Class=com.cisco.wf.steps.ivr.OutputStep, Step Description=Play Prompt (contact: --Triggering Contact--, prompt: OpenGreeting) 5:35.722 Step id=1,669,Step Class=com.cisco.wfframework.steps.core .StepLabel,Step Description=Main Menu: 5:35.723 Step id=732,Step Class=com.cisco.wfframework.steps.core .StepIf,Step Description=If ( attempts >= MaxRetries ) Then 5:35.724 Step id=2,195,Step Class=com.cisco.wfframework.steps.core .StepAssign,Step Description=Set ErrorCode = "mainmenu" 5:35.726 Step id=2,259,Step Class=com.cisco.wf.steps.ivr.MenuStep, Step Description=Menu (contact: --Triggering Contact--, prompt: MainMenu) 5:35.730 Step id=2,294,Step Class=com.cisco.wf.steps.ivr.ParseInputStep, Step Description=Get Digit String(contact: --Triggering Contact--, result digit string: TransferExt) 5:36.197 Step id=2,295,Step Class=com.cisco.wfframework.steps.core .StepAssign,Step Description=Set TransferExt = "2" + TransferExt 5:36.198 Step id=2,296,Step Class=com.cisco.wf.steps.ivr.ExtensionToAddressStep, Step Description=Extension To User (Extension: TransferExt, result user:user) 5:36.214 Step id=2,297,Step Class=com.cisco.prompt.steps.CreateGeneratedPromptStep, Step Description=Create Generated Prompt( telephone.number type, store in prompt ) 5:36.229 Step id=2,298,Step Class=com.cisco.wf.steps.ivr.ImplicitConfirmStep, Step Description=Implicit Confirmation (contact: --Triggering Contact--) 5:41.971 Step id=2,301,Step Class=com.cisco.wf.steps.ivr.RedirectStep, Step Description=Call Redirect (contact: --Triggering Contact--, extension: TransferExt)
Nun können Sie jeden Schritt während der Ausführung sehen. Sie können weder sehen, wie Ausdrücke ausgewertet werden, noch können Sie Benutzereingaben sehen. Wenn das Skript vor Ihnen, können Sie folgen, wo das Skript verzweigt, mit der Kenntnis der Ziffern, die Sie eingegeben haben (in diesem Fall, der Benutzer wählt sich ein, wählt eine Durchwahl, und wird übertragen).
Verwenden Sie einen Filter, um die Ziffern anzuzeigen.
cue-3745-44a> show trace buffer long | include "process digit" 3119 12/28 17:05:35.728 ACCN CMTS 0 process digit 2 tag=2 3119 12/28 17:05:35.943 ACCN CMTS 0 process digit 0 3119 12/28 17:05:36.195 ACCN CMTS 0 process digit 1
In dieser Ausgabe sehen Sie, dass die Durchwahl 201 gewählt wurde.
Wenn sich die Versionen von CUE und CUE-Skripteditor unterscheiden und Sie versuchen, ein AA-Skript über die GUI oder CLI hochzuladen, schlägt der Upload fehl, und die Fehlermeldung Upload failed (Upload fehlgeschlagen) wird angezeigt. Wenn sich beide Versionen unterscheiden, müssen Sie das Skript mit dem CUE-Editor der Version neu erstellen, die mit dem CUE-Editor identisch ist. Oder aktualisieren Sie CUE auf die Version des CUE-Skripteditors, und führen Sie das Skript aus.
Diese Tabelle zeigt Systemaufforderungen, die Sie verwenden können.
Hinweis: Sie können nicht alle Aufforderungen, die Sie in der Cisco Unity Express-Voicemail-Anwendung hören, in einem benutzerdefinierten Skript wiederverwenden. Einige der Aufforderungen sind nur über das Voicemail-Skript verfügbar, das Sie nicht über den Cisco Unity Express-Skripteditor anpassen können.
Systemaufforderung | Tonaufzeichnung |
---|---|
SP[AA/AAWelcome] | "Willkommen bei der automatischen Anrufvermittlung" |
SP[AA/AAMainMenu] | "Um die Telefonnummer der Person einzugeben, die Sie zu erreichen versuchen, drücken Sie 1. Drücken Sie zum Eingeben des Namens der Person, die Sie zu erreichen versuchen, die "2". Drücken Sie dann die "0". |
SP[AA/AAEnterExtn] | "Geben Sie die Telefonnummer ein, und drücken Sie die #-Taste." |
SP[AA/AACallingExt] | "Calling Extension" |
SP[AA/AAPhoneReach] | "Die Telefonnummer, die Sie erreichen möchten." |
SP[AA/AAOutOfServicePhone] | "Ist momentan außer Betrieb" |
SP[AA/AANameDial] | "Schreiben Sie den Nachnamen der Person, die Sie anrufen möchten, gefolgt vom Vornamen. Für Buchstaben Q drücken Sie 7, für Z drücken Sie 9". |
SP[AA/AACalling] | "Anrufe" |
SP[AA/AASorry] | "Entschuldigen Sie, dass Sie Probleme haben. Bitte bleiben Sie am Apparat, und einige davon sind in Kürze bei Ihnen." |
SP[AA/AAWant2Call] | "Wenn dies der Name der Person ist, die Sie anrufen, drücken Sie 1, um von vorne zu beginnen, und drücken Sie *". |
SP[AA/still_There] | "Bist du noch da?" |
Um das System (Cisco Unity Express 2.1.x und frühere Versionen) über die CLI auf Standardspuren zurückzusetzen, deaktivieren Sie zunächst alle Spuren mit dem Befehl no trace all (Keine Ablaufverfolgung alle), und fügen Sie diese in die CLI ein:
trace ccn engine dbug trace ccn libldap dbug trace ccn subsystemappl dbug trace ccn managerappl dbug trace ccn managerchannel dbug trace ccn subsystemjtapi dbug trace ccn subsystemsip dbug trace ccn stacksip dbug trace ccn subsystemhttp dbug trace ccn vbrowsercore dbug trace ccn subsystemcmt dbug trace ccn libmedia dbug trace ccn managercontact dbug trace ccn stepcall dbug trace ccn stepmedia dbug trace config-ccn sip-subsystem debug trace config-ccn jtapi-subsystem debug trace config-ccn sip-trigger debug trace config-ccn jtapi-trigger debug trace config-ccn http-trigger debug trace config-ccn group debug trace config-ccn application debug trace config-ccn script debug trace config-ccn prompt debug trace config-ccn miscellaneous debug trace voicemail database query trace voicemail database results trace voicemail database transaction trace voicemail database connection trace voicemail database execute trace voicemail mailbox login trace voicemail mailbox logout trace voicemail mailbox send trace voicemail mailbox save trace voicemail mailbox receive trace voicemail mailbox delete trace voicemail message create trace voicemail message dec trace voicemail message delete trace voicemail message get trace voicemail message inc trace webinterface initwizard inittrace ccn engine dbug trace ccn libldap dbug trace ccn subsystemappl dbug trace ccn managerappl dbug trace ccn managerchannel dbug trace ccn subsystemjtapi dbug trace ccn subsystemsip dbug trace ccn stacksip dbug trace ccn subsystemhttp dbug trace ccn vbrowsercore dbug trace ccn subsystemcmt dbug trace ccn libmedia dbug trace ccn managercontact dbug trace ccn stepcall dbug trace ccn stepmedia dbug trace config-ccn sip-subsystem debug trace config-ccn jtapi-subsystem debug trace config-ccn sip-trigger debug trace config-ccn jtapi-trigger debug trace config-ccn http-trigger debug trace config-ccn group debug trace config-ccn application debug trace config-ccn script debug trace config-ccn prompt debug trace config-ccn miscellaneous debug trace voicemail database query trace voicemail database results trace voicemail database transaction trace voicemail database connection trace voicemail database execute trace voicemail mailbox login trace voicemail mailbox logout trace voicemail mailbox send trace voicemail mailbox save trace voicemail mailbox receive trace voicemail mailbox delete trace voicemail message create trace voicemail message dec trace voicemail message delete trace voicemail message get trace voicemail message inc trace webinterface initwizard init