Introduction
Ce document décrit comment configurer la fonction DBLookup dans le Gestionnaire de contacts intelligent (ICM) afin de récupérer des données d'une base de données externe et de les utiliser dans le script. Afin d'illustrer comment configurer la fonction, ce document utilise un exemple de scénario où l'utilisateur essaie d'identifier si l'appelant fait partie d'une liste (par exemple, afin de fournir un service prioritaire).
Conditions préalables
Exigences
Aucune exigence spécifique n'est associée à ce document.
Composants utilisés
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Configurer
- Créez la base de données.
Commencez par créer la base de données. Dans Microsoft SQL Server Management Studio, cliquez avec le bouton droit sur Bases de données et choisissez Nouvelle base de données :
Créez ensuite une table dans cette base de données. Cliquez avec le bouton droit sur Tables sous la nouvelle base de données. Vous pouvez ensuite ajouter quelques colonnes :
Remarque : Définissez tous les champs d'entier dans les tables auxquelles un noeud DBLookup accède comme NOT NULL. Seuls ces types de données sont pris en charge pour les bases de données SQL : SQLINT1 (tinyint), SQLINT2 (smallint), SQLINT4 (int), SQLCHAR (char), SQLVARCHAR (varchar), SQLFLT4DBFLT4 (real), SQLFLT8DBFLT8 (float) et SQLDATETIME (datetime). Vous devez définir tous les champs, à l'exception des champs SQLDATETIME, SQLVARCHAR et SQLCHAR, en tant que champs NOT NULL. Vous pouvez définir ces trois champs comme étant NULL.
Choisissez le type de données varchar parce qu'il permet la flexibilité d'avoir aussi des caractères dans le nombre. Afin de définir la colonne Phone comme clé primaire, décochez la case Allow Nulls. Afin de définir cette colonne comme clé primaire, cliquez avec le bouton droit et choisissez Set Primary Key :
Une fois ces étapes terminées, enregistrez les modifications. Vous pouvez désormais ajouter des données à votre table :
- Configurez ICM afin de vous connecter à cette base de données.
Utilisez le Gestionnaire de configuration sous les outils de l'Explorateur afin d'ouvrir l'Explorateur de recherche de base de données. Ajoutez ensuite la base de données et la colonne nouvellement créées :
Vous devez également configurer le nom d'utilisateur/mot de passe afin de vous connecter à la base de données parce que le système utilise sa avec un mot de passe vide par défaut. Configurez le nom d'utilisateur/mot de passe dans le Registre avec cette clé :
HKEY_LOCAL_MACHINE\SOFTWARE\Cisco Systems,
Inc.\ICM\inst1\RouterA\Router\CurrentVersion\Configuration\Database\SQLLogin
Cet exemple montre comment configurer la clé avec l'utilisateur du domaine :
\\POD2SPRAWLA\DBLookup=(ZFB\Administrator,password)
Remarque : N'utilisez pas les caractères spéciaux suivants dans le mot de passe : "=", ")", "(", ",", "?", "\", "/"
-
Assurez-vous que vous choisissez Enable Database Routing sur l'écran Edit Router, qui est accessible dans la configuration du routeur sur l'interface Web :
- Utilisez cette base de données dans le script.
Ajoutez le noeud RechercheDBL et spécifiez dans quelle table vous souhaitez effectuer la recherche. Cet exemple montre comment effectuer une recherche dans la table Priority à l'aide de CallingLineID. Étant donné que nchar a été choisi comme type de données, vous devez convertir le nombre en chaîne avant d'entrer la recherche :
La recherche a lieu sur la colonne définie comme clé primaire. Vous pourrez ensuite utiliser les données de la même ligne pour renseigner les variables d'appel. Cet exemple montre l'ajout d'une autre colonne, City, à la fois dans la base de données et dans le gestionnaire de configuration, qui peut être remplie dans le script :
Vérifier
Utilisez cette section pour confirmer que DB Worker est en mesure de se connecter à la base de données externe. Créez un fichier txt dbw.txt qui contient les journaux depuis le dernier redémarrage du processus DB Worker :
C:\Users\Administrator.ZFB>cdlog
ra
C:\icm\inst1\ra\logfiles>dumplog dbw /o /ms /last
Vérifiez que DB Worker est capable de se connecter à la base de données avec 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
Les journaux DB Worker affichent cette réponse lorsqu'aucune entrée ne correspond dans la colonne clé primaire (déclenchée par le noeud DBLookup dans le 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
En cas de correspondance, voici la réponse :
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.
Dépannage
Il n'existe actuellement aucune information de dépannage spécifique pour cette configuration.