Einführung
In diesem Dokument wird beschrieben, wie Sie die DBLookup-Funktion im Intelligent Contact Manager (ICM) konfigurieren, um Daten aus einer externen Datenbank abzurufen und im Skript zu verwenden. Um zu veranschaulichen, wie die Funktion konfiguriert wird, wird in diesem Dokument ein Beispielszenario verwendet, in dem der Benutzer versucht zu ermitteln, ob der Anrufer Teil einer Liste ist (z. B. um einen Prioritätsdienst bereitzustellen).
Voraussetzungen
Anforderungen
Für dieses Dokument bestehen keine speziellen Anforderungen.
Verwendete Komponenten
Dieses Dokument ist nicht auf bestimmte Software- und Hardwareversionen beschränkt.
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.
Konfigurieren
- Erstellen Sie die Datenbank.
Erstellen Sie zunächst die Datenbank. Klicken Sie in Microsoft SQL Server Management Studio mit der rechten Maustaste auf Datenbanken, und wählen Sie Neue Datenbank:
Erstellen Sie anschließend eine Tabelle in dieser Datenbank. Klicken Sie mit der rechten Maustaste unter der neu erstellten Datenbank auf Tabellen. Anschließend können Sie einige Spalten hinzufügen:
Hinweis: Definieren Sie alle ganzzahligen Felder in Tabellen, auf die ein DBLookup-Knoten zugreift, als NOT NULL. Nur diese Datentypen werden für SQL-Datenbanken unterstützt: SQLINT1 (tinyint), SQLINT2 (smallint), SQLINT4 (int), SQLCHAR (char), SQLVARCHAR (varchar), SQLFLT4DBFLT4 (real), SQLFLT8DBFLT8 (float) und SQLDATETIME (datetime). Sie müssen alle Felder außer SQLDATETIME, SQLVARCHAR und SQLCHAR als NOT NULL-Felder definieren. Sie können diese drei Felder als NULL definieren.
Wählen Sie den varchar-Datentyp aus, da er die Flexibilität bietet, auch Zeichen in der Zahl enthalten zu können. Um die Spalte Telefon als Primärschlüssel festzulegen, deaktivieren Sie im Kontrollkästchen Allow Nulls (Rufnummern zulassen). Um diese Spalte als Primärschlüssel festzulegen, klicken Sie mit der rechten Maustaste, und wählen Sie Primärschlüssel festlegen aus:
Speichern Sie nach Abschluss dieser Schritte die Änderungen. Jetzt können Sie der Tabelle Daten hinzufügen:
- Konfigurieren Sie ICM, um eine Verbindung zu dieser Datenbank herzustellen.
Verwenden Sie den Konfigurations-Manager unter Explorer-Tools, um den Datenbank-Such-Explorer zu öffnen. Fügen Sie dann die neu erstellte Datenbank und Spalte hinzu:
Sie müssen auch den Benutzernamen/das Kennwort konfigurieren, um sich bei der Datenbank anzumelden, da das System standardmäßig ein leeres Kennwort verwendet. Konfigurieren Sie den Benutzernamen/das Kennwort in der Registrierung mit dem folgenden Schlüssel:
HKEY_LOCAL_MACHINE\SOFTWARE\Cisco Systems,
Inc.\ICM\inst1\RouterA\Router\CurrentVersion\Configuration\Database\SQLLogin
Dieses Beispiel zeigt, wie Sie den Schlüssel mit dem Domänenbenutzer konfigurieren können:
\\POD2SPRAWLA\DBLookup=(ZFB\Administrator,password)
Hinweis: Verwenden Sie im Kennwort nicht die folgenden Sonderzeichen: "=", ")", (", ",", ?", "\", "/"
-
Stellen Sie sicher, dass Sie auf dem Bildschirm Edit Router Enable Database Routing (Datenbankrouting aktivieren) auswählen, auf den Sie in der Router-Einrichtung in der Webschnittstelle zugreifen können:
- Verwenden Sie diese Datenbank im Skript.
Fügen Sie den DBLookup-Knoten hinzu, und geben Sie an, in welcher Tabelle Sie suchen möchten. In diesem Beispiel wird eine Suche in der Prioritätstabelle mit der CallingLineID veranschaulicht. Da nchar als Datentyp ausgewählt wurde, müssen Sie die Zahl in eine Zeichenfolge konvertieren, bevor Sie die Suche eingeben:
Die Suche erfolgt in der Spalte, die als Primärschlüssel festgelegt ist. Später können Sie Daten aus derselben Zeile zum Auffüllen von Anrufvariablen verwenden. In diesem Beispiel wird das Hinzufügen einer weiteren Spalte, City, sowohl in der Datenbank als auch im Konfigurationsmanager, veranschaulicht, die in das Skript eingefügt werden kann:
Überprüfen
Überprüfen Sie anhand dieses Abschnitts, ob DB Worker eine Verbindung zur externen Datenbank herstellen kann. Erstellen Sie eine TXT-Datei dbw.txt, die die Protokolle seit dem letzten Neustart des DB-Worker-Prozesses enthält:
C:\Users\Administrator.ZFB>cdlog
ra
C:\icm\inst1\ra\logfiles>dumplog dbw /o /ms /last
Überprüfen Sie, ob DB Worker mit dbw.txt eine Verbindung zur Datenbank herstellen kann:
12:39:08:413 ra-dbw Trace: Attempting integrated security open of
POD2SPRAWLA using ZFB\Administrator
12:39:08:451 ra-dbw Trace: Sucessfully impersonated ZFB\Administrator
12:39:08:476 ra-dbw Trace: 'id' is column 2 in sysobjects.
12:39:08:477 ra-dbw Trace: ID for table Priority is 5575058
12:39:08:484 ra-dbw Trace: Columns for Priority:
12:39:08:484 ra-dbw Trace: Column 1: Phone, type=47, length=30
12:39:08:536 ra-dbw Trace: Primary key for Priority is Phone, column 1.
12:39:08:557 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 0
12:39:08:557 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 1
12:39:08:558 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 2
12:39:08:558 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 3
12:39:08:558 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 4
12:39:08:558 ra-dbw Trace: ScriptTable Piority is now available.
12:39:08:559 ra-dbw Trace: ScriptTable Piority (ID 5000) connected to
POD2SPRAWLA,DBLookup,Priority
12:39:08:559 ra-dbw Trace: Internal connect for POD2SPRAWLA,DBLookup,Priority
12:39:08:559 ra-dbw Trace: 'id' is column 2 in sysobjects.
12:39:08:560 ra-dbw Trace: ID for table Priority is 5575058
12:39:08:560 ra-dbw Trace: Columns for Priority:
12:39:08:560 ra-dbw Trace: Column 1: Phone, type=47, length=30
12:39:08:561 ra-dbw Trace: Primary key for Priority is Phone, column 1.
12:39:08:561 ra-dbw Trace: Column Phone (ID 5002) is table column 1, type 47.
12:39:08:561 ra-dbw Trace: ScriptTable Piority (ID 5000) connected to
POD2SPRAWLA,DBLookup,Priority
Die DB-Arbeitsprotokolle zeigen diese Antwort an, wenn kein Eintrag vorhanden ist, der der Primärschlüsselspalte entspricht (ausgelöst durch den DBLookup-Knoten im Skript):
13:24:05:294 ra-dbw Trace: Queue a lookup request
13:24:05:295 ra-dbw Trace: DBWorker Thread 0 (ID 350760 Table:Priority):
Received request: transactionID 1
13:24:05:295 ra-dbw Trace: DBWorker Thread 0 (ID 350760),transactionID 1,
Attempt to read the record:
13:24:05:295 ra-dbw Trace: DBWorker transactionID 1, Failed! result=1
Wenn eine Übereinstimmung vorliegt, ist dies die Antwort:
13:25:25:810 ra-dbw Trace: Queue a lookup request
13:25:25:810 ra-dbw Trace: DBWorker Thread 1 (ID 354428 Table:Piority):
Received request: transactionID 2
13:25:25:810 ra-dbw Trace: DBWorker Thread 1 (ID 354428),transactionID 2,
Attempt to read the record:
13:25:25:811 ra-dbw Trace: DBWorker Thread 1 (ID 354428),transactionID 2,
Succeeded.
Fehlerbehebung
Für diese Konfiguration sind derzeit keine spezifischen Informationen zur Fehlerbehebung verfügbar.