Introducción
Este documento describe cómo configurar la función DBLookup en Intelligent Contact Manager (ICM) para obtener datos de una base de datos externa y utilizarlos en la secuencia de comandos. Para ilustrar cómo configurar la función, este documento utiliza un escenario de ejemplo donde el usuario intenta identificar si la persona que llama forma parte de una lista (por ejemplo, para proporcionar un servicio de prioridad).
Prerequisites
Requirements
No hay requisitos específicos para este documento.
Componentes Utilizados
Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). If your network is live, make sure that you understand the potential impact of any command.
Configurar
- Cree la base de datos.
En primer lugar, cree la base de datos. En Microsoft SQL Server Management Studio, haga clic con el botón secundario del mouse en Bases de datos y elija Nueva base de datos:
A continuación, cree una tabla en esta base de datos. Haga clic con el botón secundario en Tablas debajo de la base de datos recién creada. A continuación, puede agregar algunas columnas:
Nota: Defina todos los campos enteros de las tablas a las que tiene acceso un nodo DBLookup como NOT NULL. Sólo estos tipos de datos son compatibles con las bases de datos SQL: SQLINT1 (tinyint), SQLINT2 (smallint), SQLINT4 (int), SQLCHAR (char), SQLVARCHAR (varchar), SQLFLT4DBFLT4 (real), SQLFLT8DBFLT8 (float) y SQLDATETIME (datetime). Debe definir todos los campos excepto SQLDATATIME, SQLVARCHAR y SQLCHAR como campos NOT NULL. Puede definir estos tres campos como NULL.
Elija el tipo de datos varchar porque permite la flexibilidad de tener también caracteres en el número. Para establecer la columna Phone como la clave principal, desmarque Allow Nulls en la casilla de verificación. Para establecer esta columna como la clave principal, haga clic con el botón secundario y elija Set Primary Key:
Una vez completados estos pasos, guarde los cambios. Ahora puede agregar datos a la tabla:
- Configure ICM para conectarse a esta base de datos.
Utilice el Administrador de configuración bajo Herramientas del Explorador para abrir el Explorador de Búsqueda de Base de Datos. A continuación, agregue la base de datos y la columna recién creadas:
También debe configurar el nombre de usuario/contraseña para iniciar sesión en la base de datos porque el sistema utiliza sa con una contraseña vacía de forma predeterminada. Configure el nombre de usuario/contraseña en el registro con esta clave:
HKEY_LOCAL_MACHINE\SOFTWARE\Cisco Systems,
Inc.\ICM\inst1\RouterA\Router\CurrentVersion\Configuration\Database\SQLLogin
Este ejemplo muestra cómo puede configurar la clave con el usuario del dominio:
\\POD2SPRAWLA\DBLookup=(ZFB\Administrator,password)
Nota: No utilice los siguientes caracteres especiales en la contraseña: "=", ")", "(", ",", "?", "\", "/"
-
Asegúrese de elegir Enable Database Routing en la pantalla Edit Router, a la que se puede acceder en la configuración del router en la interfaz web:
- Utilice esta base de datos en el script.
Agregue el nodo DBLookup y especifique en qué tabla desea buscar. En este ejemplo se muestra una búsqueda de la tabla Priority con CallingLineID. Dado que nchar se eligió como tipo de datos, debe convertir el número en una cadena antes de introducir la búsqueda:
La búsqueda se produce en la columna que está establecida como clave principal. Posteriormente, puede utilizar datos de la misma fila para rellenar las variables de llamada. Este ejemplo muestra la adición de otra columna, City, tanto en la base de datos como en el gestor de configuración, que se puede rellenar en el script:
Verificación
Utilice esta sección para confirmar que DB Worker puede conectarse a la base de datos externa. Cree un archivo de texto dbw.txt que contenga los registros desde el último reinicio del proceso DB Worker:
C:\Users\Administrator.ZFB>cdlog
ra
C:\icm\inst1\ra\logfiles>dumplog dbw /o /ms /last
Verifique que DB Worker pueda conectarse a la base de datos con dbw.txt:
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
Los registros de DB Worker muestran esta respuesta cuando no hay ninguna entrada que coincida en la columna de clave principal (desencadenada por el nodo DBLookup en el script):
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
Cuando hay una coincidencia, esta es la respuesta:
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.
Troubleshoot
Actualmente, no hay información específica de troubleshooting disponible para esta configuración.