Introduzione
In questo documento viene descritto come configurare la funzione DBLookup in Intelligent Contact Manager (ICM) per recuperare dati da un database esterno e utilizzarli nello script. Per illustrare come configurare la funzione, questo documento utilizza uno scenario di esempio in cui l'utente tenta di identificare se il chiamante fa parte di un elenco (ad esempio per fornire un servizio con priorità).
Prerequisiti
Requisiti
Nessun requisito specifico previsto per questo documento.
Componenti usati
Il documento può essere consultato per tutte le versioni software o hardware.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Configurazione
- Creare il database.
Creare innanzitutto il database. In Microsoft SQL Server Management Studio fare clic con il pulsante destro del mouse su Database e scegliere Nuovo database:
Creare quindi una tabella nel database. Fare clic con il pulsante destro del mouse su Tabelle nel database appena creato. È quindi possibile aggiungere alcune colonne:
Nota: Definire come NOT NULL tutti i campi di tipo integer nelle tabelle a cui accede un nodo DBLookup. Per i database SQL sono supportati solo i tipi di dati seguenti: SQLINT1 (tinyint), SQLINT2 (smallint), SQLINT4 (int), SQLCHAR (char), SQLVARCHAR (varchar), SQLFLT4DBFLT4 (real), SQLFLT8DBFLT8 (float) e SQLDATETIME (datetime). È necessario definire tutti i campi ad eccezione di SQLDATETIME, SQLVARCHAR e SQLCHAR come campi NOT NULL. È possibile definire questi tre campi come NULL.
Scegliere il tipo di dati varchar perché consente la flessibilità di includere caratteri nel numero. Per impostare la colonna Telefono come chiave primaria, deselezionare la casella di controllo Consenti valori Null. Per impostare questa colonna come chiave primaria, fare clic con il pulsante destro del mouse e scegliere Imposta chiave primaria:
Al termine, salvare le modifiche. A questo punto è possibile aggiungere dati alla tabella:
- Configurare ICM per la connessione a questo database.
Utilizzare Gestione configurazione in Strumenti di Esplora risorse per aprire Esplora ricerche nel database. Aggiungere quindi il database e la colonna appena creati:
È inoltre necessario configurare il nome utente e la password per accedere al database, in quanto per impostazione predefinita il sistema utilizza sa con una password vuota. Configurare il nome utente e la password nel Registro di sistema con questa chiave:
HKEY_LOCAL_MACHINE\SOFTWARE\Cisco Systems,
Inc.\ICM\inst1\RouterA\Router\CurrentVersion\Configuration\Database\SQLLogin
Nell'esempio viene mostrato come configurare la chiave con l'utente del dominio:
\\POD2SPRAWLA\DBLookup=(ZFB\Administrator,password)
Nota: Non utilizzare i seguenti caratteri speciali nella password: "=", ")", "(", ",", "?", "\", "/"
-
Assicurarsi di scegliere Abilita instradamento database nella schermata Modifica router, a cui è possibile accedere nella configurazione del router sull'interfaccia Web:
- Utilizzare questo database nello script.
Aggiungere il nodo DBLookup e specificare la tabella in cui si desidera eseguire la ricerca. In questo esempio viene illustrata una ricerca della tabella Priority con CallingLineID. Poiché è stato scelto nchar come tipo di dati, è necessario convertire il numero in una stringa prima di immettere la ricerca:
La ricerca viene eseguita nella colonna impostata come chiave primaria. In seguito, sarà possibile utilizzare i dati della stessa riga per popolare le variabili di chiamata. Questo esempio mostra l'aggiunta di un'altra colonna, City, sia nel database che in Gestione configurazione, che può essere compilata nello script:
Verifica
Utilizzare questa sezione per verificare che DB Worker sia in grado di connettersi al database esterno. Creare un file di testo dbw.txt contenente i registri dall'ultimo riavvio del processo di DB Worker:
C:\Users\Administrator.ZFB>cdlog
ra
C:\icm\inst1\ra\logfiles>dumplog dbw /o /ms /last
Verificare che DB Worker sia in grado di connettersi al database 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
I log di DB Worker visualizzano questa risposta quando non esiste alcuna voce corrispondente nella colonna della chiave primaria (attivata dal nodo DBLookup nello 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
In caso di corrispondenza, viene visualizzata la risposta:
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.
Risoluzione dei problemi
Al momento non sono disponibili informazioni specifiche per la risoluzione dei problemi di questa configurazione.