Introduzione
In questo documento viene descritto come risolvere i problemi relativi a CVP (Customer Voice Portal) quando il chiamante non riceve un'offerta CCB perché la capacità del gateway trunk è stata superata.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
- CVP
- Cisco CVP per gentile concessione di Callback
Componenti usati
Le informazioni fornite in questo documento si basano sulle seguenti versioni software:
- CVP Server 10.5
- Unified Contact Center Enterprise (UCCE) 10.5
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.
Premesse
Prima di risolvere il problema relativo alla capacità del gateway, è importante comprendere il processo di convalida del trunk in CCB. In pratica, il processo determina innanzitutto il numero di chiamate dalla tabella Callback_current con EventTypeID in (21,22,23); In sospeso, In corso, Provvisorio per percorsi e percorsi specifici.
In secondo luogo, dalla stessa tabella Callback_current, determinare il numero di chiamate completate con cause connected: EventTypeID = 24 (Completato) e CauseID = 27 (Connesso).
Il processo aggiunge infine questi due valori e li confronta con il numero di trunk configurati nel servizio Survivability.tcl.
Se il risultato supera la soglia dei trunk configurata, il processo restituisce un errore (valore restituito 1), altrimenti restituisce ok (valore restituito 0).
In sintesi, la formula per la convalida dei tronchi utilizzati per la BCC è la seguente:
CCB Trunks < (tabella Callback_current con EventTypeID in (21,22,23); In sospeso, In corso, Provvisorio per gateway specifici) + tabella Callback_current di EventTypeID = 24 (Completato) e CauseID = 27 (Connesso)
Se il valore CCB Trunks è inferiore, la convalida non riesce.
Sintomi
L'offerta CCB non viene ricevuta per una chiamata in entrata. La chiamata viene inserita direttamente nella coda indipendentemente dal tempo di attesa stimato (EWT, Estimated Wait Time)
Risoluzione dei problemi
Passaggio 1. Raccogliere i log attività dall'applicazione CallbackEntry dal server VXML (Voice Extensible Markup Language).
Passaggio 2. Cercare nei log attività tutte le chiamate in cui la convalida è impostata su Nessuno:
Validate_02,data,result,none
La convalida non è stata superata. Ottenere il GUID per la chiamata. Filtrare la chiamata in base al callid dell'attività e cercare un callid come nell'esempio seguente:
start,parameter,callid=BBBBAAAACCCCDDDDEEEEFFFFAAAABBBB
Passaggio 3. Raccogliere i log di report CVP per il server di report. Trovare lo stesso callid nei log di report CVP.
ValidateHandler:ValidateHandler.exec: ValidateHandler GUID=BBBBAAAACCCCDDDDEEEEFFFFAAAABBBB results:none validation status bitmask=0x00000103
Passaggio 4. Convertire il numero della maschera di bit in formato binario. Utilizzare una calcolatrice: 0001 00000011
Passaggio 5. Controllare la maschera di bit della guida CVP Reporting per le tabelle CCB. Si noti che la convalida non riesce a causa di "EXCEED_CAPACITY_GW".
0000000
00000001 OK
00000000
0000010 ICM_NO_SCHEDULED_ALLOWED
00000000 0000100 ICM_NO_PREEMPTIVE_ALLOWED
00000000 00001000 NOT_IN_QUEUE
00000000 00010000 TOD
00000000 00100000 EWT
00000000 01000000 PROBE_FAILED_NO_RESPONSE
00000000 1000000 PROBE_FAILED_NO_CONFIG
00000001 0000000 EXCEED_CAPACITY_GW
0000010 0000000 EXCEED_CAPACITY_QUEUE
Nota: ICM_NO_SHCEDULED_ALLOWED e il bit OK sono sempre impostati
Passaggio 6. Limitare l'emissione a una coda specifica. Controllare il servelet CCB dal server di reporting CVP per determinare se vi sono code specifiche in cui non è offerta la funzione CCB. Aprite un browser Web e digitate.
http://{Reporting Server Indirizzo IP}:8000/cvp/CallbackServlet?method=Diag
Questo è un esempio di coda in cui è offerta la funzione di BCC:
Questo è un esempio di coda in cui non viene offerta la funzione di BCC
Passaggio 7. Verificare se le code sono servite da un gateway specifico. Controllare la configurazione del gateway (parametri dell'applicazione Survivability).
application
service new-call flash:bootstrap.vxml
!
service survivability flash:survivability.tcl
paramspace callfeature med-inact-det enable
param ccb id:10.201.198.21;loc:CALO;trunks:512
Passaggio 8. Se la configurazione è corretta, controllare le informazioni archiviate nel database del server di report (Informix) per determinare il numero di chiamate su questo gateway e percorso specifici. È possibile effettuare il controllo in base all'ID della BCC (in questo caso 10.201.198.21) o alla località (CALO nell'esempio).
Passaggio 9. Sul server di report, accedere al database Informix.
Aprire il prompt di CMD e digitare: dbacces
Selezionare connessione > connetti
Seleziona istanza cvp
digitare username cvp_dbadmin
digitare la password
selezionare callback@cvp database
uscire e passare a Linguaggi query
Passaggio 10. Eseguire la query:
Selezionare count(*) da callback_current dove location == "CALO";
Passaggio 11. Se il valore è uguale o superiore al valore del trunk configurato nel gateway per le posizioni, la convalida non riesce per questo motivo, in quanto è stato raggiunto il numero massimo di trunk consentiti nella tabella Callback_Current.
Nota: Come indicato nella guida di CVP Reporting, la tabella Callback è una vista di due tabelle: Callback_Current e Callback_Historical. Le due tabelle sono identiche. Ogni 30 minuti, i dati per le chiamate completate vengono estratti da Callback_Pending e spostati in Callback_Historical.
Passaggio 12. Se il valore del trunk per posizione ha raggiunto i limiti nella tabella Callback_Current e non sono presenti callback nella coda, si è verificato un problema durante lo spostamento dei record di callback da Callback_Current alla tabella Callback_Historical.
Passaggio 13. Verificare che CVPCallbackArchive sia in esecuzione in Pianificazione attività (CVP Reporting Server). Selezionare Start -> Programmi -> Accessori -> Utilità di sistema -> Operazioni pianificate.
.
Passaggio 14. Se l'attività CVPCallbackArchive viene completata, verificare che il codice di uscita sia (0x0).
Passaggio 15. Se i passaggi 13 e 14 sono corretti ma non contengono ancora dati nella tabella Callback_Historical, sarà necessario determinare il motivo per cui le informazioni non vengono aggiunte nel database. Controllare l'integrità delle informazioni memorizzate nella tabella corrente e nella tabella cronologica. Eseguire la seguente query nella finestra CMD di informix dbaccess:
Select count (*) from callback_current where surrogateid in (select surrogateid from callback_historical);
Passaggio 16. Se il conteggio è uguale o superiore a 1, la chiave primaria della tabella corrente esiste già nella tabella cronologica e le informazioni non vengono aggiunte al database. Nella maggior parte di questi scenari, una race condition determina l'immissione di record duplicati nella tabella callback_current.
Il mapping da GUID a ID surrogato viene eseguito nella tabella di coda. In situazioni in cui la chiamata si sposta dalla richiamata in attesa dello script della coda di richiamata, sembra che esista una finestra in cui il job di archiviazione sposta i record dalla posizione corrente alla cronologia e l'applicazione immette un nuovo record nella tabella corrente con lo stesso surrogateid. Questo problema è correlato a CDETS CSCuq86400
Soluzione
Passaggio 1. Accedere al database Informix. Aprire il prompt di CMD e digitare: dbacces
Passaggio 2. Passare a connessione > connetti seleziona istanza cvp. Digitare il nome utente cvp_dbadmin e la password
Passaggio 3. Selezionare callback@cvp uscire dal database e passare a Linguaggi query
Passaggio 4. Eseguire i seguenti comandi:
delete from callback_current where surrogateid in (selezionare surrogateid from callback_history);
In caso di errore temporaneo della tabella, procedere come segue:
drop table t1;
Passaggio 5. Eseguire la routine sp che sposta le informazioni dalla tabella di callback Corrente alla tabella di callback cronologica dalla finestra dbaccess della lingua della query.
EXECUTE PROCEDURE sp_arch_callback();
Passaggio 6. Verificare che nella tabella corrente non siano presenti tutti i record precedenti.
Selezionare count(*) da callback_current dove location == "CALO";
Soluzione permanente
Passaggio 1. Passare a Cisco\CVP\informix_frag e aprire sp_arch_callback.sql in un editor di testo.
Passaggio 2. Rimuovere il commento da questa riga all'inizio del file: - procedura di rilascio sp_arch_callback; (rimuovi — all'inizio della riga).
Passaggio 3. Aggiungere la riga: delete from callback_current where surrogato in (selezionare surrogateid from callback_history) ; dopo
create procedure sp_arch_callback() riga.
Passaggio 4. Salvare il file.
Passaggio 5. Questo è un esempio di come dovrebbe apparire la prima parte del file.
{*********************************************************************************
Stored procedure to move completed calls out of the active table into the
historical table.
*********************************************************************************}
drop procedure sp_arch_callback;
create procedure sp_arch_callback()
DEFINE p_ageoff INTEGER;
-- delete any duplicates found in current table.
delete from callback_current where surrogateid in (select surrogateid from callback_historical);
Soluzione finale di test
Passaggio 1. Aprire il prompt di CMD ed eseguire il comando: schema DB
dbschema -d callback -f sp_arch_callback
Nota: se si verifica un problema di autorizzazione durante l'esecuzione del comando dbschema, eseguire il login come cvp_dbadmin nel server di report e riprovare.
Passaggio 2. Dall'output, verificare che il comando Elimina da sia stato eseguito.