Program budujący wyrażenia reguł SIP

Program budujący podwyrażenia służy do budowania złożonych warunków reguł na podstawie podwyrażeń przy użyciu operatorów I, LUB oraz Nie, a także grupowania za pomocą nawiasów. Program budujący reguły sprawdza poprawność reguły po wprowadzeniu zmiany i informuje o występowaniu brakujących nawiasów i nieobsługiwanych operatorów logicznych.

Aby wyświetlić tę stronę Konsoli administracyjnej, należy kliknąć opcję Serwery > Typy serwerów > Routery na żądanie > nazwa_routera_na_żądanie > Ustawienia routera na żądanie dla protokołu SIP > Reguły SIP dla strategii kierowania > Dodaj > Program budujący podwyrażenia.

Aby móc modyfikować reguły przy użyciu programu budującego reguły, należy mieć uprawnienia administratora.

Wybór operandu

Operandy strategii obsługi i kierowania

W zależności od wybranego protokołu wyświetlane są różne operandy. W poniższej tabeli uwzględniono nazwy operandów wyświetlane w konsoli, rzeczywisty operand w postaci, w jakiej zostanie wyświetlony w wyrażeniu, poprawne protokoły dla poszczególnych operandów oraz opis każdego operandu.

Tabela 1. Operandy. Poniższa tabela zawiera nazwy operandów wyświetlane w konsoli
Operand Składnia Opis
Metoda SIP request.method

Metoda SIP żądania. Możliwe wartości to: INVITE, TRYING, RINGING, ACK, OK i BYE. Jeśli komunikat nie jest żądaniem, ten operand zwraca wartość NULL.

Kod odpowiedzi SIP response.code

Kod odpowiedzi. Jeśli komunikat nie jest odpowiedzią, ten operand zwraca wartość -1.

Schemat nagłówka celu to.uri.scheme

Schemat pola Nagłówek celu.

Schemat identyfikatora URI request.uri.scheme

Schemat identyfikatora URI.

Schemat nagłówka źródła request.from.uri.scheme

Schemat pola Nagłówek źródła.

Identyfikator URI żądania request.uri

Identyfikator URI żądania.

Identyfikator URI celu request.to.uri

Identyfikator URI pola Nagłówek celu.

Identyfikator URI źródła request.from.uri

Identyfikator URI pola Nagłówek źródła.

Nagłówek źródła request.from

Pole Nagłówek źródła.

Nagłówek celu request.to

Pole Nagłówek celu.

Nazwa wyświetlana nagłówka celu request.to.display-name

Nazwa wyświetlana w polu Nagłówek celu.

Nazwa wyświetlana nagłówka źródła request.from.display-name

Nazwa wyświetlana w polu Nagłówek źródła.

Host identyfikatora URI celu request.to.uri.host

Port w identyfikatorze URI pola Nagłówek celu.

Host serwera serverhost Pełna nazwa hosta serwera. Ten operand nie obsługuje operatorów liczbowych, takich jak >, >=, < i <=.
Port port Port nasłuchiwania, na którym odebrano żądanie.
Nagłówek kontaktu request.contact

Pole Nagłówek kontaktu.

Identyfikator URI kontaktu request.contact.uri

Identyfikator URI pola Nagłówek kontaktu.

Host klienta clienthost Pełna nazwa hosta klienta. Jest to wartość nazwy hosta komend protokołu IP (Internet Protocol). Ten operand nie obsługuje operatorów liczbowych, takich jak >, >=, < i <=.
clientipv4 clientipv4 Adres IP komputera klienckiego używającego protokołu Internet Protocol w wersji 4 (IPv4) w postaci czterech grup cyfr oddzielonych kropkami: n.n.n.n.
clientipv6 clientipv6 Adres komputera klienckiego w postaci 128-bitowego adresu protokołu Internet Protocol w wersji 6 (IPv6) w formacie x:x:x:x:x:x:x:x zgodnego z dokumentem Request for Comments 1924 (RFC 1924).
serveripv4 serveripv4 Adres IP serwera używającego protokołu IPv4 w postaci czterech grup cyfr oddzielonych kropkami: n.n.n.n.
serveripv6 serveripv6 Adres serwera w postaci 128-bitowego adresu protokołu IPv6 w formacie x:x:x:x:x:x:x:x zgodnym z dokumentem Request for Comments 1924 (RFC 1924).
Transport żądania request.transport

Transport żądania.

Użytkownik identyfikatora URI żądania request.uri.user

Użytkownik w identyfikatorze URI żądania.

Użytkownik identyfikatora URI źródła request.from.uri.user

Użytkownik w polu Nagłówek źródła.

Użytkownik identyfikatora URI celu request.to.uri.user

Użytkownik w polu Nagłówek celu.

Host identyfikatora URI żądania request.uri.host

Host w identyfikatorze URI żądania.

Host identyfikatora URI źródła request.from.uri.host

Host w polu Nagłówek źródła.

Port identyfikatora URI żądania request.uri.port

Port w identyfikatorze URI żądania.

Port identyfikatora URI źródła request.from.uri.port

Port w identyfikatorze URI pola Nagłówek źródła.

Host identyfikatora URI celu request.to.uri.host

Host w polu Nagłówek celu.

Nazwa nagłówka header $<nazwa> Nazwa i wartość nagłówka. Na przykład wyrażenie header$Host='localhost' testuje żądanie, aby sprawdzić, czy zawiera nagłówek HTTP hosta o wartości localhost. W celu przeprowadzenia testu wykrywającego obecność nagłówka hosta należy użyć jednego z następujących wyrażeń:
header$Host
IS NOT NULL
header$Host IS NULL
Czas time

Ten operand służy do definiowania daty i godziny, o której dane żądanie musi być uznane. Dwa opcjonalne pola to Czas rozpoczęcia i Czas zakończenia. Jeśli żądanie odebrano poza tym zdefiniowanym oknem, nie będzie ono przetwarzane.

Pola Czas rozpoczęcia i Czas zakończenia mają następujący format: dzień_tygodnia/dzień_miesiąca/miesiąc/rok::godzina:minuta:sekunda.

Na przykład godzina 13:03:45 w czwartek 11 kwietnia 2007 jest określana następująco:

czw/11/kwi/2007::13:03:45

W dowolnym polu można użyć znaku wieloznacznego (*). Na przykład wartość określająca pierwszy dzień każdego miesiąca to */1.

Możliwe wartości pola dzień_tygodnia to nie, pon, wto, śro, czw, pią i sob, a pola dzień_miesiąca to liczby z zakresu od 1 do 31.

Wartość pola miesiąc to wartość nieliczbowa reprezentująca jeden z dwunastu miesięcy: sty, lut, mar, kwi, maj, cze, lip, sie, wrz, paź, lis lub gru.

Wartość pola rok to cztery cyfry reprezentujące rok. Na przykład: 2007.

Wartość pola godzina to godzina w formacie zegara 24-godzinnego. Na przykład godzina 8 przed południem jest reprezentowana jako wartość ::8. Wartości pól minuta i sekunda to liczby całkowite z zakresu od 0 do 59.

Ukośnik (/) służy do oddzielania parametrów daty. Podwójny dwukropek (::) oddziela wartości daty i godziny, natomiast dwukropek (:) jest używany do oddzielania parametrów godziny. Należy zauważyć, że wykonywane działanie kierowania jest określane przez wynik boolowski całej reguły, w której użyto operandu time.

Procent percentage$<wartość> Operand percentage przyjmuje wartość true dla procentu przypadków określonych za pomocą wartości. Na przykład wyrażenie percentage$50 przyjmuje wartość true średnio dla 50% przypadków.
Zwiększanie rampup$<startTime>

  $<completionTime>

Operand rampup przyjmuje wartość true dla zmiennego procentu czasu. Ten operand zawsze przyjmuje wartość false przed czasem określonym za pomocą parametru <czas_rozpoczęcia> oraz wartość true po czasie określonym za pomocą parametru <czas_zakończenia>. Wraz z upływem czasu od momentu reprezentowanego przez parametr <czas_rozpoczęcia> do momentu określonego za pomocą parametru <czas_zakończenia> operand rampup przyjmuje wartość true dla zwiększanego liniowo procentu przypadków.

Format parametrów <czas_rozpoczęcia> i <czas_zakończenia>: dzień/miesiąc/rok::godzina:minuta:sekunda.

gdzie dzień to dzień miesiąca, miesiąc jest jednym z 12 miesięcy: sty, lut, mar, kwi, maj, cze, lip, sie, wrz, paź, lis, gru, rok jest rokiem w postaci 4-cyfrowej, godzina oznacza 2-cyfrową godzinę z zegara 24-godzinnego, a minuta i sekunda są 2-cyfrowymi wartościami odpowiednio dla minuty i sekundy.

Na przykład:

Operand rampup$01/sty/2007::08:00:00$01/sty/2007::17:00:00 zaczyna sporadycznie przyjmować wartość true o godzinie 8 pierwszego stycznia 2007, a o godzinie 17 tego samego dnia oznaczającej koniec zwiększania procentu zawsze przyjmuje wartość true.

Operator

Tabela 2. Operatory specyfikacji śledzenia
Operator Opis
Jest równe (nie jest rozróżniana wielkość liter) (EQUALSIGNORECASE) Operator równości (bez rozróżniania wielkości liter). Wielkość liter w łańcuchach jest ignorowana. 'ABC' EQUALSIGNORECASE 'abc' ma wartość true. ('ABC' = 'abc') ma wartość false.
Nie jest równe (< >) Operator nierówności wyraża, że wartość operandu nie jest równa wprowadzonej wartości.
Zawiera się (IN)
  • Wyrażenie łańcuch IN lista łańcuchów przyjmuje wartość true, gdy łańcuch po lewej stronie dokładnie odpowiada (rozróżniana jest wielkość liter) łańcuchowi wyświetlanemu po prawej stronie. Na przykład:
    • ’adrian’ in ('keith','eric','kalyan','david', 'adrian and etc') ma wartość false.
    • 'adrian' in ('tom','adrian') ma wartość true.
    • ’adrian’ in ('Tom','Adrian') ma wartość false.
  • liczba całkowita IN lista liczb całkowitych:
    • 1 in (1,2,3,4,5) ma wartość true.
    • 6 in (1,2,3,4,5) ma wartość false.
Jest podobne do (LIKE)

Oznacza dopasowywanie wzorca dla łańcuchowych wartości operandu. Wartość musi zawierać znak wieloznaczny (%) w miejscu, w którym ma się rozpocząć dopasowywanie wzorca.

Na przykład wyrażenie:
host LIKE %blanca
dopasowuje słowo blanca i wszelkie inne słowa, które kończą się na blanca, gdy wyrażenie:
host LIKE blanca%
dopasowuje słowo blanca i wszelkie inne słowa rozpoczynające się łańcuchem blanca. Wyrażenie:
host LIKE %blanca%
dopasowuje słowo blanca i wszystkie słowa, które mają osadzony leksem blanca.
Jest podobne do (nie jest rozróżniana wielkość liter)(LIKEIGNORECASE) Ten operator oznacza dopasowywanie wzorca dla łańcuchowych wartości operandu. Wielkość liter w łańcuchach jest ignorowana.
Nie jest puste (IS NOT NULL) Sprawdzanie poprawności danego zapytania wskazuje, że żądany parametr istnieje.
Konkatenacja (+) Ten operator zwraca wartość wyrażenia 'abc'+'def' jako 'abcdef'.
Jest podobne do i zawiera się (LIKEIN) Wyrażenia z tym operatorem łańcuch likein (łańcuch1, łańcuch2, łańcuch3,...) przyjmują wartość true, gdy łańcuch po lewej stronie operatora likein pasuje do jednego lub większej liczby łańcuchów (łańcuchN).
Jest puste (IS NULL) Sprawdzanie poprawności danego zapytania wskazuje, że żądany parametr nie istnieje. Testy dla operandu, który ma wartość NULL.
Jest równe ( = ) Operator równości wyraża zgodność w dopasowaniu, w którym rozróżniana jest wielkość liter.
Większe niż (>) Przyjmuje wartość standardowego wyniku logicznego.
Jest większe lub równe (>=) Przyjmuje wartość standardowego wyniku logicznego.
Mniejsze niż (<) Przyjmuje wartość standardowego wyniku logicznego.
Jest mniejsze lub równe (<=) Przyjmuje wartość standardowego wyniku logicznego.
Pomiędzy (BETWEEN) Używany z operatorem AND do wybierania zakresu wartości włącznie z pierwszą (najniższą) oraz ostatnią (najwyższą) wartością. Razem te operatory działają w przypadku liczb i wartości dat.

Wartość

Zależnie od wybranego operatora należy wpisać wartość dla podwyrażenia, które ma zostać utworzone.

Generuj podwyrażenie

Generuje podwyrażenie jako wynik określonego operandu, operatora i wartości.

Dodaj

Tę opcję należy kliknąć, aby dodać podwyrażenie do pola na panelu reguł.



Nazwa pliku: sip_rulebuilder_detail.html