Questo documento offre informazioni sul sistema Cisco Unity Express (CUE). In particolare, questo documento offre un primer per la creazione di un'applicazione di operatore automatico personalizzata nel prodotto.
Per ulteriori informazioni su Cisco Unity Express, consultare la guida di Cisco Unity Express Script Editor. Questo documento è destinato agli amministratori che hanno bisogno di una guida di base per iniziare a utilizzare Cisco Unity Express Editor e per mantenere gli script all'interno del prodotto Cisco Unity Express.
Nota: il supporto di script personalizzati non è disponibile tramite il normale supporto tecnico Cisco. Per domande, commenti e informazioni su uno script personalizzato, inviare un'e-mail a ask-cue-editor@external.cisco.com.
Il lettore deve avere familiarità con l'amministrazione e la configurazione di Cisco Unity Express tramite l'interfaccia della riga di comando (CLI) o la GUI.
Cisco Unity Express Script Editor (CUEEditor2.1.1.exe) e lo script di esempio utilizzato in questo documento (CUE-AA-S6-ASample.zip) sono disponibili nell'Area di download del software Cisco Unity Express 2.1.1.
Le informazioni di questo documento si basano su Cisco Unity Express versione 2.1.1. L'esempio contiene passaggi disponibili solo in Cisco Unity Express 2.1.1. Sebbene molti dei principi siano gli stessi per le versioni precedenti. Nel presente documento sono esplicitamente indicate le fasi specifiche della versione 2.1.1.
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.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Il prodotto Cisco Unity Express di base viene fornito con una segreteria telefonica e un operatore automatico di base (in Cisco Unity Express 2.1.1 e versioni successive, sono disponibili due script per l'operatore automatico). Molti clienti considerano l'operatore automatico standard troppo limitato. Cisco Unity Express dispone di un editor di script che consente la creazione di script personalizzati. Questi script personalizzati possono essere caricati in Cisco Unity Express e sostituire (o aggiungere) l'operatore automatico standard.
Avvertenza: lo script di esempio mostrato di seguito ha scopo illustrativo. Può essere modificato in qualsiasi modo. L'obiettivo di questo documento è illustrare il processo di progettazione e implementazione di uno script personalizzato. Non è destinato a fornire uno script di produzione finito. Tuttavia, se si sceglie di utilizzare questo script, registrare almeno ogni prompt. È possibile ascoltare i file audio allegati per ascoltarli. Utilizzare il sistema di amministrazione via telefono (AVT)/Greetings Management System.
Nota: al momento non è possibile ottenere una copia degli script di sistema utilizzati da Cisco Unity Express. Questi script contengono passaggi non supportati dall'editor di script standard. Gli script di sistema di Cisco Unity Express 2.1.1 sono aa.aef, voicebrowser.aef, setmwi.aef, promptmgmt.aef, checkaltgreet.aef, xfermailbox.aef e asimple.aef.
L'editor di script è uno strumento che consente di creare script su un PC separato da Cisco Unity Express. Una volta creati, gli script vengono caricati e configurati su Cisco Unity Express.
In questo elenco vengono illustrati alcuni termini di base che consentono di comprendere meglio i concetti esposti nel presente documento.
Passo (Step) - Il blocco di base per la creazione di script. Ogni passaggio rappresenta l'unità eseguibile di base, ad esempio un'istruzione "if", un'istruzione "Goto" e così via.
Script - Uno o più passi eseguiti in sequenza. Uno script è un file con estensione .aef.
Variabile - Si tratta di variabili in uno script. Le variabili possono essere di tipo diverso, ad esempio Integer, Boolean, String e così via.
Parametro: proprietà di una variabile in modo che la variabile venga esposta all'amministratore tramite l'interfaccia Web di Cisco Unity Express. Ad esempio, se si desidera assegnare il valore 1000 per impostazione predefinita a una variabile OperatorExtension, a volte è necessario modificarla in 2000. In questo caso, la variabile viene esposta tramite l'interfaccia Web in modo che non sia necessario caricare nuovamente l'intero script in Cisco Unity Express ogni volta che il valore deve essere modificato.
Prompt - File con estensione wav che è possibile riprodurre. Può essere caricato manualmente nel sistema Cisco Unity Express o registrato tramite il sistema di amministrazione telefonica (AVT) (prima della versione 2.1.1, l'AVT era chiamato Greetings Management System (GMS)). Tutti i prompt utente caricati vengono collocati nella stessa directory. Sono visibili nella GUI tramite la voce di menu Voicemail > Prompts o nella CLI tramite il comando show ccn prompts.
In uno script, i prompt utente sono specificati come P[<promptname>]. I prompt del sistema sono preregistrati e possono essere utilizzati. Vengono specificati come SP[<promptname>]. L'Appendice 1 elenca i prompt di sistema disponibili.
Applicazione: si tratta dello script con tutti i prompt e i parametri compilati. Per impostazione predefinita, Cisco Unity Express viene fornito con la segreteria telefonica, il sistema AVT e una semplice applicazione Auto Attendant, tutte configurate quando si esegue l'Inizializzazione guidata al termine di un'installazione.
Trigger: il trigger indica a Cisco Unity Express che è necessario eseguire una particolare applicazione. Ad esempio, quando si compone il numero 1000, il sistema telefonico (Cisco CallManager o Cisco CallManager Express ) instrada la chiamata a Cisco Unity Express. Quando Cisco Unity Express rileva che è stata effettuata una chiamata al numero 1000, cerca un trigger per l'estensione. Viene quindi avviata l'applicazione corrispondente. In altre parole, sa se una chiamata al 1000 deve andare alla segreteria telefonica, all'operatore automatico, o qualcos'altro. È possibile avere più trigger per la stessa applicazione. Per impostazione predefinita vengono aggiunti diversi trigger, ad esempio i trigger per la segreteria telefonica, la tecnologia AVT e l'operatore automatico predefinito.
Una volta compresa la terminologia, lo strumento di amministrazione Web di Cisco Unity Express risulta di più facile comprensione.
Dalla pagina Web di Cisco Unity Express, l'opzione Operatore automatico nella categoria Casella vocale si riferisce alle applicazioni definite nella terminologia. Ogni voce contiene il numero associato all'applicazione, lo script a cui fa riferimento, i parametri associati allo script, se l'applicazione è abilitata o meno e il numero di porte associate.
Gestione chiamate attualmente contiene solo i numeri associati per la segreteria telefonica, l'operatore automatico incorporato e il sistema AVT. In Cisco Unity Express 2.1 e versioni successive, in Amministrazione > Numeri di chiamata è disponibile una visualizzazione aggiuntiva di tutti i trigger, sia JTAPI (per Cisco CallManager) che SIP (per Cisco CallManager Express o modalità SRST). Al momento, l'unico modo per vedere se sono configurati più trigger che puntano alla stessa applicazione è con il comando show ccn trigger emesso nella CLI.
L'opzione Prompts fa riferimento ai file audio (.wav) presenti nel sistema.
La selezione Script fa riferimento ai file con estensione aef che è possibile archiviare nel sistema. Al momento, oltre agli script di sistema, è possibile caricare fino a quattro script.
Dalla CLI, queste informazioni sono facilmente disponibili usando i comandi show ccn. Questo output rappresenta parti di ciascun output del comando:
cue-3745-44a> show ccn application Name: customaa Description: customaa Script: customaa.aef ID number: 4 Enabled: yes Maximum number of sessions: 8 OperatorExtension: 205 MainMenu: MainMenu.wav ClosedGreeting: ClosedGreeting.wav InvalidExt: InvalidExt.wav MaxRetries: 3 MaxExtension: 205 SorryGoodbye: SorryGoodbye.wav EnterExtension: EnterExtension.wav namePrompt: namePrompt.wav MinExtension: 200 ... cue-3745-44a> show ccn prompts Name: MainMenu.wav Language: de_DE Last Modified Date: Wed Dec 22 03:34:57 GMT+00:00 2004 Length in Bytes: 121978 Name: EnterExtension.wav Language: de_DE Last Modified Date: Wed Dec 22 03:34:26 GMT+00:00 2004 Length in Bytes: 21338 Name: SorryGoodbye.wav Language: de_DE Last Modified Date: Wed Dec 22 03:34:02 GMT+00:00 2004 Length in Bytes: 17658 Name: ClosedGreeting.wav Language: de_DE Last Modified Date: Wed Dec 22 03:33:00 GMT+00:00 2004 Length in Bytes: 86138 Name: InvalidExt.wav Language: de_DE Last Modified Date: Wed Dec 22 03:47:07 GMT+00:00 2004 Length in Bytes: 29818 Name: namePrompt.wav Language: de_DE Last Modified Date: Wed Dec 22 03:40:28 GMT+00:00 2004 Length in Bytes: 22618 ... cue-3745-44a> show ccn trigger Name: 18955 Type: SIP Application: customaa Locale: systemDefault Idle Timeout: 10000 Enabled: yes Maximum number of sessions: 8 ...
L'output dell'applicazione show ccn visualizza il nome dell'applicazione, lo script a cui fa riferimento, se è abilitato o meno e il numero di chiamate simultanee che può gestire, insieme a tutti i parametri dello script con i relativi valori.
Il comando show ccn prompts elenca tutti i comandi, la lingua, le dimensioni e la data di modifica.
Le informazioni sul trigger show cn forniscono il numero ("Nome"), l'applicazione che chiama, lo stato (abilitato/disabilitato) e il numero di sessioni.
Utilizzare Script Editor (solo utenti registrati) per creare un nuovo script. Deve essere installato su un PC separato.
Nella stessa posizione sono presenti diversi script di esempio. Questi script consentono di apprendere come eseguire operazioni specifiche in uno script. Cisco consiglia di installare l'editor e scaricare alcuni script di esempio per familiarizzare con il funzionamento dell'editor.
Una volta avviato Script Editor, è possibile aprire uno script come illustrato nell'immagine seguente:
Il riquadro Tavolozza contiene cartelle con ogni passaggio, suddivise in categorie in base alla funzione principale. Da qui, trascinare i passaggi sul riquadro Normale per creare uno script. Nel riquadro Variabile è possibile creare e modificare variabili. Dopo aver trascinato un passaggio nel riquadro Normale, è possibile fare clic con il pulsante destro del mouse su un passaggio, selezionare Proprietà e personalizzare il passaggio e le variabili assegnate al passaggio. Prima di caricare uno script in Cisco Unity Express, è necessario convalidarlo sempre tramite l'opzione Strumenti > Convalida. Nel riquadro Debug viene quindi visualizzato l'output degli errori.
Una delle cose più utili da ricordare quando si utilizza l'editor è la funzione Help. È possibile accedervi direttamente tramite il menu? sulla barra degli strumenti oppure quando si seleziona una determinata proprietà del passaggio.
È possibile utilizzare il menu? per acquisire familiarità con alcuni passaggi. In Script Editor, trascinare alcuni passaggi dalla tavolozza al riquadro di progettazione, fare clic con il pulsante destro del mouse su di esso e selezionare Proprietà. Quindi, fare clic sul pulsante Help (Guida) e visualizzare la Guida relativa a quel particolare passaggio.
In questo documento viene descritta la creazione di uno script di esempio. Nel documento vengono inoltre illustrati alcuni dei problemi più comuni che gli utenti cercano di risolvere quando creano un operatore automatico personalizzato. L'obiettivo è quello di creare uno script che risponda a una chiamata, verifichi se c'è un saluto alternativo di emergenza e se l'ora corrente è il normale orario di lavoro o meno. Se è chiuso, ascoltare un messaggio di saluto personalizzato e inviare la chiamata all'operatore. Se è aperto, riprodurre un menu che consenta al chiamante di comporre 1 per la composizione per nome, 2 per la composizione per estensione o 0 per un operatore. L'opzione dial-by-extension deve trasferire la chiamata solo a un intervallo specificato e non a un numero che è possibile immettere.
Avvertenza: l'esempio utilizzato in questo documento ha solo scopo illustrativo. Anche se sei libero di utilizzare qualsiasi porzione ti piace, probabilmente non corrisponde esattamente alla situazione della tua azienda. Soprattutto nelle aree della gestione degli errori, questo script non è molto utile.
Nota: oltre agli script di esempio disponibili all'indirizzo www.cisco.com, il CD di Cisco Unity Express contiene uno script simile a quello utilizzato in questo documento, denominato aa_sample1.aef. È molto simile al normale Operatore automatico di spedizione (precedente alla 2.1). Se si prevede di utilizzare lo script predefinito come punto di partenza, utilizzare questo script anziché il file aa.aef che si trova quando si installano alcune versioni di Script Editor.
Cisco Unity Express supporta attualmente l'integrazione con Cisco CallManager o Cisco CallManager Express. Anche se lo script stesso non cambia, il metodo di integrazione può produrre alcune lievi differenze. Quando si esegue un passaggio di reindirizzamento, che trasferisce logicamente la chiamata da Cisco Unity Express a un'estensione esterna, questo metodo di integrazione è fondamentale. Quando integrato con Cisco CallManager Express, che è lo stesso per un'integrazione Cisco CallManager attualmente in modalità SRST, la segnalazione viene effettuata tramite SIP sotto forma di messaggio BYE/also. Ciò significa che un reindirizzamento blocca la chiamata a Cisco Unity Express e indica al router Cisco CallManager Express/SRST di connettere il chiamante all'estensione specificata nella parte "also:" del messaggio BYE. Se l'estensione non è valida o non è raggiungibile, il chiamante può essere eliminato. Infatti, Cisco Unity Express non ha modo di recuperare la chiamata e ricevere una notifica del mancato trasferimento. È un vero trasferimento alla cieca. Se la chiamata viene reindirizzata a un numero non registrato, occupato o a un'estensione che non risponde, vengono applicate le regole di inoltro di chiamata normali valide per tale numero di directory. Cisco Unity Express non fa più parte della chiamata. Ciò significa anche che quando si inseriscono nello script i passaggi di reindirizzamento, attualmente non vi è molto di un vantaggio quando si aggiunge il codice per gestire reindirizzamenti occupati/non validi/non riusciti, poiché il reindirizzamento stesso equivale a una disconnessione. Non c'è nessun caso di fallimento possibile.
Per le integrazioni di Cisco CallManager, Cisco Unity Express comunica tramite JTAPI (Java Telephony Application Programming Interface). In questo modo è possibile eseguire passaggi di reindirizzamento occupati/non validi/non riusciti. Aggiungere quindi codice allo script per gestire tali situazioni. Quando tutti i Cisco CallManager diventano irraggiungibili e il sistema entra in modalità SRST, viene utilizzata la segnalazione SIP descritta in precedenza in questo documento. Pertanto, tutte le limitazioni descritte in questo documento sono valide.
Prima di iniziare con uno script di produzione, è essenziale mappare l'intero flusso di chiamata. Nell'esempio si supponga che tutte le estensioni siano comprese nell'intervallo 200-299. Il punto importante è che iniziano tutte con 2. In questo esempio è disponibile una procedura simile alla seguente:
Risponda alla chiamata.
Verificare se è presente un messaggio di saluto alternativo. Se c'è, giocatelo.
Controlla se è una vacanza. In tal caso, ascoltare un messaggio di auguri e passare al menu principale.
Controllare se è durante o dopo l'orario di lavoro e riprodurre il rispettivo saluto (aperto/chiuso). Passare al menu principale.
Il menu principale deve riprodurre un prompt e consentire agli utenti di immettere un'estensione in qualsiasi momento se lo conoscono. È consentito immettere 1 se si desidera cercare un utente nella directory oppure 0 se si desidera raggiungere l'operatore. Poiché tutte le estensioni utente valide iniziano con 2, immettere 2 diramazioni nella sezione dial-by-extension.
La composizione per nome cerca gli utenti e li trasferisce. Se si immette zero, l'utente viene trasferito all'operatore.
L'opzione dial-by-extension tenta immediatamente di raccogliere altre due cifre. Se si immette un numero inferiore di voci, si torna al menu principale. Se ne vengono raccolti due, tenta di cercare l'utente. L'utente viene trasferito a tale estensione se l'utente esce, altrimenti l'utente passa al menu principale.
Il trasferimento alla funzione operatore trasferisce la chiamata. Se per qualche motivo non funziona, torna al menu principale.
Sequenza di gestione degli errori aggiuntiva per diversi problemi, ad esempio trasferimenti non riusciti multipli, che indica all'utente di riprovare in seguito e di disconnettersi.
Si può fare molto per la gestione degli errori. Per un'implementazione reale, probabilmente aiuta a mappare l'intero flusso di chiamate (inclusa la gestione degli errori e ogni interazione o scelta dell'utente) in un diagramma di flusso.
Immettere lo script in Script Editor.
Tutti gli script iniziano con un passaggio Start. La prima cosa da fare è Accettare la chiamata. Dopodiché, eseguite un prompt (DP[500]) che equivale a una pausa di 0,5 secondi. In alcune situazioni, il cut-through audio alla PSTN (Public Switched Telephone Network) non avviene rapidamente. Riprodurre qualcosa prima e "reale" saluto in modo da evitare qualsiasi ritaglio percepito al saluto. Di seguito viene riportato un passaggio Vai a On Exception. In questo modo viene cercata qualsiasi eccezione di tipo "UndefinedPromptException" al momento dell'esecuzione dello script. Questa particolare eccezione si verifica quando il passo tenta di eseguire un prompt che non esiste. Questo si verifica solo se la proprietà "Continua su errori prompt" del passo che esegue il prompt è impostata su No. Se è impostata su Sì, non viene eseguito alcun prompt e non viene generata alcuna eccezione. L'utilizzo di questo passaggio Su eccezione Vai a garantisce che, se viene cancellato un prompt critico che può essere amministrato dall'amministratore (come il menu principale), è possibile accedere a una sezione in cui è possibile accedere all'etichetta "Spiacente" per chiedere all'utente di riprovare in seguito. Quindi, chiamare un flusso secondario, checkAltGreet.aef. Questo è uno script di sistema, che è sempre presente. Verifica l'esistenza del file AltGreeting.wav. Se esiste, lo riproduce. In caso contrario, viene restituito il flusso secondario. Questo è utile in quanto è possibile utilizzarlo in combinazione con il GMS (ora chiamato sistema AVT) per riprodurre un saluto di emergenza di qualche tipo prima del messaggio regolare. Per ulteriori informazioni su questa funzione, consultare il documento sulla configurazione e l'utilizzo del sistema di gestione dei messaggi di saluto e del messaggio di saluto alternativo di emergenza per Unity Express. Non è possibile stabilire se il messaggio di saluto alternativo viene effettivamente riprodotto (o verifica l'esistenza di un file nel repository locale). Non è necessario utilizzarlo all'inizio di uno script. In base all'applicazione, è possibile utilizzare la funzionalità di saluto alternativo di emergenza per registrare, ad esempio, messaggi di auguri relativi alle festività. Anziché chiamare questo flusso secondario, chiamarlo solo se si tratta di una vacanza. In questo modo gli amministratori del sito possono registrare i messaggi di saluto per le festività tramite l'interfaccia utente di telefonia senza dover accedere al sistema tramite un browser o la CLI (per rinominare i prompt o per assegnarli a variabili script).
Decidere quale prompt di apertura riprodurre. Se si tratta di una vacanza, riprodurre il messaggio di saluto. Se il messaggio di saluto viene visualizzato durante l'orario di lavoro (configurabile tramite le pianificazioni dell'amministratore Web di Cisco Unity Express), riprodurre il messaggio di saluto iniziale (che può essere semplicemente un ringraziamento per aver chiamato Cisco Systems), altrimenti riprodurre il messaggio di saluto chiuso. Indipendentemente da quale si esegue, si passa direttamente al menu principale.
Nota: i passi "Festa" e "Orario di ufficio" sono specifici della versione 2.1.1 e successive. Per le versioni precedenti di Cisco Unity Express, l'unica opzione è utilizzare il passaggio "Ora del giorno". Ciò non consente di riprodurre saluti diversi in base al giorno o alla data. Si basa solo sul tempo.
Accedere alla sezione Main Menu (Menu principale). Poiché gran parte della gestione degli errori invia il chiamante al menu principale, viene aggiunto un contatore. I "tentativi" del contatore vengono confrontati con "MaxRetries", un'altra variabile configurabile dall'utente (3 per impostazione predefinita). Se il contatore è raggiunto, scusarsi e trasferire il chiamante all'operatore ("Ci scusiamo per i problemi. Attendere per un operatore.").
Il passaggio Menu riproduce un prompt di base ("Se si conosce l'estensione del party, comporre in qualsiasi momento. Per il controllo ortografico del nome premere 1, per un operatore premere 0, per ripetere queste opzioni premere 9."). In questo caso, poiché si esegue il prompt registrato, il parametro Numero massimo di nuovi tentativi in questo passo viene modificato in 0. Questa operazione viene eseguita in tutti i casi in cui è disponibile un'opzione per eseguire questa operazione. Il motivo è che se è diverso da 0, si sente il prompt del sistema "ci sei ancora?" ogni volta che si raggiunge il timer di scadenza e si dirama nella diramazione Timeout. La diramazione Non riuscito viene raggiunta quando un utente preme un valore diverso da 1, 2, 9 o 0. In questo caso, viene visualizzato un prompt "L'estensione immessa non è valida" e si esce dal passaggio in cui si incrementa il contatore tentativi e si torna al menu principale.
Nota: per garantire che l'audio si arresti non appena si immette una cifra in passi multimediali (come Menu o Prompt di riproduzione), è necessario controllare il campo Barra in nella scheda Prompt del passo. Il campo Interrompibile (nella scheda Generale) viene utilizzato per altre interruzioni di fase che attualmente non sono applicabili a Cisco Unity Express.
Viene aggiunta una singola sezione di gestione degli errori. Nella sezione "Spiacenti" viene visualizzato un messaggio ("Impossibile trasferire la chiamata in questo momento. Riprova più tardi. Arrivederci."). La chiamata viene quindi interrotta.
È sempre possibile utilizzare una formula di apertura di sistema anziché queste variabili personalizzate. I prompt del sistema hanno sempre la notazione SP[] mentre i prompt dell'utente utilizzano la notazione P[]. Non è possibile assegnare un prompt di sistema a una variabile di prompt quando la si definisce (nel riquadro della variabile poiché questi sono valori utente per definizione). Una volta definito, nello script è possibile assegnare un prompt di sistema a una variabile mediante il passo Imposta (o uno qualsiasi dei passi Crea prompt).
Un modo per effettuare la composizione per nome consiste nel scaricare l'esempio (S4_DialByName) da Cisco.com, caricarlo come script separato in Cisco Unity Express e quindi aggiungere un passaggio del flusso secondario di chiamata per richiamarlo. In questo caso il passo viene inserito direttamente nello script e viene discusso in dettaglio. Il passaggio NameToUser consente solo di configurare una delle relative richieste ("Digitare il cognome della persona da chiamare, seguito dal nome per la lettera Q premere 7 e per la lettera Z premere 9"). Non è possibile eliminare tutti i prompt del sistema. Per ridurli a icona, è necessario disabilitare il tasto Cancel (predefinito *). Se è presente, il sistema aggiunge un messaggio "per ricominciare, premere asterisco" alla fine del prompt registrato. In secondo luogo, impostare Numero massimo di tentativi su zero, in modo che i messaggi "Please try again" e "are you still there" non possano essere visualizzati. Tieni sempre traccia del numero di tentativi con una variabile contatore separata che aggiungi. Esiste ancora un prompt di sistema che non può essere eliminato. È la richiesta di più corrispondenze ("È stato trovato più di un nome. Selezionare una delle seguenti opzioni..."). Il passo Nome per utente termina sempre come Riuscito, Timeout, Non riuscito o Operatore (se selezionato nelle proprietà del passo). Ad eccezione della diramazione Riuscito e Operatore, si esce dal passo Menu. Ciò significa che si incrementa il contatore dei tentativi e si torna al menu principale. In base alla situazione, è possibile disporre di un contatore dei tentativi separato e aggiungere un passaggio per tornare all'etichetta DialByName in modo che ripeta l'azione già selezionata.
Nota: un difetto della release 2.1.1 che deve essere preso in considerazione è l'ID bug Cisco CSCeg81385 (solo utenti registrati). Quando il valore di Numero massimo di tentativi nel passaggio NameToUser è impostato su zero o su uno, è necessario utilizzare un carattere di terminazione. Senza il carattere di terminazione, non si passa alla sezione "Riuscito" di questo passaggio. Invece va sempre a "Timeout", anche se c'è una corrispondenza.
Se l'utente non immette un'estensione che può essere mappata a un nome, il ramo delle estensioni non riuscite controlla un nuovo contatore (SpellByNameAttempts) in MaxRetries. Si supponga che lo stesso numero massimo di tentativi per accedere al menu principale debba essere applicato alla funzione di controllo ortografico per nome. È possibile aggiungere una variabile separata se queste devono essere diverse.
Se il passaggio NameToUser viene completato correttamente, viene immessa almeno una cifra e viene selezionato il cognome di un singolo utente come definito in Cisco Unity Express (la diramazione Timeout viene raggiunta solo se non vengono immesse cifre). Per accertarsi che l'estensione sia univoca, verificare che sia possibile mappare nuovamente l'estensione all'utente. A tale scopo, eseguire il passaggio ExtensionToUser. Questo passaggio viene aggiunto in Cisco Unity Express 2.1.1. In precedenza, non era possibile, con un'estensione, verificare che fosse mappato a un utente reale nel sistema di segreteria telefonica. Il metodo migliore consiste nell'impostare alcune variabili da confrontare, ad esempio aggiungendo il passaggio "If (TransferExt < MinExtension) || (TrasferisciEst > EstensioneMax)..." o qualcosa di simile.
Qui vedete lo script dopo aver mappato nuovamente l'estensione all'utente. In caso contrario, viene visualizzato un messaggio che indica che l'estensione non è valida. Di solito non c'è estensione per qualche motivo. Nel caso di Cisco CallManager Express, ciò può significare che si interrompe se si tenta di trasferire la chiamata. Ciò può causare una leggera confusione poiché il chiamante ha già selezionato un utente. Tuttavia, si tratta chiaramente di una condizione di errore di cui si desidera essere a conoscenza. Se il mapping dell'estensione a un utente ha esito positivo, verificare innanzitutto se il nome registrato è stato assegnato a tale utente. La variabile spokeName viene inserita quando si cerca tale utente. Impostare quindi la variabile di prompt su Calling più il valore di spokeName. In caso contrario, impostarla su Calling Extension più l'estensione scritta dell'utente. È anche possibile digitare il nome (riprodurre S[nome] nel prompt). Nessun nome registrato da riprodurre. L'ortografia del sistema, ad esempio l'ortografia di un nome o di un'estensione, viene sempre eseguita nella voce del sistema e non può essere personalizzata. Il passo Conferma implicita visualizza il prompt appena creato. Se l'utente non digita alcun testo, viene eseguito l'accesso alla sezione "Sì" e la chiamata viene reindirizzata. In caso di problemi, nel caso dell'integrazione di Cisco CallManager, viene riprodotto un messaggio di saluto e il chiamante viene rimandato al menu principale. Se il chiamante immette qualcosa, genera un altro prompt. In questo caso, il prompt inizia con il nome parlato o con una versione scritta del nome dell'utente (passaggio Crea prompt condizionale). Seguire da una pausa e un prompt "se questo è il nome della persona che si sta chiamando, premere 1". L'utente può premere 1 per yes, 2, * o wait. Il sistema li invia alla sezione spell-by-name o all'operatore. Dipende dal numero di volte in cui sono passati attraverso il sistema.
La sezione di composizione per estensione contiene già la prima cifra ("2" in questo esempio). Impostare la variabile prefixDigit su 2. È possibile modificare facilmente questa impostazione in base alla cifra iniziale (o se sono presenti più cifre iniziali possibili). Nessuna cifra iniziale può essere uguale a un'altra opzione del menu, ad esempio 1, utilizzata per la composizione per nome in questo esempio. La stringa Get Digit raccoglie anche un numero fisso di cifre (due in questo caso). Pertanto, il numero totale di cifre deve essere fisso. Se le estensioni valide iniziano con 2 o 3, è possibile aggiungere un passaggio "Set prefixDigit = "3"" all'opzione 3 del passaggio Menu seguito da un passaggio Goto DialByExtension.
Poiché in questo ambiente sono presenti estensioni a tre cifre, il parametro Get Digit String step Input length è 2. Non sono presenti caratteri di terminazione né chiavi di annullamento. Il numero massimo di tentativi è 0. Se un utente non immette un'estensione valida, lo script incrementa il numero di tentativi e torna al menu principale. Il passaggio non riproduce alcun audio (Prompt è P[]) poiché l'utente è già al centro delle cifre di composizione.
Quando due cifre vengono raccolte correttamente, anteporre il prefissoDigit ("2" in questo caso) già composto (che consente di diramare dal passaggio Menu). L'oggetto TransferExt risultante passa quindi al passaggio Estensione all'utente, che verifica se l'utente è valido. In caso affermativo, creare un prompt con l'estensione specificata. Nel passo Conferma implicita, eseguire il prompt "interno chiamante" seguito dall'estensione. Cercare l'utente e riprodurre il nome parlato, come è stato fatto in DialByName. Tuttavia, in questo caso non è necessario. Se non viene composta alcuna cifra, si supponga che si tratti dell'estensione che il chiamante desidera raggiungere e reindirizzare la chiamata. In caso contrario, tornare al menu principale. Lo scopo del passo DP[250] di Play Prompt è quello di eliminare qualsiasi altro input, in quanto il passo Stringa cifra non dispone di alcun carattere di terminazione configurato. L'idea è che si vuole che questo funzioni se qualcuno digita l'estensione "200" o "200#". Se si immette il simbolo # durante l'esecuzione del passo Conferma implicita, il simbolo viene spostato nella parte No di tale passo. In alcuni casi, probabilmente non è necessario eseguire un passaggio di conferma implicita, ma piuttosto reindirizzare immediatamente la chiamata. A scopo illustrativo, questi passaggi vengono lasciati in.
Riprodurre una richiesta "Trasferimento chiamata" e quindi reindirizzarla all'estensione dell'operatore configurata. In caso di errore, si dispone di un contatore separato che viene incrementato e si torna al menu principale. Il motivo è che si desidera avere un metodo per dare all'operatore un po 'di tempo per scendere dal telefono o registrare di nuovo in modo da poter provare a trasferirsi di nuovo a loro. Dopo alcuni tentativi (in questo esempio il codice a livello di codice 3), si passa all'etichetta "Mi dispiace", che elimina la chiamata.
In molti casi gli script possono non riuscire. Una delle aree più comuni in uno script ben progettato è quando mancano i prompt dell'utente. Quando il sistema tenta di riprodurre un prompt che non esiste, possono verificarsi diverse situazioni. Innanzitutto, se il passo che esegue il prompt ha "Continua agli errori del prompt" impostato su Sì. Passa al passaggio successivo e non riproduce il prompt. Se l'opzione Continua a errori di prompt è impostata su No, viene generata un'eccezione. Nella maggior parte dei casi si tratta dell'eccezione "UndefindedPromptException", ovvero il prompt non viene trovato o non è mai configurato. Quando si dispone di un passaggio On Exception Goto, è possibile intercettare questa eccezione e diramare a una sezione di codice che può riprodurre un messaggio di sistema o un'altra forma di audio. Poiché il passo Su eccezione Vai a si applica a tutto l'audio che viene riprodotto nell'intero script (non potete definire un passo Su eccezione Vai a separato per ogni prompt riprodotto), il modo migliore per gestire questo passaggio è impostare una variabile di codice di errore immediatamente prima di riprodurre il prompt. In questo modo, è possibile creare una diramazione, intraprendere un'azione in base a quel codice di errore, e poi tornare indietro.
Ad esempio, è possibile modificare lo script con:
È stata aggiunta l'etichetta "Maxretries". Questo viene usato per tornare nello stesso posto. Impostare una variabile ErrorCode su Maxretries. Nel passaggio Riproduci prompt, assicurarsi che l'opzione Continua al prompt degli errori sia impostata su No. Aggiungere quindi una sezione in grado di gestire questa condizione. Verificare che ErrorCode corrisponda a "Maxretries", quindi impostare la variabile LikeProblems (che si è tentato di riprodurre in precedenza) sul messaggio di sistema Ci scusiamo per il problema. Per favore, rimanete in linea e alcuni saranno con voi a breve. Passare quindi all'etichetta Maxretries in modo che possa essere riprodotta.
L'ultimo passaggio consiste nel modificare il messaggio On Exception Goto per cercare l'errore UndefinedPromptException:
Questo passaggio può essere inserito in qualsiasi punto dello script. Tuttavia, di solito è posto all'inizio o vicino all'inizio. È possibile eseguire diversi passaggi per riprodurre i prompt. I prompt di sistema sono elencati nella parte inferiore di questo documento.
È possibile utilizzare questo metodo anziché chiamare il sottoflusso checkAltGreet.aef. È necessario riprodurre il file AltGreeting.wav. Se si verifica un errore, gestirlo. Il vantaggio è che sapete quando gioca o non gioca.
Anche se meno comuni, queste sono le altre eccezioni alla richiesta:
EccezionePromptNonDefinita
EccezionePrompt
GeneratorePromptNonDefinito
EccezioneArgomentoRichiestaNonValido
EspressionePrompt non supportata
Al momento non è possibile reindirizzare la chiamata direttamente a una casella vocale. Deve essere inviato a un numero che inoltra alla segreteria. Può trattarsi di un numero fittizio in Cisco CallManager Express (o anche in Cisco CallManager) configurato per inoltrare tutto impostato sul numero pilota della segreteria telefonica. Utilizzare le impostazioni del numero Cisco Unity Express/e.164 per far corrispondere il numero a un destinatario predefinito o a un gruppo. Trasferisci un chiamante direttamente in una cassetta postale di Unity Express spiega come eseguire questa operazione.
È necessario creare tutte le variabili utilizzate in uno script prima di poterle utilizzare. Se si utilizza un file e successivamente lo si elimina, selezionare Strumenti > Convalida in Script Editor per individuarlo. Per questo script di esempio, queste sono le variabili utilizzate. Notare Nome, Tipo, Valore (che è inizialmente il valore della variabile) e Attributo. L'attributo Parameter indica che la variabile è esposta all'amministratore tramite la pagina Web. Qualsiasi elemento che si desidera venga personalizzato dall'amministratore di Cisco Unity Express deve disporre dell'attributo Parameter.
Se non si desidera registrare tutti questi prompt personalizzati, è possibile modificarli e deselezionare l'attributo Parameter in modo che non vengano visualizzati tramite la pagina Web. Per assicurarsi che il sistema funzioni ancora, aggiungere diversi passi Set all'inizio dello script. Ad esempio, impostare 'Calling' su 'SP[A/AACalling]'. Non tutti i prompt visualizzati dispongono di script di sistema corrispondenti. Nella maggior parte dei casi, ha senso registrarli personalmente. Se i prompt non vengono modificati, è possibile registrarli una volta, verificare che esistano nel sistema Cisco Unity Express con un determinato nome file e quindi rimuovere l'attributo Parameter dalla variabile. In questo modo, il prompt riproduce un nome di file fisso. Tuttavia, la variabile non viene esposta tramite l'interfaccia Web in cui un amministratore può modificarla accidentalmente.
In genere, il primo passaggio per aggiungere una nuova applicazione e uno script a Cisco Unity Express è caricare le richieste. Questa operazione è importante perché i prompt devono esistere sul sistema per poter essere configurati nei parametri dello script. In caso contrario, è necessario lasciare vuoti i parametri, caricare i prompt, quindi tornare indietro e modificare i parametri dello script. Per ulteriori informazioni su come registrare e caricare le richieste, consultare il documento sull'amministrazione via telefono (AVT)/Greetings Management System.
Dopo aver salvato lo script e averlo provato, è necessario prima caricarlo in Cisco Unity Express. Il modo più semplice consiste nell'utilizzare la GUI, poiché non richiede un server FTP da cui caricare i file di script.
Attenersi alla seguente procedura:
Accedere alla GUI di Cisco Unity Express con un account che disponga di diritti amministrativi.
Selezionare Segreteria telefonica > Operatore automatico.
Fare clic su Add.
Accanto a "Script operatore automatico selezionato", fare clic sul pulsante Carica.
Fare clic su Sfoglia.
Individuare il file script, selezionarlo e premere OK.
Se si desidera modificare il nome del file di destinazione, eseguire questa operazione. In caso contrario, premere Upload.
Immettere il nome di un'applicazione. Può essere scritto in minuscolo e viene utilizzato per fare riferimento all'applicazione associata al file di script.
Fare clic su Next (Avanti).
Nella pagina vengono ora visualizzate tutte le variabili per lo script contrassegnate come parametri. Ciò significa che possono essere configurati in questa pagina. Se i file dei prompt non sono ancora stati caricati, è possibile esaminare prima questa procedura e quindi immettere le informazioni in un secondo momento.
Fare clic su Avanti una volta terminata l'immissione dei parametri dello script.
Verificare che l'applicazione sia contrassegnata come Abilitata, configurare il numero massimo di chiamate simultanee (il valore predefinito è il numero massimo consentito dalla licenza) e immettere un numero di chiamata in ingresso.
Questo è il numero richiamato per cui questa particolare applicazione deve essere richiamata (trigger). Può trattarsi del numero dell'operatore automatico principale o di un numero temporaneo. È inoltre possibile ignorare questo elemento e compilarlo in un secondo momento. Senza un numero di chiamata non è possibile eseguire il test o l'avvio di uno script.
Nota: per le integrazioni di Cisco CallManager con il supporto SRST, è necessario immettere più numeri di chiamata. Prima di Cisco Unity Express 2.1.1, queste informazioni dovevano essere immesse dalla CLI. In Cisco Unity Express 2.1 è possibile immettere più numeri di chiamata (trigger) dalla schermata Amministrazione > Numeri di chiamata.
Fare clic su Fine.
Una volta caricato lo script e configurata l'applicazione, è necessario assicurarsi di poter instradare le chiamate all'applicazione. Ciò significa che è necessario configurare Cisco CallManager Express o Cisco CallManager. Con CallManager Express, questo implica la configurazione di un dial-peer che punta a Cisco Unity Express che corrisponde al modello (numero di trigger o numero di chiamata) configurato in Cisco Unity Express. In Cisco CallManager è necessario aggiungere un punto di routing CTI con questo numero. Non dimenticare che è necessario associare questo punto di routing CTI all'utente JTAPI con cui Cisco Unity Express esegue l'accesso. Questa configurazione potrebbe richiedere il riavvio di Cisco Unity Express. Dopo aver aggiunto il punto di instradamento e averlo associato all'utente, è possibile modificare lo script senza dover riavviare il sistema.
Quando si aggiorna uno script, se non vengono aggiunti o modificati parametri di variabile, è possibile accedere all'editor di Cisco Unity Express, fare clic su Segreteria telefonica > Script, Carica e selezionare lo script. Viene sovrascritto con tutti gli altri parametri configurati che rimangono invariati.
Quando create dei prompt, la cosa più semplice da fare è utilizzare il sistema AVT. I nomi di file registrati contengono anche indicatori di data e ora. Tuttavia, in Cisco Unit Express 2.1.1 e versioni successive, è possibile usare il comando cli ccn rename prompt. In precedenza, era necessario scaricare il prompt, caricarlo di nuovo con un nuovo nome, quindi eliminare il file wav originale. Ad esempio:
cue-3745-44a> show ccn prompts ... Name: UserPrompt_01032005170038.wav Language: en_US Last Modified Date: Mon Jan 03 17:00:38 EST 2005 Length in Bytes: 35098 cue-3745-44a> ccn rename prompt UserPrompt_01032005170038.wav MyPrompt.wav language en_US Warning! Any existing ccn applications that use this prompt will stop working until they are manually updated with the new prompt name. Continue? (y/n) y cue-3745-44a>
Quando si esegue la risoluzione dei problemi di uno script, è necessario chiamare e provare vari scenari, sia l'input regolare dell'utente, sia il timeout e le condizioni di errore previste.
Prima di caricare uno script, accedere sempre alla voce Strumenti > Convalida in Script Editor e verificare di ricevere il messaggio "Convalida completata". In caso contrario, tutti gli errori vengono visualizzati nel riquadro di debug. È possibile fare doppio clic su di essi per visualizzare la posizione dello script in cui si è verificata la condizione di errore.
Nella maggior parte dei casi, le tracce predefinite sono più che sufficienti per la risoluzione dei problemi. Per semplificare questa operazione, lasciare attive le tracce predefinite e usare la funzionalità di filtro per visualizzare ciò che serve.
Prima di qualsiasi test, eseguire il comando clear trace. In questo modo il buffer di memoria dei messaggi di analisi viene cancellato e la quantità di informazioni filtrate include solo i dati dopo l'esecuzione del comando.
Per l'esecuzione degli script, l'elemento più importante da filtrare è EXECUTING_STEP. In questo modo vengono visualizzati tutti i passi durante l'esecuzione. Ad esempio:
cue-3745-44a> clear trace cue-3745-44a> /*** NOW THE TEST CALL IS MADE ***/ cue-3745-44a> show trace buffer long | include EXECUTING_STEP 3119 12/28 17:05:33.955 ACCN APMG 0 EXECUTING_STEP:Executing a step: Application=App[name=customaa,type=Cisco Script Application,id=4, desc=customaa,enabled=true,max=8,valid=true,optional= [cfgVars=[Lcom.cisco.wfapi.util.WFNameValuePair;@14efaa66,script=customaa21.aef]], Task id=17,000,000,007,Step id=0,Step Class=com.cisco.wfframework.steps.core. StepStart,Step Description=Start ...
In questo esempio, alcune delle informazioni ridondanti vengono rimosse al centro e ritagliate all'inizio del timestamp. Nella maggior parte dei casi, le informazioni più importanti si trovano alla fine di ogni riga.
Nota: molte di queste righe di output vengono ridotte a una seconda e terza riga per motivi spaziali.
5:33.956 Step id=529,Step Class=com.cisco.wfframework.steps.core.StepComment, Step Description=/* Assumptions: User extensions ... */ 5:33.957 Step id=3,Step Class=com.cisco.wf.steps.ivr.AcceptStep,Step Description=Accept (contact: --Triggering Contact--) 5:33.977 Step id=129,Step Class=com.cisco.wf.steps.ivr.OutputStep,Step Description=Play Prompt (contact: --Triggering Contact--, prompt: DP[500]) 5:34.461 Step id=2,190,Step Class=com.cisco.wfframework.steps.core .StepOnExceptionGoto,Step Description=On Exception(UndefinedPromptException) Goto Error 5:34.463 Step id=1,649,Step Class=com.cisco.wfframework.steps.core .StepComment,Step Description=/* Check for Alternate Greeting. ... */ 5:34.464 Step id=1,650,Step Class=com.cisco.wfframework.steps.core .StepCallSubflow,Step Description=Call Subflow -- checkAltGreet.aef 5:34.467 Step id=0,Step Class=com.cisco.wfframework.steps.core.StepStart, Step Description=Start 5:34.468 Step id=78,Step Class=com.cisco.wf.steps.ivr.GetContactInfoStep, Step Description=Get Contact Info (contact: --Triggering Contact--) 5:34.469 Step id=79,Step Class=com.cisco.wfframework.steps.core .StepCreateHost,Step Description=aType = new com.cisco .aesop.AltGreetType(language) 5:34.473 Step id=56,Step Class=com.cisco.wfframework.steps.core .StepHost,Step Description=pExist = aType.isEnabled() 5:34.477 Step id=5,Step Class=com.cisco.wfframework.steps.core .StepIf,Step Description=If ( pExist == true 5:34.478 Step id=3,Step Class=com.cisco.wfframework.steps.core .StepEnd,Step Description=End 5:34.480 Step id=510,Step Class=com.cisco.wf.steps.ivr.HolidayStep, Step Description=Is Holiday (Date: --Current Date--) 5:34.487 Step id=512,Step Class=com.cisco.wf.steps.ivr.BusinessHoursStep, Step Description=Business Hours (date: --Current Date--, time: --Current Time--, schedule: BusinessSchedule) 5:34.527 Step id=1,659,Step Class=com.cisco.wfframework.steps.core .StepLabel,Step Description=Office Open: 5:34.529 Step id=1,660,Step Class=com.cisco.wf.steps.ivr.OutputStep, Step Description=Play Prompt (contact: --Triggering Contact--, prompt: OpenGreeting) 5:35.722 Step id=1,669,Step Class=com.cisco.wfframework.steps.core .StepLabel,Step Description=Main Menu: 5:35.723 Step id=732,Step Class=com.cisco.wfframework.steps.core .StepIf,Step Description=If ( attempts >= MaxRetries ) Then 5:35.724 Step id=2,195,Step Class=com.cisco.wfframework.steps.core .StepAssign,Step Description=Set ErrorCode = "mainmenu" 5:35.726 Step id=2,259,Step Class=com.cisco.wf.steps.ivr.MenuStep, Step Description=Menu (contact: --Triggering Contact--, prompt: MainMenu) 5:35.730 Step id=2,294,Step Class=com.cisco.wf.steps.ivr.ParseInputStep, Step Description=Get Digit String(contact: --Triggering Contact--, result digit string: TransferExt) 5:36.197 Step id=2,295,Step Class=com.cisco.wfframework.steps.core .StepAssign,Step Description=Set TransferExt = "2" + TransferExt 5:36.198 Step id=2,296,Step Class=com.cisco.wf.steps.ivr.ExtensionToAddressStep, Step Description=Extension To User (Extension: TransferExt, result user:user) 5:36.214 Step id=2,297,Step Class=com.cisco.prompt.steps.CreateGeneratedPromptStep, Step Description=Create Generated Prompt( telephone.number type, store in prompt ) 5:36.229 Step id=2,298,Step Class=com.cisco.wf.steps.ivr.ImplicitConfirmStep, Step Description=Implicit Confirmation (contact: --Triggering Contact--) 5:41.971 Step id=2,301,Step Class=com.cisco.wf.steps.ivr.RedirectStep, Step Description=Call Redirect (contact: --Triggering Contact--, extension: TransferExt)
A questo punto è possibile visualizzare ogni passaggio durante l'esecuzione. Non è possibile visualizzare la valutazione delle espressioni né l'input dell'utente. Se lo script davanti a voi, potete seguire dove lo script si dirama, con la conoscenza delle cifre che avete immesso (in questo caso, l'utente digita, compone un'estensione e viene trasferito).
Usate un filtro per vedere le cifre.
cue-3745-44a> show trace buffer long | include "process digit" 3119 12/28 17:05:35.728 ACCN CMTS 0 process digit 2 tag=2 3119 12/28 17:05:35.943 ACCN CMTS 0 process digit 0 3119 12/28 17:05:36.195 ACCN CMTS 0 process digit 1
Da questo output si vede che viene chiamata l'estensione 201.
Se le versioni di CUE e dell'editor di script CUE sono diverse e si sta tentando di caricare uno script AA tramite GUI o CLI, il caricamento non riesce e viene visualizzato il messaggio di errore Upload failed. Se entrambe le versioni sono diverse, dovete ricreare lo script utilizzando l'editor CUE della versione che è uguale alla CUE. In alternativa, aggiornate CUE alla versione dell'editor di script CUE ed eseguite lo script.
Questa tabella mostra i prompt di sistema che è possibile utilizzare.
Nota: non è possibile riutilizzare tutte le richieste che si ascoltano nell'applicazione di segreteria telefonica Cisco Unity Express in uno script personalizzato. Alcuni prompt sono disponibili solo tramite lo script della segreteria telefonica che non è possibile personalizzare con Cisco Unity Express Script Editor.
Prompt di sistema | Audio registrato |
---|---|
SP[AA/AAWelcome] | "Benvenuti in Operatore automatico" |
SP[A/AAMainMenu] | "Per immettere il numero di telefono della persona che si sta tentando di raggiungere premere 1, Per immettere il nome della persona che si sta tentando di raggiungere premere 2, Per trasferire all'operatore premere 0" |
SP[AA/AAEnterExtn] | "Immettere il numero di telefono e premere il tasto #" |
SP[AA/AACallingExtn] | "Estensione chiamante" |
SP[AA/APhoneReach] | "Numero di telefono che si sta tentando di raggiungere" |
SP[AA/AAOutOfServicePhone] | "È attualmente fuori servizio" |
SP[AA/AANameDial] | "Digiti il cognome della persona che desidera chiamare seguito dal nome. Per la lettera Q, prema 7, per Z prema 9" |
SP[A/AACalling] | "Chiamata" |
SP[AA/AASorry] | "Scusa se hai problemi. Rimanete in linea e qualcuno vi accompagnerà a breve." |
SP[A/AAWant2Call] | "Se questo è il nome della persona che stai chiamando, prema 1, per ricominciare, prema *" |
SP[A/statico_lì] | "Sei ancora lì?" |
Per ripristinare le tracce predefinite del sistema (Cisco Unity Express 2.1.x e versioni precedenti) dalla CLI, disabilitare prima tutte le tracce con il comando no trace all, quindi incollarle nella CLI:
trace ccn engine dbug trace ccn libldap dbug trace ccn subsystemappl dbug trace ccn managerappl dbug trace ccn managerchannel dbug trace ccn subsystemjtapi dbug trace ccn subsystemsip dbug trace ccn stacksip dbug trace ccn subsystemhttp dbug trace ccn vbrowsercore dbug trace ccn subsystemcmt dbug trace ccn libmedia dbug trace ccn managercontact dbug trace ccn stepcall dbug trace ccn stepmedia dbug trace config-ccn sip-subsystem debug trace config-ccn jtapi-subsystem debug trace config-ccn sip-trigger debug trace config-ccn jtapi-trigger debug trace config-ccn http-trigger debug trace config-ccn group debug trace config-ccn application debug trace config-ccn script debug trace config-ccn prompt debug trace config-ccn miscellaneous debug trace voicemail database query trace voicemail database results trace voicemail database transaction trace voicemail database connection trace voicemail database execute trace voicemail mailbox login trace voicemail mailbox logout trace voicemail mailbox send trace voicemail mailbox save trace voicemail mailbox receive trace voicemail mailbox delete trace voicemail message create trace voicemail message dec trace voicemail message delete trace voicemail message get trace voicemail message inc trace webinterface initwizard inittrace ccn engine dbug trace ccn libldap dbug trace ccn subsystemappl dbug trace ccn managerappl dbug trace ccn managerchannel dbug trace ccn subsystemjtapi dbug trace ccn subsystemsip dbug trace ccn stacksip dbug trace ccn subsystemhttp dbug trace ccn vbrowsercore dbug trace ccn subsystemcmt dbug trace ccn libmedia dbug trace ccn managercontact dbug trace ccn stepcall dbug trace ccn stepmedia dbug trace config-ccn sip-subsystem debug trace config-ccn jtapi-subsystem debug trace config-ccn sip-trigger debug trace config-ccn jtapi-trigger debug trace config-ccn http-trigger debug trace config-ccn group debug trace config-ccn application debug trace config-ccn script debug trace config-ccn prompt debug trace config-ccn miscellaneous debug trace voicemail database query trace voicemail database results trace voicemail database transaction trace voicemail database connection trace voicemail database execute trace voicemail mailbox login trace voicemail mailbox logout trace voicemail mailbox send trace voicemail mailbox save trace voicemail mailbox receive trace voicemail mailbox delete trace voicemail message create trace voicemail message dec trace voicemail message delete trace voicemail message get trace voicemail message inc trace webinterface initwizard init