Introduzione
In questo documento viene descritto il funzionamento delle espressioni regolari (regex) e come testarle nei server expressway.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
- Video Communications Server (VCS) e server Expressway
- Dispositivi Di Telepresenza
- Business to Business (B2B) Calling
- Implementazioni Collaboration
Componenti usati
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e 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.
Premesse
Le espressioni regolari sono sequenze di caratteri che definiscono i modelli utilizzati per trovare le stringhe nel testo. Queste stringhe possono quindi essere modificate o mantenute nelle regole di ricerca o nelle trasformazioni. Si tratta degli utilizzi più comuni per le espressioni regolari.
Tipi di espressioni regolari
Espressioni di base
- Punto (.) Corrisponde a qualsiasi carattere singolo.
- Cifra (\d) Corrisponde a qualsiasi cifra decimale singola.
- Asterisco (*) Corrisponde a 0 o più ripetizioni del carattere o dell'espressione precedente.
- Segno più (+) Corrisponde a una o più ripetizioni del carattere o dell'espressione precedente.
- Il punto interrogativo (?) corrisponde alla ripetizione 0 o 1 del carattere o dell'espressione precedente.
- Parentesi graffa {n} Corrisponde a n ripetizioni del carattere o dell'espressione precedente, ad esempio (\d{3}) corrisponde a qualsiasi stringa di 3 cifre.
- Intervallo parentesi graffe {n,m} Corrisponde a n e m ripetizioni del carattere o dell'espressione precedente. Ad esempio, (\d{3,5}) corrisponde a qualsiasi stringa di 3, 4 o 5 cifre.
- Parentesi [...] Corrisponde a un set di caratteri specificati, che possono essere specificati singolarmente o in un intervallo. Ad esempio, [abc] corrisponde ai caratteri a, b o c.
- Per specificare un intervallo, utilizzare il trattino (-) tra l'inizio e la fine dell'intervallo. Ad esempio, [a-z] corrisponde a qualsiasi carattere alfabetico.
- L'uso dell'accento circonflesso (^) dopo la parentesi quadra di apertura inverte la corrispondenza, ad esempio [^a-z] corrisponde a qualsiasi carattere non alfabetico.
- Parentesi (...) Raggruppa un insieme di caratteri corrispondenti. È possibile fare riferimento a questi gruppi in un secondo momento utilizzando i caratteri \n come parte di una stringa di sostituzione.
- La pipe (|) corrisponde a una o a un'espressione alternativa, ad esempio (com|net) corrisponde a una delle stringhe com o net.
Altre espressioni
- (?!...) Questo è uno sguardo negativo sul futuro. Definisce una sottoespressione che non deve essere presente.
- %localdomains% Corrisponde a tutti i domini SIP attualmente configurati nel server.
Creazione e test di pattern
I server Expressway forniscono uno strumento per testare i modelli senza apportare modifiche alla configurazione, in modo da evitare possibili impatti aziendali durante la creazione di nuovi elementi.
Questo strumento è disponibile nell'interfaccia Web del server Expressway. Selezionare Manutenzione > Strumenti > Controlla pattern.
Strumento verifica serie (Check Pattern)
- Alias: la stringa da verificare, può essere l'URI (Uniform Resource Identifier) di destinazione o di registrazione. Questa stringa viene confrontata con la stringa del modello per verificare una corrispondenza.
- Tipo di motivo: questa impostazione determina il modo in cui viene gestita la stringa del motivo quando viene controllato un motivo. Regex è il più comunemente utilizzato.
- Esatto: l'intera stringa deve corrispondere esattamente al carattere di alias per il carattere.
- Prefisso: la stringa deve trovarsi all'inizio dell'alias.
- Suffisso: la stringa deve trovarsi alla fine dell'alias.
- Regex: la stringa viene considerata come un'espressione regolare.
- Stringa modello: il modello in base al quale viene confrontato l'alias.
- Comportamento del modello: l'azione eseguita su una corrispondenza del modello. Se è necessario eseguire una modifica, viene attivata una nuova casella di testo per specificare la modifica.
- Strip: rimuove il prefisso o il suffisso corrispondente dall'alias. Disponibile solo quando il tipo di serie è impostato su prefisso o suffisso.
- Abbandona: all'alias non viene applicata alcuna modifica.
- Sostituisci: sostituisce la parte corrispondente dell'alias con il testo nella stringa di sostituzione.
- Aggiungi prefisso: precede il testo aggiuntivo all'alias.
- Aggiungi suffisso: aggiunge il testo aggiuntivo all'alias.
Esempi di regex di uso comune
Carattere jolly
Questo modello è ampiamente utilizzato quando non è richiesta una corrispondenza specifica del modello ma è necessario considerare una regola di ricerca o una trasformazione. L'espressione regolare (.*) corrisponde a qualsiasi input indipendentemente dal formato o dalla lunghezza. Il punto corrisponde a qualsiasi carattere e l'asterisco rappresenta una quantità qualsiasi di ripetizioni di tale espressione.
Carattere jolly Corrispondenza completa Esempio 1
Lo stesso criterio ha esito positivo indipendentemente dall'input dell'alias.
Esempio 2 di carattere jolly Corrispondenza completa
Confronta domini locali e non locali
Questa opzione viene in genere utilizzata per far corrispondere un criterio a una destinazione di uno dei domini locali configurati sul server e mantenere la chiamata instradata localmente anziché instradarla a Internet. Il regex %localdomains% può essere utilizzato come suffisso o come seconda parte del modello regex.
Per configurare i domini locali, selezionare Configurazione > Domini.
Domini configurati localmente
La corrispondenza del modello ha esito negativo per qualsiasi dominio diverso da quelli configurati localmente.
Errori di corrispondenza domini locali
E ha esito positivo per tutti i domini configurati localmente.
I domini locali corrispondono
Per il risultato opposto è possibile utilizzare anche il valore negativo (?!.*@%localdomains%). Ciò significa che qualsiasi alias diverso dai domini locali è una corrispondenza riuscita.
Lookahead negativo per i domini locali
Corrispondi a estensioni di dominio diverse
Questo modello viene in genere utilizzato quando la società possiede un dominio con più estensioni e consente di richiamarne una, ma per la gestione delle chiamate è necessario normalizzarle prima di prendere in considerazione le regole di ricerca.
Questa operazione viene in genere eseguita tramite trasformazioni con l'utilizzo dell'espressione regolare pipe (|).
Esempio di estensione di dominio differente 1
Lo stesso modello corrisponde al dominio con una delle due estensioni, ma lo converte nell'estensione normalizzata scelta di conseguenza.
Esempio di estensione di dominio differente 2
Corrispondenza dei modelli di frode a pagamento
Le chiamate fraudolente a pagamento sono spesso composte da un numero di cifre, mentre quelle internazionali richiedono un prefisso nazionale seguito dal numero di telefono chiamato, che a sua volta deve essere composto da almeno 7 cifre. È inoltre comune che i dial plan interni all'interno delle aziende siano lunghi da 4 a 6 cifre.
In questo modo si ottiene una netta differenza che può essere utilizzata per eseguire azioni diverse per uno di questi tipi di chiamate. Utilizzando il numero di cifre regex, è possibile specificare l'azione da eseguire con ogni chiamata.
Esempio di conteggio cifre 1
Questo criterio consente di trovare qualsiasi alias compreso tra 7 e 15 cifre. Un numero inferiore di cifre non determina una corrispondenza.
Esempio di conteggio cifre 2
Qualsiasi altro carattere oltre alle cifre causa un errore.
Esempio di conteggio cifre 3
Gruppi e serie di riferimento
I gruppi e i riferimenti vengono utilizzati insieme ai motivi regex per modificare alcune sezioni di un alias conservandone altre. Ciò è utile quando si aggiungono o rimuovono prefissi o si modificano domini. I gruppi vengono designati nella sezione stringa modello e i riferimenti vengono ordinati nel campo della stringa di sostituzione.
Esempio 1 di gruppi e riferimenti
In questo esempio, esiste una corrispondenza letterale con @cisco.com e la stringa testuri viene abbinata e raggruppata in base al regex match all.
Il riferimento \1 nella stringa di sostituzione richiama il primo gruppo all'interno della stringa del modello, che si collega all'URI, indipendentemente dal tipo di URI, pertanto l'URI viene conservato nell'alias del risultato.
Nella stringa sostituita non viene fatto riferimento al dominio, ma viene sostituito da internaldomain, come è possibile verificare nell'alias risultato.
I gruppi possono inoltre essere utilizzati per riordinare l'URI in quanto ciò consente di utilizzare i dial plan flessibili.
Esempio 2 di gruppi e riferimenti
In questo esempio, esiste un alias con il formato di 5 cifre, seguito da un punto e da un'altra cifra, seguito quindi dal dominio.
Nella stringa della serie sono presenti diversi gruppi e sezioni che possono essere analizzati separatamente.
- Gruppo 1, il modello (\d{5}) corrisponde a qualsiasi numero di 5 cifre all'inizio della stringa.
- L'espressione regolare (\.) corrisponde a un punto letterale. Ciò significa che l'alias originale richiede un punto dopo le cinque cifre iniziali.
- Gruppo 2: il modello (\d) corrisponde a una sola cifra.
- Gruppo 3, il modello letterale (@cisco.com) corrisponde solo a quella sequenza di caratteri, che può essere ulteriormente modificata per includere più domini o qualsiasi stringa dopo le corrispondenze precedenti.
Quando l'alias corrisponde alla stringa del modello, l'azione ne determina la sostituzione con la stringa di sostituzione.
La stringa di sostituzione fa riferimento ai gruppi precedenti in un nuovo ordine.
- Il riferimento \2 richiama il gruppo 2, ovvero la cifra singola che segue il punto e precede il dominio.
- Il riferimento \1 richiama il gruppo 1. Si tratta delle prime 5 cifre dell'alias.
- Il riferimento \3 richiama il gruppo 3. Si tratta della sezione dominio dell'alias
- Il punto non viene mai referenziato né fa parte di alcun gruppo, pertanto non fa parte dell'alias risultato.
L'alias restituisce quindi le stesse cifre dell'alias originale, ma con la cifra che era originariamente dopo il punto, all'inizio dell'alias.
Il punto che separava le 5 cifre e la cifra singola non fa più parte dell'alias, il dominio viene mantenuto.
Non è necessario fare riferimento a ogni gruppo, un gruppo a cui non viene fatto riferimento non fa parte dell'alias del risultato.
Informazioni correlate
Supporto tecnico Cisco e download