# Builder espressioni di regole SIP

Utilizzare il builder sottoespressioni per creare condizioni di regole complesse da sottoespressioni utilizzando AND, OR, NOT e il raggruppamento parentetico. Il builder delle regole convalida la regola quando si applicano le modifiche e segnala se sono presenti parentesi discordanti e operatori logici non supportati.

Per visualizzare questa pagina della console di gestione, fare clic su Server > Tipi di server > Router On demand > nome_odr > Impostazioni router On Demand SIP > Regole SIP delle politiche di instradamento > Aggiungi > Builder sottoespressioni.

Per modificare le regole con il builder delle regole, è necessario disporre dei privilegi di amministratore.

## Seleziona operando

### Operandi delle politiche di instradamento e di servizio

In base al protocollo selezionato, verranno visualizzati operandi diversi. La seguente tabella comprende i nomi degli operandi così come sono visualizzati nella console, l'operando effettivo come apparirà nell'espressione, i protocolli validi per operando e la descrizione di ciascun operando.

Tabella 1. Operandi. La seguente tabella descrive i nomi degli operandi visualizzati nella console
Operando | Sintassi | Descrizione
--- | --- | ---
Metodo SIP | `request.method` | Il metodo SIP per la richiesta. I possibili valori sono: INVITE, TRYING, RINGING, ACK, OK e BYE. Se il messaggio non è una richiesta, questo operando restituisce un valore nullo.
Codice di risposta SIP | `response.code` | Il codice della risposta. Se il messaggio non è una risposta, questo operando restituisce -1.
Schema dell'intestazione A | `to.uri.scheme` | Lo schema del campo di intestazione A.
Schema dell'URI | `request.uri.scheme` | Lo schema dell'URI.
Schema dell'intestazione Da | `request.from.uri.scheme` | Lo schema del campo di intestazione Da.
URI richiesta | `request.uri` | L'URI della richiesta.
URI A | `request.to.uri` | L'URI del campo di intestazione A.
URI Da | `request.from.uri` | L'URI del campo di intestazione Da.
Intestazione Da | `request.from` | Il campo di intestazione Da.
Intestazione A | `request.to` | Il campo di intestazione A.
Nome di visualizzazione intestazione A | `request.to.display-name` | Il nome di visualizzazione nel campo di intestazione A.
Nome di visualizzazione intestazione Da | `request.from.display-name` | Il nome di visualizzazione nel campo di intestazione Da.
Host URI A | `request.to.uri.host` | La porta nell'URI del campo di intestazione A.
Host server | `serverhost` | Il nome host completo del server. Questo operando non supporta operatori numerici come, ad esempio, `>, >=, <, <=`.
Porta | `port` | La porta in ascolto su cui è stata ricevuta la richiesta.
Intestazione contatto | `request.contact` | Il campo di intestazione Contatto.
URI contatto | `request.contact.uri` | L'URI del campo di intestazione Contatto.
Host client | `clienthost` | Il nome host completo del client. È il valore del nome host del comando del protocollo Internet (IP). Questo operando non supporta operatori numerici come, ad esempio, `>, >=, <, <=`.
clientipv4 | `clientipv4` | L'indirizzo IP del computer client che utilizza il tipo di indirizzo separato da 4 punti IPv4 (Internet Protocol version 4), `n.n.n.n`.
clientipv6 | `clientipv6` | Il tipo di indirizzo IPv6 (Internet Protocol versione 6) a 128 bit `x:x:x:x:x:x:x:x` successivo alla richiesta di commenti 1924 (RFC 1924) del computer client.
serveripv4 | `serveripv4` | L'indirizzo IP del computer server che utilizza il tipo di indirizzo separato da 4 punti IPv4 `n.n.n.n`.
serveripv6 | `serveripv6` | Il tipo di indirizzo IPv6 a 128 bit `x:x:x:x:x:x:x:x` che segue l'RFC 1924 del computer server.
Trasporto richiesta | `request.transport` | Il trasporto della richiesta.
Utente URI della richiesta | `request.uri.user` | L'utente nell'URI della richiesta.
Utente URI Da | `request.from.uri.user` | L'utente nel campo di intestazione Da.
Utente URI A | `request.to.uri.user` | L'utente nel campo di intestazione A.
Host URI della richiesta | `request.uri.host` | L'host nell'URI della richiesta.
Host URI Da | `request.from.uri.host` | L'host nel campo di intestazione Da.
Porta URI della richiesta | `request.uri.port` | La porta nell'URI della richiesta.
Porta URI Da | `request.from.uri.port` | La porta nell'URI del campo di intestazione Da.
Host URI A | `request.to.uri.host` | L'host nel campo di intestazione A.
Nome intestazione | `header$<nome>` | Il nome ed il valore di un'intestazione. Ad esempio l'espressione `header$Host='localhost'` verifica una richiesta per vedere se contiene un'intestazione host HTTP con il valore `localhost`. Per verificare la presenza o l'assenza dell'intestazione host, utilizzare uno delle seguenti espressioni:
    header$Host IS NOT NULL
    header$Host IS NULL
Ora | `time` | Questo operando viene utilizzato per definire la data e l'ora del giorno in cui è necessario soddisfare una determinata richiesta. Due campi facoltativi sono StartTime ed EndTime. Se una richiesta non viene ricevuta al di fuori di tale finestra definita, non verrà elaborata. I campi Ora di inizio e Ora di fine hanno ciascuno il seguente formato: `giorno_della_settimana/giorno_del_mese/mese/anno::ora:minuti:secondi`. Ad esempio, giovedì 11 Aprile 2007, alle 13:03:45 viene specificato come: Gio/11/Apr/2007::13:03:45 In qualsiasi campo è possibile utilizzare un carattere jolly con il valore *. Ad esempio, il primo giorno di ogni mese viene specificato come */1. I valori giorno_della_settimana sono Lun, Mar, Mer, Gio, Ven, Sab, Dom; i valori di giorno_del_mese sono compresi tra 1 e 31. Il valore mese è un valore non numerico che rappresenta i dodici mesi: Gen, Feb, Mar, Apr, Mag, Giu, Lug, Ago, Set, Ott, Nov, Dic. Il valore anno è composto da quattro cifre dell'anno. Ad esempio, 2007. Il valore ora è l'ora del giorno, utilizzando il formato 24 ore. Ad esempio, 8:00 viene rappresentato come ::8. I campi minuti e secondi sono numeri interi compresi tra 0 e 59. La barra (/) viene utilizzata per separare i parametri della data, i doppi due punti (::) vengono utilizzati per separare i valori della data e dell'ora, mentre i due punti (:) vengono utilizzati per separare i parametri ora del giorno. Si noti che si tratta del risultato booleano dell'intera regola in cui viene utilizzato l'operando time che determina l'azione di instradamento intrapresa.
Percentuale | `percentage$<val>` | L'operando relativo alla percentuale assume il valore `true`, una percentuale fissa del valore temporale. Ad esempio `percentage$50` assume il valore `true` su un 50% di media del tempo.
Incrementa progressivamente | `rampup$<startTime>` `$<completionTime>` | L'operando `rampup` assume il valore `true`, una percentuale variabile del valore temporale. Assume sempre il valore `false` prima di `<startTime>` e diventa `true` dopo `<completionTime>`. Man mano che il tempo passa da `<startTime>` a `<completionTime>`, assume il valore `true`, ovvero una percentuale in aumento lineare. Il formato di `<startTime>` e `<completionTime>` è `giorno/mese/anno::ora:min:sec`. dove `giorno` è il giorno del mese; `mese` è uno dei 12 mesi: Gen, Feb, mar, Apr, Mag, Giu, Lug, Ago, Set, Ott, Nov, Dic; `anno` è l'anno di 4 cifre; `ora` è l'ora di due cifre in un orologio di 24 ore e `min` e `sec` sono valori di due cifre rispettivamente per minuti e secondi. Ad esempio, `rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00` inizia ad assumere il valore `true` alle 8 del 1 Gennaio 2007 e diventa sempre `true` fino a raggiungere l'ora di completamento alle 17 dello stesso giorno.

## Operatore

Tabella 2. Operatori della specifica di traccia
Operatore | Descrizione
--- | ---
Uguale, ignora maiuscolo/minuscolo (EQUALSIGNORECASE) | Operatore Uguale, ignora maiuscolo/minuscolo. I caratteri delle stringhe sono ignorati. `'ABC' EQUALSIGNORECASE 'abc'` è true. `('ABC' = 'abc')` è false.
Non uguale (< >) | L'operatore di disuguaglianza esprime che il valore dell'operando non è uguale al valore immesso.
In (IN) | Per `stringa IN elenco di stringhe` è true se la stringa a sinistra corrisponde esattamente (maiuscolo/minuscolo) a una stringa elencata sulla destra. Ad esempio: ’adrian’ in `('keith','eric','kalyan','david', 'adrian e ecc')` è false. `'adrian'` in `('tom','adrian')` è true. ’adrian’ in `('Tom','Adrian')` è false. `numero IN elenco di numeri` : `1` in `(1,2,3,4,5)` è true. `6` in `(1,2,3,4,5)` è false.
Come (LIKE) | Esprime il pattern corrispodente per valori operando stringa. Il valore deve contenere il carattere jolly (`%`) nella posizione in cui è previsto che inizi la corrispondenza del pattern. Ad esempio, l'espressione:
    host LIKE %blanca
trova corrispondenza con la parola `blanca` e in qualsiasi altra parola che termina con `blanca`, mentre l'espressione:
    host LIKE blanca%
trova corrispondenza con la parola `blanca` e qualsiasi altra parola che inizia con `blanca`. L'espressione:
    host LIKE %blanca%
trova corrispondenza con la parola `blanca` e qualsiasi altra parola che ha il token `blanca` in essa.
Come, ignora maiuscolo/minuscolo (LIKEIGNORECASE) | Questo operatore esprime un pattern che corrisponde ai valori dell'operando di una stringa. I caratteri delle stringhe sono ignorati.
Non è null (IS NOT NULL) | Una convalida di una query mostra che il parametro richiesto esiste.
Concatena (+) | Questo operatore valuta `'abc'+'def'` come `'abcdef'`.
Come in (LIKEIN) | Questo operatore esprime `stringa likein (stringa1, stringa2, stringa3,...)` e calcola come true se la stringa a sinistra di `likein` corrisponde a una o più delle stringhe (stringaN).
È null (IS NULL) | Una convalida di una query mostra che il parametro richiesto non esiste. Controlla la presenza di un operando che ha un valore `NULL`.
Uguale ( = ) | L'operatore di uguaglianza esprime una corrispondenza sensibile al maiuscolo/minuscolo.
Maggiore di (>) | Calcola il risultato logico standard.
Maggiore di o Uguale a (>=) | Calcola il risultato logico standard.
Minore di (<) | Calcola il risultato logico standard.
Minore di o Uguale a (<=) | Calcola il risultato logico standard.
Tra (BETWEEN) | Utilizzato con `AND` per selezionare una scala di valori che includono il primo valore (basso) e l'ultimo valore (alto). Insieme, operano sui valori numeri e date.

## Valore

In base all'operatore scelto, immettere il valore per la sottoespressione che si desidera creare.

## Genera sottoespressione

Generare la sottoespressione come risultato dell'operando, dell'operatore e dei valori specificati.

## Aggiungi

Fare clic per allegare alla casella nel pannello delle regole.

Informazioni correlate:
Regole SIP delle politiche di instradamento
Regole SIP delle politiche di servizio

Nome file: sip_rulebuilder_detail.html